6.1-1
最多的情况是高度为 h 的完全二叉树,元素一共有
最少的情况是高度为0的这一层的叶子只有一个,元素一共有
Nmin=∑i=0h−12i+1=2h
6.1-2
由题6.1-1可知,高度为
⌊lgn⌋
的堆元素最多的情况下,元素数量为
Nmax=2⌊lgn⌋+1−1>2lgn−1=n−1≥n
元素最少的情况下,元素数量为
Nmin=2⌊lgn⌋≤2lgn=n
故高度为 ⌊lgn⌋ 的堆,元素最多的时候比 n 多,元素最少的时候比
6.1-3
显然可知。。。
6.1-4
在任意一个叶子上
6.1-5
显然是的,由于在堆中父节点始终在孩子节点的左边,因为数组已经排序好,故所有的父节点都小于或等于孩子节点,所以是一个最小堆
6.1-6
不是,因为索引为4的元素,其右边孩子的索引为 RIGHT(4)=2∗4+1=9 ,而第4个元素为6,第9个元素为7,孩子节点元素大于根节点元素,故不是最大堆
6.1-7
首先我们可以来看看索引为 ⌊n/2⌋ 的节点是否有孩子节点,若有其左孩子节点索引应该为
LEFT(⌊n/2⌋)=2⋅⌊n/2⌋≤n
故其存在左孩子节点,不是叶子结点。
然后当索引 i≥⌊n/2⌋+1>n/2 时,
LEFT(i)=2i>n
故叶子节点的下标是
⌊n/2⌋+1,⌊n/2⌋+2,⋯,n