0

葉が L でマークされ、葉以外のノードが I でマークされているツリーがあります。ツリーの事前順序トラバーサルが与えられます。例は IIILLILILLIIILLLIILILLL です。この含まれる文字列のハフマン ツリーを構築する必要があります。私は元々、引数に new 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);
}

スタックオーバーフロー例外がスローされる原因がわかりません。最初の私のベースケースは戻ってきてそれを処理すると思います。

4

2 に答える 2