ツリー構造をレベルごとに表示したいと思います。私の現在のコードは BFS または Level Order Traversal を実行しますが、ツリーのようなツリー構造を表示する出力を取得できません。現在の出力と期待される出力を参照してください。
私のアイデアは、ある種のカウントを使用して、キュー内の同じレベルの要素を反復処理することでした。
どうすればそうできますか。
この関数のない元のコードは、誰かが実装全体を必要とする場合に備えて、以下のリンクで見つけることができます。それ以外の場合は、以下の displayBFS 関数を参照してください。
Javaのジェネリックツリー(n-aryツリー)のレベルオーダートラバーサル
ありがとう!
void displayBFS(NaryTreeNode n)
{
Queue<NaryTreeNode> q = new LinkedList<NaryTreeNode>();
System.out.println(n.data);
while(n!=null)
{
for(NaryTreeNode x:n.nary_list)
{
q.add(x);
System.out.print(x.data + " ");
}
n=q.poll();
System.out.println();
}
}
Current Tree Structure for reference:
root(100)
/ | \
90 50 70
/ \
20 30 200 300
Current Output:
100
90 50 70
20 30
200 300
Expected Output
100
90 50 70
20 30 200 300
また、以前に同じ機能でロジックの問題を投稿しました。それは回答済みで、現在の質問は別の問題に関連しているため、新しい質問を投稿しました。このアプローチは大丈夫ですか、それとも以前の質問を編集して開かないでください新しいもの?