完全二叉树

本文详细解释了满二叉树、理想二叉树和完全二叉树的概念,并通过实例计算了完全二叉树中叶子节点的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在看数据结构和算法,这好多天没碰几乎全忘,搞一个看到一个完全二叉树都算了半天,网上众说纷纭啊,我还是以我的理解记录一下给我做个记忆吧,以我这记忆力指不定以后又忘了。

首先几个概念:理想二叉树,满二叉树,完全二叉树。

1)满二叉树:所有节点(除叶子)都有2个子节点,叶子节点都在一层,就是满了的意思。

2)理想二叉树:今天看到这个概念纠结了半天,还是搞不懂他和满二叉树的区别,我的理解是其所有叶子节点均在同一个高度或者深度,和满的区别就是最后一层叶子节点的最右边可以只有一个?

3)完全二叉树:这个网上定义太多了,我就是记录一下吧:

高度为K个的完全二叉树有2^k——2^(k+1)-1个节点。说到这又想到几个关于二叉树的:

二叉树的第i层节点数目最多为:2^(i-1)(i>=1)。

深度为k的二叉树至多有2^k-1个节点(i>=1)。

包含2^(k+1)-1个节点、高为k的理想二叉树的节点的高度的和为2^(k+1)-1-(k+1)。

PS:树的高度是距离叶子的路经长

树的深度距离树根的路经长,他们都可以代表一个树。

好吧。随便找了个题目算下加深一下记忆:完全二叉树有770个节点,问叶子节点有多少个?

依上面的公式:2^k-1=770,算出k=9.X,所有是10层,然根据定义,前9层是满的有2^k-1=511个节点,所有最后一层有770-511=259个节点,第九层有259/2=129.5为130个节点,所以第九层的叶子节点为2^(i-1)=256-130=126个节点+最后一层的259个节点,所有最后叶子节点为:385个。

OK,搞定!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值