Как правильно реализовать кодировку для дерева Хаффмана?

Пишу архиватор на основе алгоритма Хаффмана, есть готовое дерево. Когда пытаюсь задать кодировку для него, то при больших файлах размер бита получается от 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;
}

Ответы (0 шт):