Показать сообщение отдельно

[Perl] Кодирование строки по Хаффману
  #1  
Старый 09.01.2010, 20:34
eden
Новичок
Регистрация: 09.01.2010
Сообщений: 11
С нами: 8598217

Репутация: 0
По умолчанию [Perl] Кодирование строки по Хаффману

Доброго времени суток. Пишу программу, которая должна кодировать введенную строку по методу Хаффмана, вот пока что получилось:

Код:
#!/usr/bin/perl -w

print "Введите строку: ";
$string = <STDIN>;
chomp $string;

# Заполняем массив @symbols символами из строки
@symbols = split(//, $string);
for ($a = 0; $a < @symbols; $a++) {
    $number[$a] = 0;
}

# Считаем частоту символов в строке
for ($i = 0; $i < @symbols-1; $i++) {
   if ($number[$i] == 0) {
      $count = 1;
      $number[$i] = 1;
      $t = $i + 1;
      print $t;
      for ($j = $t; $j < @symbols; $j++) {
	  $one = substr($string,$i,1);
	  $two = substr($string,$j,1);
	  if  ( ($one eq $two) and ($number[$j] == 0) ) {
	      $number[$j] = 1;
	      $count++;
	      
	  }
      }
      $tmp = substr($string,$i,1);
      print "$tmp - $count\n";
    }
}
Каким образом мне дальше действовать? использовать хеш таблицу или что то другое? язык для меня новый и все его возможности я пока незнаю.
И если есть возможность как то упростить задачу, буду рад предложениям.

Спасибо за внимание!

Последний раз редактировалось eden; 09.01.2010 в 20:37..
 
Ответить с цитированием