关于堆的一些问题:
问答题
堆的存储表示是顺序的,还是链接的?
【正确答案】正确答案:堆的存储是顺序的。
【答案解析】
问答题
设有一个最小堆,即堆中任意结点的关键字均大于它的左孩子和右孩子的关键字。其具有最大值的元素可能在什么地方?
【正确答案】正确答案:最大值元素一定是叶子结点,在最下两层上。
【答案解析】
问答题
对n个元素进行初始建堆的过程中,最多做多少次数据比较(不用大O表示法)?
【正确答案】正确答案:在建含有n个元素、深度为h的堆时,其比较次数不超过4n,推导如下: 由于第i层上的结点数至多是2
i-1
,以它为根的二叉树的深度为h-i+1,则调用[n/2]次筛选算法时总共进行的关键字比较次数不超过下式之值:

【答案解析】解析:此题考查的知识点是堆的基本定义及效率。堆定义为n个关键字序列K
1
,K
2
,…,K
n
,当且仅当该序列满足如下性质(简称为堆性质): (1)k
i
≤K
2
,且k
i
≤K
2i+1
或 (2)k
i
≥K
2
;且k
i
≥K
2i+1
(1≤i≤n)。k
i
相当于二叉树的非叶结点,K
2i
则是左孩子,k
2i+1
是右孩子。