heap
文章推薦指數: 80 %
Heap. 定義:堆積分成Min heap與Max heap兩種。
Min heap必須具備. 的條件:. (1) 是一棵complete binary tree。
(2) 是一棵min tree。
Max heap必須具備的條件:.
Heap
定義:堆積分成Minheap與Maxheap兩種。
Min
heap必須具備
的條件:
(1)
是一棵complete
binarytree。
(2)
是一棵min
tree。
Maxheap必須具備的條件:
(1)
是一棵complete
binarytree。
(2)
是一棵max
tree。
例:
Maxheap Minheap
50 12
34 27 18 26
5
7 2 24 37
註:
mintree是
tree且每個node的keyvalue皆不大於其children。
maxtree是
tree且每個node的keyvalue皆不小於其children。
我們將以Java
Applet的方式,簡單介紹Maxheap的基本操作。
程式基本操作簡介:
★新增(亂數新增):
按此順序的方式新增:
1
2 3
4
5 67
8……
按新增後的動作如下:
1.找出下一個可以新增的位置,如圖中的8
2.將新增的節點插到正確的位置
3.若比父節點的值大則與父節點對調,對調完畢。
若上面還有節
點則繼續比較下去,直到符合maxtree的定義
★刪除最大:即刪除樹根。
按刪除最大後的動作如下:
1.找到目前最後一位置的節點,如圖中的7
2.將樹根刪除,並將7號節點移至樹根
3.新樹根與其children比較,若比其子節點小則對調,對調完畢。
若下面還有節點則繼續比下去,直到符合Maxtree的定義。
秀出範例畫面
延伸文章資訊
- 1Min-Max Heap - HackMD
Insertion - 插入 · 此時Node 2 你不知道他是否符合Min-Max Heap 的定義,所以我們要與他的Parent Node 1 比較 · 根據定義3 ,Root = Node...
- 2最大堆積樹中刪除節點最小 - 第一章資料庫概念
【定義】最小-最大堆積樹(Min-Max Heaps Tree)是一個完整二元樹。此二元樹是交替的階層方式呈現,分別為最小階層( min level ) 和最大階層( max level ) ,...
- 3堆積- 維基百科,自由的百科全書
- 4[資料結構] 堆積(Heap) - iT 邦幫忙
堆積(Heap),是一種特殊的完全二元樹,而堆疊不一樣,是完全不同的概念。 有分兩種,一種是最小堆積,另一種是最大堆積。 最小堆積. 如下圖,完全二元樹所有的父節點都 ...
- 5資料結構大便當: Binary Heap
如果是max-heap 的話,每個node 都要比自己child 大,如果是min-heap 反之(下圖是max-heap); (max-heap)root 就會是整個heap 的最大值. (m...