走进二叉树的世界 ———性质讲解

前言

本篇博客主要讲述的是有关二叉树的一些概念,性质以及部分性质的相关证明,如果大伙发现了啥错误,可以在评论区指出😘😘
请添加图片描述

1.二叉树的概念和结构

一棵二叉树是节点的一个有限集合,该集合:

  1. 或者为空
    2.由一个根节点加上两棵别称为左子树和右子树的二叉树组成。
    如下图所示:在这里插入图片描述

特殊的二叉树:

  1. 满二叉树:一个二叉树,每一层的节点都达到最大值,这个二叉树就是满二叉树。也就是说,如果一个二叉树的层次为k,且结点总数是2^k-1,这棵树就是满二叉树。

由于每层都是满的,所以节点总数:
2^0 + 2^0 + 2^1 + ······+ 2^(k-1) = 2^k - 1

  1. **完全二叉树:**完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为k的,有n个节点的二叉树,当且仅当其每个节点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。(通俗的来讲,就是当二叉树的前k-1层为满二叉树,最后一层的节点连续排布时就是完全二叉树)

从该定义同时也可以知道,满二叉树是一个特殊的完全二叉树。
如下图所示即是满二叉树:
在这里插入图片描述

二叉树的性质

  1. 若规定根节点的层数是1,则一颗非空二叉树第i层上最多有2^(i-1)个结点。(根据二叉树的结构不难看出)
  2. 若规定根结点的层数为1,则深度为h的二叉树的最大结点数是 2 h − 1 2^h-1 2h1.

上面在讲解满二叉树时已经给出证明。

  1. 对于任何一棵二叉树,如果度为0其叶节点个数为 n 0 n_0 n0,度为2的分支结点个数为 n 2 n_2 n2,则有 n 0 n_0 n0 = n 2 n_2 n2 + 。

这里提供两种方法进行帮助理解:
1.关系推导:
(1)首先,对一个只有根节点的树添加一个结点,此时度为0的结点数不点,也就是增加一个度为1的结点,并不影响度为0的结点和度为2的结点个数。
在这里插入图片描述
(2)在此之后,每次多一个度为2的结点数,度为0的结点数也会增加一个,所以度为0的结点数总是比度为2的结点数多1。
在这里插入图片描述
2. 数学推导
已知一棵二叉树的结点总数为
S S S = n 0 n_0 n0+ n 1 n_1 n1+ n 2 n_2 n2
S S S = n 2 ∗ 2 n_2*2 n22 + n 1 ∗ 1 n_1*1 n11 + n 0 ∗ 0 n_0*0 n00
联立两式即可得出 n 0 n_0 n0 = n 2 + 1 n_2+1 n2+1

  1. 若规定根结点的层数为1,具有n个结点的满二叉树的深度,h= l o g 2 ( n + 1 ) log_2(n+1) log2(n+1)

该性质的证明即是结点总个数的逆推导。

  1. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有结点从0开始编号,则对于序号为i的结点有:
  • 若i>0,i位置结点的双亲序号:(i-1)/2;i=0,i为根结点编号,无双亲结点
  • 若2i+1<n,左孩子序号:2i+1,2i+1>=n否则无左孩子
  • 若2i+2<n,右孩子序号:2i+2,2i+2>=n否则无右孩子
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮雨清秋.L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值