演算法-bst-平衡搜尋二叉樹-1
阿新 • • 發佈:2021-07-30
搜尋二叉樹
預設沒重複節點,左邊節點小於根節點 右子節點大於根節點
重複的節點可以用list儲存或者value增加1
搜尋二叉樹刪除:
1. 沒孩子 直接刪除 父節點指向為null
2. 有一個孩子 父節點指向孩子
3. 有兩個孩子 取左孩子的最右孩子 或 取右孩子的最左節點
avl樹/紅黑樹/sb樹的區別是 判斷平衡的條件不一樣
avl平衡性 嚴格要求左樹和右樹的高度差不超過1
sb樹平衡性:每棵子樹的大小 不小於其兄弟的子樹大小 即叔叔樹大於侄子樹大小
左侄子節點數量大於 叔叔節點的數量 LL型 左叔叔節點右旋 右旋後哪個節點的孩子節點發生變化再平衡
右侄子節點數量大於 叔叔節點的數量 LR型 右侄子旋轉稱為root節點 哪個節點孩子節點變化再平衡
紅黑樹平衡性:
節點為紅或黑
root和葉子節點必須黑
紅紅不能相鄰
黑高(每個路黑節點一樣多)