二叉查詢樹,由於不平衡,如果連續插入的資料是有順序的、會導致如下圖b的所示,此時搜尋會退化到o(n)
二叉查詢樹,也稱二叉搜尋樹,或二叉排序樹。其定義也比較簡單,要麼是一顆空樹,要麼就是具有如下性質的二叉樹:
(1)若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;
(2) 若任意節點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;
(3) 任意節點的左、右子樹也分別為二叉查詢樹;
(4) 沒有鍵值相等的節點。
如上圖所示,是不同形態的二叉查詢樹。二叉查詢樹是對要查詢的資料進行生成樹,左支的值小於右支的值。在查詢的時候也是一樣的思路,從根節點開始,比節點大進入右支,比節點小進入左支,直到查詢到目標值。
二叉查詢樹的插入演算法比較簡單:空樹,就首先生成根節點;不是空樹就按照查詢的演算法,找到父節點,然後作為葉子節點插入,如果值已經存在就插入失敗。
刪除操作稍微複雜一點,有如下幾種情況ÿ
二叉搜尋樹,B樹(B 樹),B 樹,B 樹
b樹即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 如 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點關鍵字小,就進入...
二叉樹,B樹,B 樹
先來看看二叉樹 二叉樹是大家熟知的一種樹,用它來做索引行不行,可以是可以,但有幾個問題 1.如果索引資料很多,樹的層次會很高 只有左右兩個子節點 資料量大時查詢還是會慢 2.二叉樹每個節點只儲存乙個記錄,一次查詢在樹上找的時候花費磁碟io次數較多 所以它並不適合直接拿來做索引儲存,演算法設計人員在二...
二叉樹 B樹以及B 樹
資料庫索引結構一般引用b樹或者索引。利用樹結構的原因?樹結構查詢效率更高 節點按照順序排列 二叉樹結構 b樹結構 乙個m階的b樹具有如下幾個特徵 1.根結點至少有兩個子女。2.每個中間節點都包含k 1個元素和k個孩子,其中 m 2 k m 3.每乙個葉子節點都包含k 1個元素,其中 m 2 k m ...