Please enable JavaScript.
Coggle requires JavaScript to display documents.
高等樹 - Coggle Diagram
高等樹
-
Binomial Heap
目的?和 Heap差別?
仍然符合Heap的特性:
1)對於 Min-Binomial Heap:每棵 binomial tree 中,父節點 ≤ 子節點(符合Min-Heap性質)
2)它支援以 關鍵值優先順序(priority) 來取出資料
-
-
-
-
-
-
製作雙邊優先權佇列
什麼樣的資料結構適合:question:
SMMH
Def
1)樹根不存值
2)左兄弟值<=右兄弟值
3)若某節點x有祖父,則祖父的左子點需要<= x
4)祖父的右子點需要>= x
5):explode:以節點編號 i 為樹根之子樹中,其子孫最小值為左子節點,其子孫最大值為右子節點(也就是左子樹是min-heap 右子樹是max-heap) :explode:
-
-
-
-
Deap 雙堆積
-
Insert x
x先暫時放在最後一個節點的下一個位置
x 在左子樹
比較x所在位置在右子樹的對應點值,亦即如果x > Deap[ j ],則把 j 位置中的值放到 x 所在位置,然後當成x要去j的位置做insert Max Heap ,否則就是插入min-Heap-insert
-
Delete min in Deap
1)移走左子樹的樹根值
2)將最後一個節點刪掉,並令其值為x
3)左子樹樹根的空缺由他的左右子點min往上遞補,直到在左子樹的某個leaf(令做 i)形成一個空缺
4)視作insert x 在leaf I 的位置,也就是insert x in Deap
-
使用這些資料結構的目的是:question:
使 insert, delete min&max 時間維持在O(log n)
-
-
-
紅黑樹
-
-
操作
Insert X
1)先search for x,找出適當的插入位置,但還不要插入
2)在找的過程中,如果有某節點的兩個小孩都是紅色,則做color change,接著檢查有無連續的紅色節點,有的話做Rotaiton
3)第2步做完後將x放到新node,且標紅色
4)檢查是否有連續的紅色節點,有的話就做Rotation調整
5)Root一律改黑色
-
-
-
-
-