二叉排序樹、平衡二叉樹、B-樹
阿新 • • 發佈:2019-02-12
二叉排序樹(BST)
- 刪除關鍵字操作
- 1)p結點為葉子節點
- 直接刪除
- 2)p節點只有左子樹和右子樹
- 刪除p節點,把唯一的子樹掛在原節點位置上
- 3)p節點既有左子樹又有右子樹
- 沿著左子樹右節點找到左子樹最大關鍵位元組點 r ,或沿著右子樹左節點找出右子樹最小關鍵位元組點 r 。把節點 r 中關鍵字與 p 中關鍵字進行替換,在按1)或2)刪除節點 r
- 1)p結點為葉子節點
平衡二叉樹(AVL)
- 平衡因子:某結點的左子樹與右子樹的高度(深度)差即為該結點的平衡因子(BF,Balance Factor)。
- 平衡二叉樹上所有結點的平衡因子只可能是 -1,0 或 1。
- 平衡二叉樹思想
- 旋轉操作:
- 單向左旋平衡處理、單向右旋平衡處理:對平衡因子不為0、1、-1的結點進行旋轉操作
- 雙向(先左後右、先右後左)旋轉平衡處理:先對對平衡因子不為0、1、-1的結點的左子樹或右子樹進行旋轉操作,再對結點本身做旋轉操作。
- 例:插入55,12,24,47,30,68,19
B-樹
是一種多路搜尋樹
由於M/2(向上取整)的限制,在插入結點時,如果結點已滿,需要將結點分裂為兩個各佔M/2(向上取整)的結點;刪除結點時,需將兩個不足M/2(向上取整)的兄弟結點合併。