← Back to library
データ構造 AIに質問関連 3 問題

Binary Search Tree

二分探索木

概要

各ノードについて 左部分木の全値 < ノード値 < 右部分木の全値 の順序を保つ二分木。この不変条件により、探索・挿入・削除を木の高さ hh に比例する手数で行える。挿入は「NoneNone に到達するまで降りて葉として付ける」だけ。最悪 O(n)O(n) は偏った木(連結リスト状)のとき。実用では平衡木(AVL / 赤黒木)で高さを保証する。

計算量

操作平均最悪
探索
挿入
削除

学習メモ

挿入は平均 O(logn)O(\log n) だが昇順データを順に挿入すると連結リスト状(O(n)O(n))に退化する。平衡 BST(AVL・赤黒木)が必要な理由はここにある。