慕妹3146593
2019-09-10 14:10:37
什么是堆?(不是數(shù)據(jù)結(jié)構(gòu)中的堆)
4 回答

DIEA
TA貢獻1820條經(jīng)驗 獲得超3個贊
堆區(qū)(heap) — 一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時可能由OS回收 。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表

料青山看我應如是
TA貢獻1772條經(jīng)驗 獲得超8個贊
堆是一棵完全二叉樹:
1、其根結(jié)點的值小于兩個子結(jié)點的值,其余任何一個結(jié)點的值都小于其子結(jié)點的值——小根堆。
2、其根結(jié)點的值大于兩個子結(jié)點的值,其余任何一個結(jié)點的值都大于其子結(jié)點的值——大根堆。

慕慕森
TA貢獻1856條經(jīng)驗 獲得超17個贊
簡單說堆是一種完全二叉樹 一般總用來構(gòu)造優(yōu)先級隊列
堆的特性是父結(jié)點總優(yōu)它任意子節(jié)點(所以堆頂元素為最優(yōu) 但不需要保證左子樹和右子樹的關(guān)系)
堆的物理結(jié)構(gòu)一般用數(shù)組等支持索引的線性結(jié)構(gòu)(因為是完全二叉樹..)
并且實現(xiàn)構(gòu)造堆 彈出堆頂元素 添加元素并調(diào)整堆等操作
堆排序也是用這個原理實現(xiàn)的 先構(gòu)造一個堆 然后不斷的彈出堆頂元素并調(diào)整堆 生成的序列則是有序的
添加回答
舉報
0/150
提交
取消