バイナリーツリー(二分木)
ツリー
- ルート、親、兄弟、リーフノード
-
高さ、深さ、層の概念
二進木
名前が示すように、各ノードは、2人の子供であるほとんどの二つの「フォーク」、であり、左の子と右の子ノードだったノードは2、一部だけ左ノード、唯一の右ノードいくつかを持っている必要がありますする必要はありません
完全なバイナリツリー
- 図進数、リーフノードが全て底2に、リーフノードを除いて、各ノードが子ノードを左右しているされているが、完全なバイナリツリーと呼ばれる二分木への
完全二叉树
- 図進数、下の二つの層内のリーフノード3は、左の葉ノードの最後の層が配置され、そして最後のものを除いて、ノードの数は、他の層は、完全二分木と呼ばれる最大値に達しました二進木
どのようにバイナリツリーを表す(またはストア)するには?
- チェーン店の法則
- メソッド順次ストレージ
- アレイベース
- ノードXは、位置Iの配列インデックスに格納されている場合、
- 2 *私は、保管場所のインデックスが左の子であります
- 添字は2 * I + 1の保存された位置の右の子です。
- ターンでは、位置記憶はI / 2は、その親ノードでラベルされました。このように、長い我々は、格納されたルートノードの位置を知っている(一般的には、子ノードの計算を容易にするために、ルートノードはインデックス位置1に格納されている)ので、以下の規格によって計算することができるように、ツリー全体が文字列でありますアップ。
- 完全2分木に適した、非完全なバイナリツリーはスペースの無駄になる場合。
- ヒープは、完全なバイナリツリーで、多くの場合、ストアデータアレイに使用されています
バイナリツリートラバーサル
- 予約限定トラバーサル-アクセスシーケンス:親 - 「左の子- 」右の子
- 予約限定-アクセス順序:左の子- 「親 - 」右の子
- 後順-アクセス順序:左の子- 「右の子- 」親ノード
バイナリ検索ツリー(バイナリ検索ツリー)