1

基本的に二分木である親ポインタのベクトル[011 2 2 3 3 55....]があります。インデックスは子であり、対応する値は同じベクトル内の親のインデックスを表します。

例:上記のベクトルで、インデックス5にカウントすると、要素は2になります。これは、その親がインデックス2にあることを意味します。インデックス2でも、要素は1であり、親がインデックス1にあることを意味します。要素は0で、これはルートノードです。

これからバイナリ検索ツリーを作成するにはどうすればよいですか?

また、

親と対応する子を知っているバイナリツリー形式でデータを生成していますが、それらをバイナリ検索ツリーに保存するにはどうすればよいですか?

上記のベクトルに示されているように、子のインデックスは常に親よりも大きくなります。例:ノード1を取得し、2と3の2つのノードに分割します。次に、ノード2を取得して4と5に分割します。次に、ノード4を取得して6と7に分割します。二分探索木で親子関係を維持したい。

よろしくお願いします

ワジャハット

4

1 に答える 1

0

ベクター内の指定に従って、空の要素を持つ二分木を生成します。新しい要素が到着したら、それを配置する場所を見つけます。二分探索木の規則に従ってツリーをトラバースします。左側のサブツリーのすべての子は要素よりも小さく、右側のサブツリーのすべての子は要素よりも大きくなります。バイナリ ツリーの要素に対応するノードを埋めます。たとえば、ある時点でこのツリーがある場合:

新しい値 3 が到着すると、ノードの右側の子に値 2 が入力されます。ただし、5 が到着すると、事前定義されたツリー構造に配置する場所がありません。

于 2012-11-04T22:17:21.137 に答える