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

二分探索木を扱う

二分探索木は左部分木と右部分木へ大小関係を保ちます。挿入順によって木が偏ると探索が遅くなるため、平衡化構造との違いを理解します。

二分探索木は左部分木と右部分木へ大小関係を保ちます。挿入順によって木が偏ると探索が遅くなるため、平衡化構造との違いを理解します。 仕組みだけでなく、検証方法と運用上の注意も具体例で確認します。

基本の考え方

二分探索木は左部分木と右部分木へ大小関係を保ちます。挿入順によって木が偏ると探索が遅くなるため、平衡化構造との違いを理解します。

安全に試すための確認

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

コード例

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

values = [4, 2, 6, 1, 3]
root = 4
print(all(value < root for value in values if value < root))

手を動かす課題

二分探索木への挿入と検索を実装し、昇順入力で木が偏る様子を記録してください。

参考資料

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