C++满二叉树和完全二叉树

满二叉树

定义:深度为k的二叉树且结点个数为2^k-1的二叉树为满二叉树

满二叉树的所有结点均存在。

 

 特点:

1. 满二叉树中所有层的结点数都是满的

2. 叶子结点必须在最低的层上出现

满二叉树的标号规则:

自根节点开始,自上而下,自左而右依次编号,每一层的结点均存在,并且个数均为最大个数

 A:该二叉树一共有4层,满二叉树应该具有15个结点,9<15因此不是满二叉树。除此之外,有且仅有数的最后一层等于叶子结点,并且叶子节点必须排列在同一层。因此不是满二叉树

因此:在同样深度情况下,满二叉树的节点个数和叶子节点个数均为所有二叉树中的最大值

完全二叉树

定义:如果存在一个二叉树,并且按照从上到下,从左到右的规则对其结点进行标号。如果该二叉树上的所有结点标号与满二叉树一致,则为完全二叉树,反之,则不是。

对于一个满二叉树,从末端叶子节点连续去除结点,剩下的结果均为完全二叉树

对于一个完全二叉树,叶子节点只能存在于k或者k-1层。当一个右端结点位于k层,左结点必位于k或者k+1层。即完全二叉树的左叶子节点层数大于等于右叶子节点层数

满二叉树一定是完全二叉树,但后者不一定是前者。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值