二分木で線形順序トラバーサルを実行しようとしていますが、正しい出力が得られません。基本的に、キューを作成し、ルートをエンキューすることから始めます。キューが空になるまで、最初の要素をデキューし、その子をキューの最後に追加します。デキューすると、汎用要素 () が返されます。次のステップで子をキューの最後にエンキューできるように、この要素をツリー ノードに変換する際に問題があります。これまでに行ったことは次のとおりです。
public void levelOrderTraversal()
{
NodeQueue<E> queue = new NodeQueue<E>();
BTPosition<E> current = root;
queue.enqueue(current.element());
E temp = null;
while(!queue.isEmpty())
{
temp = queue.dequeue();
System.out.println(temp.toString());
current.setElement(temp);
if (hasLeft(current))
{
queue.enqueue(left(current).element());
}
if (hasRight(current))
{
queue.enqueue(right(current).element());
}
}
}
BTPosition と NodeQueue の API は、http: //net3.datastructures.net/doc4/index.html?net/datastructures/ にあります。
どんな提案も本当に感謝しています..