AVLAVL treeAdelson-Velskii and Landis' tree1
AVL木の例
AVL

1AVL

AVL19622

平衡条件と計算量

編集

  AVL1 

平衡係数

編集

AVL1調
(平衡係数) = (左部分木の高さ) - (右部分木の高さ)

+1-1

2-2

操作

編集

AVL2-2


探索

編集

木の中から目的の値を持つノードを見つけ出すのが探索である。AVL木の探索は通常の二分探索木と同様の手順で、「左の子の値 ≤ 親の値 ≤ 右の子の値」の条件を手がかりに行う。

  1. 根ノードに着目する
  2. 着目しているノードが存在しなければ、木に目的の値を持つノードはないので処理を終了(※)
  3. 「着目しているノードの値」と「目的の値」を比較する
    1. 値が等しければ探索終了
    2. 「目的の値 < 着目しているノードの値」であれば、左の子ノードを新たに着目するノードとして(※)から繰り返す
    3. 「着目しているノードの値 < 目的の値」であれば、右の子ノードを新たに着目するノードとして(※)から繰り返す

挿入

編集
複回転の様子 

    AVL調

調

PPP11



PPLeft Right Case

PPRight Left Case

2

22

PLLLRLLRPPLR

PRRRLRRLPPRL

AVL使

挿入後の平衡確認の終了条件

編集

AVL0

1101

1-1

1-111

削除

編集

AVL調

調

2

削除後の平衡確認の終了条件

編集

AVL1-1

1-11

0

11011

特徴

編集
 
赤黒木ではあるが、AVL木ではない木の例。AVL木の平衡条件の方が厳密である。

01

AVLAVL

AVL2

AVL

AVL1AVL

関連項目

編集