組み込み開発のためのPython · レッスン 155 / 220

AVL木の平衡化を学ぶ

AVL木は部分木の高さ差を制限する自己平衡二分探索木です。回転によって高さを保ちますが、実装の境界条件を十分に試験する必要があります。

AVL木は部分木の高さ差を制限する自己平衡二分探索木です。回転によって高さを保ちますが、実装の境界条件を十分に試験する必要があります。 仕組みだけでなく、検証方法と運用上の注意も具体例で確認します。

基本の考え方

AVL木は部分木の高さ差を制限する自己平衡二分探索木です。回転によって高さを保ちますが、実装の境界条件を十分に試験する必要があります。

安全に試すための確認

計算量だけでなく入力条件、重複値、空データ、最悪ケースを確かめます。組み込み用途ではメモリ上限と実行時間を実測し、標準ライブラリの利用も検討してください。

コード例

手元のPython環境に貼り付ける前に、使用しているPythonの版と対象ライブラリの対応を確認してください。

def balance_factor(left_height, right_height):
    return left_height - right_height

print(balance_factor(3, 2))

手を動かす課題

LL・RR・LR・RLの各回転が必要となる挿入順を作図し、平衡係数を確認してください。

参考資料

「データ構造とアルゴリズム」の章一覧へ