応用情報暗記無料で始める

平衡木(AVL木・赤黒木)とは?へいこうぎ

平衡木(AVL木・赤黒木)とは、どんな順序でデータを入れても木の高さがO(log n)を超えないよう、挿入・削除のたびに回転で形を整え直す二分探索木の総称。整え方の厳しさで種類が分かれ、赤黒木は色の規則により最長経路を最短経路の2倍以内に抑えるにとどめ、AVL木は左右の部分木の高さの差を1以内まで厳しくそろえる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では1回出題されています。

応用情報技術者試験の頻出用語/テクノロジ系

別名:平衡二分探索木(AVL木・赤黒木)、平衡二分探索木、平衡木、AVL木、赤黒木、AVL木・赤黒木

この語が出る過去問を解く →

背景

単純な二分探索木は、あらかじめ整列されたデータを順に挿入すると片側だけに伸び、実質的に線形リストへ退化して探索がO(n)まで落ちる。平均では速いが最悪が保証できないという性質は、入力の順序を選べない実システムでは致命的になる。形を自動的に整え直す仕組みを組み込むことで、どんな挿入順でも性能の上限を約束できるようにしたのがこれらの木である。

具体例

C++のstd::mapやJavaのTreeMapといった順序付きの連想配列は赤黒木で実装されており、平衡条件が緩く回転回数が少ないため更新の多い用途に向く。対してAVL木は高さがより低く抑えられるので、更新が少なく探索が支配的な用途で有利になる。Linuxカーネルも内部の管理構造に赤黒木を使っている。

試験での引っ掛け

平衡木が約束するのは「最悪でもO(log n)」であって、常に最速という意味ではない。件数が少なければ配列の線形探索のほうが速いこともあり、平衡を保つコストは挿入・削除の側に乗る。ハッシュ表との使い分けの軸は順序で、平衡木は要素の順序を保つため範囲検索や順次取り出しができるのに対し、ハッシュ表は等値検索しかできない。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • 平衡木が約束するのは「最悪でもO(log n)」であって、常に最速という意味ではない。