1

こんにちは、私は mips で bst を実装しました。このツリーを印刷する必要があります。各ノードには次の 4 つの情報があります。

  • その価値

  • 親の住所

  • 左の子供の住所

  • 右の子の住所

次の形式でツリーを印刷する必要があります。(x は子なしを意味します)

12

8-16

x-9  13-17

x-x  x-11 x-x  x-x

この印刷方法を実装する方法を提案していただけますか?

4

2 に答える 2

1

バイナリ ツリーのレベルごとに出力する必要があるため、情報を出力する最も明白な方法は、幅優先探索法を使用してツリーをトラバースすることです。残りは簡単で、問題はないはずです。:)

于 2012-04-20T15:04:35.427 に答える
1

ツリーを印刷する順序は、幅優先 (レベルごと) のトラバーサルです。1 つのオプションは次のとおりです。最初にツリーのルートでシードされた作業リストを維持します。次に、作業リストから繰り返しデキューし、現在の要素 (存在しない場合は x) を出力し、2 つの子を作業リストに追加します。おそらく、最初にノードの数を数え、その数のノードを出力したら停止することによって、ツリーの走査が完了したときを追跡する何らかの方法が必要になります。

とはいえ、MIPS でこれを行っているため、より簡単なオプションの 1 つは、ツリーを配列に線形化してから配列を出力することです。暗黙のバイナリ ヒープでノードに番号を付ける方法と同様の方法でノードに番号を付ける場合、再帰的/反復的にツリーをたどり、配列にツリー ノードを入力してから、すべてを出力する配列をたどることができます。

お役に立てれば!

于 2012-04-20T15:06:49.483 に答える