【えーぶいえるぎ】
AVL木 とは?
💡 「左右の高さ差1以内」を厳密に守る平衡木
📌 このページのポイント
赤黒木との使い分けは?
回転操作って何?
挿入や削除でバランスが崩れた時に木の構造を組み替える操作。左回転(右の子がルートに昇格)と右回転(左の子がルートに昇格)の2種類。AVL木では単回転(LL/RR)と二重回転(LR/RL)の4パターン。挿入時は最大2回、削除時は最大O(log n)回の回転が必要になるんだよ
平衡係数って何?
各ノードの「左部分木の高さ - 右部分木の高さ」が平衡係数(Balance Factor)。AVL木では全ノードの平衡係数が-1、0、1のいずれかでなければならない。2以上や-2以下になったら回転で修復する。各ノードに高さ情報を持たせておくと効率的に計算できるよ
実装する機会はある?
まとめ:ざっくりこれだけ覚えればOK!
「AVL木」って出てきたら「左右の高さ差を厳密に保つ平衡二分探索木」と思えればだいたいOK!
📖 おまけ:英語の意味
「AVL Tree」 = AVL木
💬 発明者のAdelson-Velsky(アデルソン-ベリスキー)とLandis(ランディス)の頭文字。1962年発表の最初の自己平衡二分探索木だよ