[数据结构] -堆与二叉树 【学习笔记】

二叉树1、满二叉树:k层满二叉树节点总数位(2^k)-12、完全二叉树:可以不满,但必须按顺序告诉你一棵二叉树有N个节点,那么他的高度是多少?2^k - 1 =Nk = log(N+1)若根节点为第一层,那么非空二叉树的第i层上最多有2^(i-1)个节点若根节点为第一层,那么深度为h的二叉树的最大结点数是 2^h -1度为零的节点个数比度为二的节点个数多一个:n0 = n2 +1;来两道题练练手,看看概念理解的怎么样?1、某二叉树共有 399 个结点,其中 有199个为 度为2的
摘要由CSDN通过智能技术生成

二叉树

1、满二叉树:k层满二叉树节点总数位(2^k)-1
2、完全二叉树:可以不满,但必须按顺序

告诉你一棵二叉树有N个节点,那么他的高度是多少?
2^k - 1 =N
k = log(N+1)

若根节点为第一层,那么非空二叉树的第i层上最多有2^(i-1)个节点
若根节点为第一层,那么深度为h的二叉树的最大结点数是 2^h -1
度为零的节点个数比度为二的节点个数多一个:n0 = n2 +1;

来两道题练练手,看看概念理解的怎么样?

1、某二叉树共有 399 个结点,其中 有199个为 度为2的 结点 ,则该二叉树中的叶子节点数为()

很简单吧,度为0 及叶子节点 比 度为2 (199) 多一个 ,答案为 200个

2、在具有 2n个结点的 完全二叉树中,叶子节点个数为()

完全二叉树的结点的度,只有0、1、2三种情况
假设度为0 、 1 、2的节点 分别个数为 a0、a1、a2个
则 2n = a0 + a1 + a2
2n = a0 + a1 + a0 -1
2n = 2 a0 + a1 - 1
完全二叉树度为1 的结点 要么是0个 要么是 1个
根据奇偶关系得到,a1 = 1

所以本题的答案为 n

3、一棵完全二叉树的节点总数为 531 个 ,那么 这棵树 的高度为()

假设高度为 h
2^h -1 -x = 531,可以推出 X 的范围,再把选项带进去就可以了

4、一个具有767个节点的完全二叉树,其叶子节点个数为()

假设度为0 、 1 、2的节点 分别个数为 a0、a1、a2个
767 = 2 a0 + a1 -1
a1 = 0
a0 = 384

5、在一颗度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,则叶子结点有( )个

设度为i的节点个数为ni,则该树总共有n个节点
n = n0+n1+n2+n3.
有n个节点的树的总边数为 n-1条,根据度的定义,总边数与度之间的关系为
n-1 = 0n0+1n1+2n2+3n3
联立两个方程可得,n0 = n2 +2 n3+1, n0 =6.

6、一颗拥有1000个结点的树度为4,则它的最小深度是( )

假设为满树,则他的深度最小,假设他是一个四叉树,高度为h,则这个树的节点个数(4^h-1)/3,当 h = 5 ,最大节点为341,当h=6,最大结点数为1365,所以最小深度应为6.

7、设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为( )个

设度为i的节点个数为ni,则该树总共有n个节点
n = n0+n1+n2.
n-1 = n1 + 2*n2
得 N0 =3,N1 =8 ,N2 =2.

堆 – 完全二叉树

1、堆在这里主要研究两个问题:一个是堆排序,一个是topk问题

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值