Сжимая дерево хаффмана персонажа
Я пытаюсь сжать только один символ в дереве Хаффмана. Если данные найдены, вернитесь. Если нет, переходите влево или вправо. Например: я надеюсь получить 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);
}
}