У меня есть дерево, где листья отмечены символом L, а нелистовые узлы отмечены значком I. Мне дается обход предлога по дереву. Примером может служить IIILLILILLIIILLLIILILLL. Я должен построить дерево huffman для этой включенной строки. Я изначально перешел в новый Root(), 0 и мой treeString для моих аргументов. TreeString будет строкой с надписью I и L, вставленной выше. По какой-то причине мой код вызывает исключение StackOverflow. Мой код выглядит следующим образом для метода makeTree:Построение двоичного дерева из обхода порядка: ошибка переполнения стека
public static void makeTree (BinaryNodeInterface<Character> root, int start, String treeString)
{
if (treeString.charAt(start)=='L'){
root.setLeftChild(null);
root.setRightChild(null);
return;
}
BinaryNodeInterface<Character> leftSide = new BinaryNode<Character>();
root.setLeftChild(leftSide);
makeTree(root.getLeftChild(), start++, treeString);
BinaryNodeInterface<Character> rightSide = new BinaryNode<Character>();
root.setRightChild(rightSide);
makeTree(root.getRightChild(), start++, treeString);
}
Я понятия не имею, что является причиной StackOverflow исключения быть выброшен. Я бы подумал, что мой базовый случай в начале вернется и обработает его.
Пришлось полностью переделать свое дерево, но это закончилось тем, что работало. Спасибо вам. Я не помню различий между операторами post и pre-increment – ComicStix