二叉排序樹(BST)或為空樹,或滿足:左子樹鍵值 < 根 < 右子樹鍵值,且左右子樹皆為 BST。中序遍歷遞增有序。
struct Node { short key; Node *lchild, *rchild; };
遞歸插入:空樹創建節點;鍵值小往左,大往右,相等忽略。構建函數循環讀入鍵值調用插入,以 '?' 結束。
遞歸比較鍵值,相等返回,小往左,大往右,空返回 NULL。平均 O(log n),最壞 O(n)。
查找長度取決於樹高。平衡時 ASL ≈ log₂ n;退化為鏈表時 ASL = n。頻繁插刪場景優於有序數組二分查找(插刪 O(n))。
BST 是動態查找表的基礎結構,掌握插入、刪除(特別是雙分支替代邏輯)、查找三大操作,並理解其平均/最壞性能差異,是數據結構核心考點。