Heap是一種資料結構,使用一維陣列來儲存資料,可以把它想成Tree的概念。
Heap分成兩種,最小堆積(Min-Heap)、最大堆積(Max-Heap)。
Insert:
先把值放在最後的節點,值再逐一與其父節點比大小,若是Min-Heap則較大值當作子節點較小的值當父節點,逐一比較到Root節點;反之,Max-Heap則較小值當作子節點較大的值當父節點,逐一比較到Root節點。
Delete:
刪除一個節點的值,就要將原先的最後一個節點的值,移動到要刪除的節點,然後該節點需要依據Heap的規則與父節點、子節點比較值的大小,完成一個新的Heap Tree。