六、树和二叉树--(1)什么是二叉树

摘自计蒜客:http://www.jisuanke.com/course/35/1389


如上图所示,二叉树的每个结点最多只有两个孩子结点,也就是说每个结点最多有两个子树。

二叉树有 5 种基本形态:

空二叉树,树为空,没有结点;

只有根结点的二叉树;

只有左子树的二叉树;

只有右子树的二叉树;

左右子树都有的二叉树。

接下来我们来看看二叉树的性质:

二叉树的第 i 层最多有 2i - 1 个结点。由定义可知,二叉树的每个结点最多有两个孩子结点,那么第 i 层最多的结点数等于第 i - 1 层最多结点数的 2 倍。而第 1 层最多只有 1 个结点,所以我们可以知道第 i 层最多有 2i - 1 个结点。

深度为 k 的二叉树最多有 2k - 1 个结点。由上一个性质,我们可以知道二叉树每层最多的结点个数,从第 1 层到第 k 层把最多结点数累加起来,我们就可以得到深度为 k 的二叉树最多有 2k - 1 个结点。

任意一棵二叉树上,其叶子结点个数 n0 比度为 2 的结点数 n2 多 1。度为 2 的结点指的是即有左孩子又有右孩子的结点。我们记树上结点总个数为 n,度为 1 的结点个数为 n1,则有 n = n0 + n1 + n2。另外我们可以发现一棵二叉树一共有 n - 1 条边,度为 2 的结点可以延伸出 2 条边,度为 1 的结点可以延伸出 1 条边,叶子结点没有边延伸出来,所以又有 n - 1 = n1 + 2 * n2。结合以上两个式子,我们可以得到 n0 = n2 + 1。

下面我们来了解下两个特殊的二叉树吧。

第一个是满二叉树,如果一棵树深度为 k 而且有 2k - 1 个结点,那么我们称该二叉树为满二叉树,也就是说在此深度上,不能再添加结点了;

第二个是完全二叉树,如果一棵树深度为 k,从第 1 层到第 k - 1 层该树是满二叉树,第 k 层的结点都集中在左边,那么我们称该二叉树为完全二叉树。完全二叉树因其结构的特殊性具有很高的效率,它经常被用在算法的优化里。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值