Ну, если вы собираетесь кодировать файл на основе символов, я не вижу проблемы, просто сохраните хэш-таблицу символов, затем создайте дерево и запишите его в начале файла, используя любое соглашениеВы хотите, чтобы применить новый алфавит к тексту.Взгляните на подход, принятый в DEFLATE , который используется для сжатия изображений PNG.
EDIT
Не совсем понятно, чтопроблема в том, что
Искать в дереве символ каждый раз, когда он встречается, и отслеживать шаги?
Каждый узел в дереве представляет уникальный символ.Вам не нужно ничего искать, вы можете построить дерево Хаффмана только тогда, когда вы уже рассчитали вхождение каждого символа.
Итак, вы уже разработали алгоритм построения дерева, и проблема в том, какназначить двоичные значения для узлов?Или где хранить эти значения?Само дерево представляет двоичные значения естественным образом, вы можете фактически отслеживать их во время построения дерева, просто следите за «путем» элемента в операции вставки и сохраните это значение внутри узла, или создайте хеш-таблицу, если вы этого не сделаетехотите изменить сущность узла.