По порядку:
1) Про Кнута сотоварищи ошибся маленько...
2) я недаром писал "входной текст (набор символов)". Любая информация в компьютере (текст в обыденном понимании, звук, картинка, и даже поток телепатированных мыслей) представляется в виде байтов, каждый из которых может иметь 1 из 256 значений, ровно столько различных значений в таблице символов АСКИИ. То есть каждый байт картинки - это один символ (стандартный экран спектрума - это 6912 байт или 6912 символов для архиватора).
Коды символов значения не имеют. В список заносятся и сортируются только коды символов, встречающихся в шифруемом наборе символов (или, что тоже самое - образцы байт, из которых состоит шифруемый набор данных, если так кому-то понятнее).
3) alone, у меня нет деревьев в обычном понимании... только список символов. Одномерный массив. Вектор.
Для сприведённого тобой примера он вполне может иметь вид АБВГДЕ ещё какой-то, подходящий под формулу "сначала символы с вероятностью 25%, потом с вероятностью 12,5%". Фактически, ты уже привел список, непосредственно с которым и должен работать мой алгоритм. Только ему достаточно одной колонки - которая с буквами. А вероятности нужны были на предварительном этапе, когда составлялся и сортировался список использованных символов. А мой алгоритм осуществляет непосредственно кодирование.
Но если ты хочеш понять, как именно нужно предварительно обработать исходный набор символов, чтобы скормить его моему алгоритму - пожалуйста. Пусть у нас есть текст
КАКОЙ-ТО_ТЕКСТ
Двигаясь по порядку слева на право, составляем список использованных символов:
К А О Й - Т _ Е С
и список количества раз, которое каждый из них встретился в тексте:
3 1 2 1 1 3 1 1 1
После сортировки список символов принимает вид:
К Т О А Й - _ Е С
И вот с этой последовательностью символов ("КТОАЙ-_ЕС") и работает мой алгоритм.
4)jerri, ты где-то ошибся - если методом Хаффмана кодировать текст, состоящий из 6 различных символов, то самый короткий код будет состоять из одного бита, самый длинный - из 5.
5) Vitamin По поводу 1/(2^N) А как ты ещё представляеш себе "алгоритм Хаффмана приближает относительные частоты появления символов в потоке частотами, кратными степени двойки"? (Указанная мною книга, с 35).
Я в курсе, что иногда результат работы по методу Хаффмана бывает далёк от идеала, предписываемого теоремой Шеннона. Потому и предложил jerri посмотреть в сторону арифметического кодирования, которое даёт более близкий к идеалу результат.