二元搜尋樹

二叉查找樹 （ Binary Search Tree ） ， 也 - { zh - cn: 稱爲二叉搜索樹 、; zh - tw: 稱爲; } - 有序二叉樹 （ ordered binary tree ） 或排序二叉樹 （ sorted binary tree ） ， 是指一棵空樹或者具有下列性質的二叉樹 ： 若任意節點的左子樹不空 ， 則左子樹上所有節點的值均小於它的根節點的值 ； 若任意節點的右子樹不空 ， 則右子樹上所有節點的值均大於它的根節點的值 ； 任意節點的左 、 右子樹也分別爲二叉查找樹 ； 二叉查找樹相比於其他數據結構的優勢在於查找 、 插入的時間複雜度較低 。 爲 。 二叉查找樹是基礎性數據結構 ， 用於構建更爲抽象的數據結構 ， 如集合 、 多重集 、 關聯數組等 。 二叉查找樹的查找過程和次優二叉樹類似 ， 通常採取二叉鏈表作爲二叉查找樹的存儲結構 。 中序遍歷二叉查找樹可得到一個關鍵字的有序序列 ， 一個無序序列可以透過建構一棵二叉查找樹變成一個有序序列 ， 建構樹的過程即爲對無序序列進行查找的過程 。 每次插入的新的結點都是二叉查找樹上新的葉子結點 ， 在進行插入操作時 ， 不必移動其它結點 ， 只需改動某個結點的指針 ， 由空變爲非空即可 。 搜索 、 插入 、 刪除的複雜度等於樹高 ， 期望 ， 最壞退化爲偏斜二元樹 。 對於可能形成偏斜二元樹的問題可以經由樹高改良後的平衡樹將搜尋 、 插入 、 刪除的時間複雜度都維持在 ， 如AVL樹 、 紅黑樹等 。