二分木をレベルごとに出力するコードを知りたいのですが、この木があるとします。
5
/ \
3 2
/ \
4 6
次のように印刷したい: 5 3 2 4 6
.
ツリー深度メソッドを実行する必要があることはわかっており、すでに実行していますが、他に何をすべきかわかりません。
二分木をレベルごとに出力するコードを知りたいのですが、この木があるとします。
5
/ \
3 2
/ \
4 6
次のように印刷したい: 5 3 2 4 6
.
ツリー深度メソッドを実行する必要があることはわかっており、すでに実行していますが、他に何をすべきかわかりません。
レベル トラバーサル アルゴリズムを使用してそれらを出力できます。
アルゴリズムは次のように機能します。
キュー := < ルート >
キューが空でない間
v := queue.front print v foreach s : s is a son of v queue.enqueue(s) queue.dequeue
わかりました。
1. Node クラスを拡張し、height (int) というプロパティを追加します
。 2. ツリーの各ノードの高さを計算します (簡単な再帰関数 - データ構造は必要ありません)
3. 使用します。各高さ (レベル) に対して for ループを実行し、順番にトラバーサルを実行し、そのレベルのノードを出力します。