Как сделать дерево Хаффмана по схеме?

Я пытаюсь сделать кодирование/декодирование Хаффмана в схеме, поэтому у меня есть функция «частоты», которая составляет список частот. Я также сделал функцию, которая находит пару из списка с наименьшими частотами и функцию, которая удаляет из списка пару с наименьшими частотами. И я не понимаю, как сделать дерево. И когда у меня есть дерево, как начать кодирование? У меня также есть функция, которая объединяет две пары с наименьшими частотами в одну пару, например (a.3) (b.5) -> ((a b).8)


person user3050163    schedule 16.12.2013    source источник


Ответы (1)


Вы найдете очень подробное объяснение деревьев кодирования Хаффмана в разделе 2.3.4 классической книги SICP, доступен в Интернете. Там вы найдете описание внутренней работы такого дерева, а также полную реализацию. Вам нужно будет только адаптировать его к интерфейсам/структурам данных, предусмотренным для вашего задания.

person Óscar López    schedule 16.12.2013
comment
@user3050163 user3050163 вы запускали примеры кода? вы не найдете более точного объяснения деревьев кодирования Хаффмана в Scheme, чем в SICP. Какую именно часть кода вы не поняли? - person Óscar López; 17.12.2013
comment
я не понимаю создание трех... до кодирования. как должна выглядеть тройка, с какими аргументами и т.д. - person user3050163; 19.12.2013