非線形構造
ツリー
ツリーの定義
プロフェッショナルの定義:唯一つのルートノードを1が呼ばれています
2.互いに素サブツリーいくつかがありますが、木自体がサブツリーです
人気の定義:1.ツリーは、ノードとエッジで構成されています
2.各ノードは一つだけの親を持っているが、複数の子ノードを持つことができます
3.しかし、ノードへの1つの例外があり、ノードに親がない、ルートノードと呼ばれています
用語集:深さ:ルートノードからの深さと呼ばれる層の下に(ルートノードは第一層です)
リーフノード:ノードが子を持ちません
非ターミナルノード:実際には非リーフノード
学位:子ノードの数が呼び出されます
分類ツリー
一般的なツリー:ノード番号の任意の子が限定されるものではなく、
バイナリツリー:ノードの子ノードの任意の数の2の最大値、および子ノードの位置を変更することはできません
カテゴリー:一般的なバイナリツリー
完全なバイナリツリー:ツリーが前提の層数を増加させることなく、あなたがバイナリツリーのノードを追加することはできません完全なバイナリツリーです
バイナリツリーを完了します。あなたは右端のいくつかのノードの底部のみの連続した完全なバイナリツリーを削除する場合は、バイナリツリーの形成は完全2分木であります
ばらばらの木のNセット:森
メモリツリー
バイナリツリーのストレージ
連続して格納完全二分木[]
長所:ノードの親と子ノードを検索し、高速(決意を含むが子ノードを持ちません)
短所:大きなメモリ空間を消費
チェーン店
一般的な店舗ツリー
両親表記:父簡単にノードを尋ねます
子供表記:便利なノードを祈ります
親は、子供たちが表記:求めている親と子ノードは非常に便利です
バイナリ表記:
格納するために、通常のバイナリツリーに変換
変換方法:
任意のノードいることを保証するために、シーク
その最初の子に左ポインタフィールドポイント
そのいとこに右ポインタフィールドポイント
限り、この条件が満たされるように、我々は、バイナリツリーに普通の木を回すことができます
一般的なバイナリツリーに変換することは必ずしも右のサブツリーではありません
森林の保存:最初のバイナリツリーに森を変換し、バイナリツリーに保存されています
オペレーティング
トラバーサル
予約限定:最初のルートを訪問し、その後、右のサブツリーを前順、左サブツリー最初の注文をご覧ください。
予約限定:行きがけ左サブツリー、そして、ルートノードを訪問し、その後、右のサブツリーを前順
後順:後順左のサブツリーは、右部分木をトラバースするために、そして、ルートノードを訪問します