
09.01.2010, 20:34
|
|
Новичок
Регистрация: 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..
|
|
|