×
アルゴリズムとデータ構造

平衡二分探索木 | 応用情報技術者試験

平衡二分探索木とは

平衡二分探索木とは、データを効率よく検索するための「ツリー構造(木構造)」の一種で、左右の枝のバランス(高さ)が常にほぼ均等に保たれるように自動的に調整されるデータ構造です。「AVL木」や「赤黒木」などが有名です。
通常の二分探索木は、データを追加していく順番によっては、枝が片側だけに偏って長く伸びてしまい、データを検索する効率が著しく低下して単なるリストのようになってしまう欠点があります。平衡二分探索木では、データを追加・削除するたびに、ツリーの左右のバランスが崩れていないかをチェックし、崩れそうになったら構造を回転(ローテーション)させて高さを均等に保ちます。これにより、データ量が膨大になっても常に高速な検索性能(O(log N))を維持できます。

具体例

「1, 2, 3, 4, 5」という順番でデータを追加する場合、通常の二分探索木だと右側に一本道で繋がってしまいますが、平衡二分探索木では、3を追加した時点で真ん中の「2」を親(根)にし、4や5を追加した際にも自動的にツリーのバランスを組み替えて、ピラミッドのような左右対称に近い形を維持します。

もう少し詳しく