Menu
Coddy logo textTech

AVL Treeとは?

Coddyの「AVL Tree - データ構造シリーズ #10」コースのレッスン 2/16。

AVL木のすべてのノードは、自身の高さ(葉までの最長パスにあるエッジの数)を保持します。葉の高さは 1 であり、空のサブツリーの高さは 0 とカウントされます。ノードの2つの子の高さから、そのノードの平衡係数height(left) - height(right))を計算できます。

平衡係数が -10、または 1 のとき、そのノードは平衡状態です。AVL木のルールは単純です。すべてのノードが常に平衡状態を保たなければなりません。挿入や削除によってノードの平衡係数が 2 または -2 になると、木は回転を実行します。これは、探索木の順序を壊すことなく、定数時間で平衡を回復させるための、いくつかのポインタの局所的な再配置です。

回転には4つのケース(左-左、右-右、左-右、右-左)がありますが、それらはすべて、単一の左回転と単一の右回転という2つの構成要素に集約されます。これからの数回のレッスンで、これら両方をゼロから構築していきます。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

AVL Tree - データ構造シリーズ #10のすべてのレッスン