banner
whitecells

whitecells

二分木

二叉木の概念#

満たされた二分木#

二分木には、次の条件があります:度(子ノードの数)が 0 のノードと度が 2 のノードのみが存在し、かつ度が 0 のノードは同じレベルにあります。

  • 合計 $2^{k}-1$ 個のノードがあります(k は木の深さです)
  • 各レベルには $2^{n-1}$ 個のノードがあります(n は現在のレベルです)

完全二分木#

最後のレベル以外は満たされている必要があり、最後の行は左から右に並べ替えられ、間隔がない必要があります。

  • 最下層には 1〜$2^{k-1}$ 個のノードが存在し、間隔はありません。

二分探索木#

二分探索木は順序付き木であり、二分整列木二分探索木とも呼ばれます。

  • 左部分木が空でない場合、左部分木のすべてのノードの値はその根ノードの値よりも小さいです。
  • 右部分木が空でない場合、右部分木のすべてのノードの値はその根ノードの値よりも大きいです。
  • 左右の部分木はそれぞれ二分整列木です。
  • 同じキー値のノードは存在しません

二分探索木の根ノードは変更されず、データの挿入や削除が行われると、二分木が単方向リストに向かうことになり、データの検索効率が低下するため、平衡二分木があります。

平衡二分木#

AVL 木(Adelson-Velsky and Landis Tree

平衡二分木は二分木を最適化したものです。

  • 空の木であることができます。
  • 任意のノードの左部分木と右部分木は両方とも平衡木であり、高さの差の絶対値が 1 を超えない。

平衡の方法

バランスファクター:あるノードの左部分木と右部分木の高さ(深さ)の差は、ノードのバランスファクターであり、平衡二分木にはバランスファクターが 1 より大きいノードは存在しません(-1、0、1 のみ)。

平衡二分探索木#

平衡二分探索木は空の木であるか、左右の部分木がともに平衡二分木である(高さの差が 1 を超えない)ことがあります。

二分木の保存方法#

二分木の走査方法#

先行順走査#

後行順走査#

中間順走査#

レベル順走査#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。