Сжимая дерево хаффмана персонажа

Я пытаюсь сжать только один символ в дереве Хаффмана. Если данные найдены, вернитесь. Если нет, переходите влево или вправо. Например: я надеюсь получить 1010 за a или же 00001 за u(а и ты вид символа). Но я получаю 11111, Как можно решить проблему?

public void compress(char a, BinaryTree huffTree, StringBuilder result) {

            if (huffTree.root.data.equals(a)) {
                return;
            }

            //else if (!huffTree.getLeftSubtree().isLeaf())

            else if (huffTree.getLeftSubtree() != null) {
                result.append("1");
                compress(a, huffTree.getLeftSubtree(), result);

            }
            else if (huffTree.getRightSubtree() != null) {
                result.append("0");
                compress(a, huffTree.getRightSubtree(), result);

            }
        }

0 ответов

Другие вопросы по тегам