算法导论第三版习题6.1

6.1-1

最多的情况是高度为 h 的完全二叉树,元素一共有

Nmax=i=0h2i=2h+11

最少的情况是高度为0的这一层的叶子只有一个,元素一共有

Nmin=i=0h12i+1=2h

6.1-2

由题6.1-1可知,高度为 lgn 的堆元素最多的情况下,元素数量为

Nmax=2lgn+11>2lgn1=n1n

元素最少的情况下,元素数量为
Nmin=2lgn2lgn=n

故高度为 lgn 的堆,元素最多的时候比 n 多,元素最少的时候比n少,所以可知含 n 个元素的堆高度应该为lgn

6.1-3

显然可知。。。

6.1-4

在任意一个叶子上

6.1-5

显然是的,由于在堆中父节点始终在孩子节点的左边,因为数组已经排序好,故所有的父节点都小于或等于孩子节点,所以是一个最小堆

6.1-6

不是,因为索引为4的元素,其右边孩子的索引为 RIGHT(4)=24+1=9 ,而第4个元素为6,第9个元素为7,孩子节点元素大于根节点元素,故不是最大堆

6.1-7

首先我们可以来看看索引为 n/2 的节点是否有孩子节点,若有其左孩子节点索引应该为

LEFT(n/2)=2n/2n
故其存在左孩子节点,不是叶子结点。
然后当索引 in/2+1>n/2 时,
LEFT(i)=2i>n
故叶子节点的下标是 n/2+1,n/2+2,,n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值