Как правильно реализовать кодировку для дерева Хаффмана?
Пишу архиватор на основе алгоритма Хаффмана, есть готовое дерево. Когда пытаюсь задать кодировку для него, то при больших файлах размер бита получается от 8 до 10. При относительно небольших тоже расчёт кодировка начинается от 4-6 битов. Вот сам код кодировки
public String getCodes(Byte by, String parentPath) {
if (b == by)
return parentPath;
else {
if (left != null) {
String path = left.getCodes(by, parentPath + 0);
if (path != null)
return path;
}
if (right != null) {
String path = right.getCodes(by, parentPath + 1);
if (path != null)
return path;
}
}
return null;
}