二叉树的概念

首先我们要知道的是二叉树和度为2的树是不一样的,度为2的树要求在树中必须要有一个度为2的结点,但是二叉树只需要树中所有结点都小于等于2即可(有一点需要说明一下,就是m叉树会出现空树的情况,我实在是没想到选择题里面有一题问你空树的定义,空树的定义就是意味着二叉树没有任何结点)

满二叉树与完全二叉树

满二叉树:满二叉树意思就是对于高度为h的二叉树每一层结点都填满了总共2_{}^{h}-1个结点,计算公式见树的概念那一章,对满二叉树进行编号,根结点编号为1,从上至下从左往右编号,对于编号为i的结点,他的双亲结点编号为[i/2],他的左孩子结点编号为2i,他的右孩子结点编号为2i+1,注意这个规律的大前提是树是一棵满二叉树

完全二叉树:完全二叉树有以下几条规则,

第一条,其结点序号必须是一个接着一个的不可以跳序号,就是说树中若已经有了1-5编号结点,如果你想要树中有7号结点,必须得先有6号结点,其结点必须是从上至下从左往右出现,先有左孩子再有右孩子

第二条,若完全树有n个结点则前[n/2]个结点(包括[n/2])必为分支结点,就是非叶子结点,编号大于[n/2]的结点都为叶子结点

第三条,所有的叶子结点只可能出现在倒数第二层和最后一层

第四条,度为1的结点只会有0个或者1个

第五条,若n为偶数则会有一个度为1的结点且这个结点只会是最后一个结点,若n为奇数则结点度只有2和0

第六条,对于编号为i的结点,其双亲编号为[i/2],其左孩子编号为2i,右孩子编号为2i+1,这一条和满二叉树一样

第七条,判断某个结点在哪一层,对于编号为i的结点,其层数为\log {_{2}}^{i}+1,怎么算的,首先编号2_{}^{h-1}-1<i<=2_{}^{h}-1,书上写了两个解法一种是直接对该式计算得\log {_{2}}^{i+1}<=h<\log {_{2}}^{i+1}+1,直接算的话则h=\log {_{2}}^{i+1},还有一种就是写成2^{h-1}<=i<2^{h},解得\log {_{2}}^{i}<h<=\log {_{2}}^{i}+1则h=\log {_{2}}^{i}+1,我觉得对于两种算法第一种属于是会出现空树的情况下使用,这里既然已经说了编号i所以一定是有结点的,而第二种就对应了不可能出现空树的情况,所以计算编号为i的结点在哪一层我们用\log {_{2}}^{i}+1计算,而接下来我们讨论的第二个问题就是要用到第一个式子。

第八条,告诉你有n个结点的完全二叉树,计算其高度,上面的两个公式就可以分不同情况来使用了,当然书上只给了这两个公式没有说明这两个公式的区别,我觉得区别就是第一个公式可以应对于会出现空树的情况

最后对于任何一个非空二叉树都会有:叶子结点的个数=度为2的结点的个数+1,对于有n个结点的树则需要n-1条边无论是几叉树

对于这一章内容我觉得知识点的话也就上面这么多,做题的时候需要灵活运用

未解决问题,王道作业题的第3,8,18题,这就体现了我考虑问题的全面性不够

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值