2

二分木をレベルごとに出力するコードを知りたいのですが、この木があるとします。

    5
   / \
  3   2
 /     \
4       6

次のように印刷したい: 5 3 2 4 6.

ツリー深度メソッドを実行する必要があることはわかっており、すでに実行していますが、他に何をすべきかわかりません。

4

2 に答える 2

3

レベル トラバーサル アルゴリズムを使用してそれらを出力できます。

アルゴリズムは次のように機能します。

キュー := < ルート >

キューが空でない間

 v := queue.front

 print v

 foreach s : s is a son of v

    queue.enqueue(s)

 queue.dequeue
于 2012-07-02T02:55:56.990 に答える
1

わかりました。
1. Node クラスを拡張し、height (int) というプロパティを追加します
。 2. ツリーの各ノードの高さを計算します (簡単な再帰関数 - データ構造は必要ありません)
3. 使用します。各高さ (レベル) に対して for ループを実行し、順番にトラバーサルを実行し、そのレベルのノードを出力します。

于 2012-07-02T03:30:28.337 に答える