二叉搜尋樹
特點:1、所有非葉子節點最多2個孩子,【廢話,二叉樹】。
2、所有節點,每個節點儲存乙個值
3、父親節點的左孩子樹的節點比它小,右孩子節點的值比它大。
查詢: 其實,我一下子想到的是二分查詢。 先查詢根,如果相等則找到,如果大於要查詢的值,則查詢右孩子樹【因為右孩子數儲存的值比root大】,如果小於要查詢的值,則查詢左孩子樹【左孩子樹比root小】,直到查詢的節點的左或者右孩子【也即最底層的葉子節點】為空,仍然不能匹配,則認為沒找到。
b-樹的效能總是等價於二分查詢(與m值無關),也就沒有b樹平衡的問題
b+樹b+樹是b-樹的變體,也是一種多路搜尋樹:
1.其定義基本與b-樹同,除了:
2.非葉子結點的子樹指標與關鍵字個數相同;
3.非葉子結點的子樹指標p[i],指向關鍵字值屬於[k[i], k[i+1])的子樹
(b-樹是開區間);
5.為所有葉子結點增加乙個鏈指標;
6.所有關鍵字都在葉子結點出現;
如:(m=3)
b+的搜尋與b-樹也基本相同,區別是b+樹只有達到葉子結點才命中(b-樹可以在
非葉子結點命中),其效能也等價於在關鍵字全集做一次二分查詢;
b+的特性:
1.所有關鍵字都出現在葉子結點的鍊錶中(稠密索引),且鍊錶中的關鍵字恰好是有序的;
2.不可能在非葉子結點命中;
3.非葉子結點相當於是葉子結點的索引(稀疏索引),葉子結點相當於是儲存
(關鍵字)資料的資料層;
4.更適合檔案索引系統;
B樹 B 樹 B 樹 B 樹 總結
b樹 1.所有非葉子結點至多擁有兩個兒子 left和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點關鍵字小,就進入左兒子 如果比結...
B樹,B 樹,B 樹,B 樹
小彰的部落格 b樹 即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 如 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點...
B樹 B 樹 B 樹 B 樹
b 樹即二叉搜尋樹 1.所有非葉子結點至多擁有兩個兒子 left 和right 2.所有結點儲存乙個關鍵字 3.非葉子結點的左指標指向小於其關鍵字的子樹,右指標指向大於其關鍵字的子樹 如 b樹的搜尋,從根結點開始,如果查詢的關鍵字與結點的關鍵字相等,那麼就命中 否則,如果查詢關鍵字比結點關鍵字小,就...