1. 程式人生 > 其它 >演算法-bst-平衡搜尋二叉樹-1

演算法-bst-平衡搜尋二叉樹-1

搜尋二叉樹

預設沒重複節點,左邊節點小於根節點 右子節點大於根節點

重複的節點可以用list儲存或者value增加1

搜尋二叉樹刪除:

1. 沒孩子 直接刪除 父節點指向為null

2. 有一個孩子 父節點指向孩子

3. 有兩個孩子 取左孩子的最右孩子 或 取右孩子的最左節點

avl樹/紅黑樹/sb樹的區別是 判斷平衡的條件不一樣

avl平衡性 嚴格要求左樹和右樹的高度差不超過1

sb樹平衡性:每棵子樹的大小 不小於其兄弟的子樹大小 即叔叔樹大於侄子樹大小

左侄子節點數量大於 叔叔節點的數量 LL型 左叔叔節點右旋 右旋後哪個節點的孩子節點發生變化再平衡

右侄子節點數量大於 叔叔節點的數量 LR型 右侄子旋轉稱為root節點 哪個節點孩子節點變化再平衡

紅黑樹平衡性:

  節點為紅或黑

  root和葉子節點必須黑

  紅紅不能相鄰

  黑高(每個路黑節點一樣多)