Хорошо для классического Хаффмана вы просто продолжаете объединять 2 узла с самой низкой частотой за раз, чтобы построить дерево, когда присваиваете 1 левому (или правому) ребру и 0 - другому ребру, а путь dfs к некоторому узлу - это код этих узлов.
то есть
Таким образом, в этом случае кодирование:
a - 1
b- 01
c - 001
d - 000
На троичном Хаффмане вы просто соединяете узлы с 3 низшими частотами за раз (и меньше узлов, если узлов недостаточно для последнего шага)
т.е.
Таким образом, в этом случае кодировка:
a - 2
b -12
с - 11
д - 10