5.3 数据结构——二叉树的定义和性质

5.3.1 二叉树的定义

        二叉树(Binary Tree)是 n(n >= 0)个结点的有限集,该集合或者是空集(n = 0),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

二叉树的特点:

1、每个结点最多有俩孩子,因为二叉树中不存在度大于2的结点;

2、子树有左右之分,其次序不能颠倒;

3、二叉树可以是空集合,根可以有空的左子树或空的右子树。

二叉树的五种基本形态:

1、空二叉树;

2、只有一个根结点;

3、根结点只有左子树;

4、根结点只有右子树;

5、根结点既有左子树又有右子树。

具有三个结点的二叉树可能有5不同形态:

 二叉树不是树的特殊情况,它们是两个不同的概念。

        二叉树结点的子树要区分左子树和右子树,即使只有一棵树也要进行区分,说明它是左子树还是右子树。

        树当结点只有一个孩子是,它就不需要区分它是左还是右的次序,因此二者是不同的,这也是二叉树和树的最主要的差别。

虽然二叉树和树的概念不同,但有关树的基本术语对二叉树都适用。

5.3.2 特殊二叉树

1、斜树

        所有的结点都只有左子树的二叉树叫左斜树;所有结点都只有右子树的二叉树叫右斜树,两者统称为斜树。

2、满二叉树

        在二叉树中,所有分支结点都存在左子树和右子树,并且叶子结点都在同一层上,这样的二叉树称为满二叉树。

特点:

(1)非叶子结点的度一定是2;

(2)叶子结点全部在最底层;

(3)在同样深度的二叉树中,满二叉树的结点个数最多,叶子结点个数最多。

3、完全二叉树

        对于一颗具有n个结点的二叉树按层序编号,如果编号为i(1 <= i <= n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中的位置完全相同,则这棵二叉树称为完全二叉树。

特点:

(1)叶子结点只能出现在最下的两层;

(2)最下层的叶子一定集中在左部连续的位置;

(3)倒数第二层,若有叶子结点,一定都在右部连续的位置;

(4)对于任一结点,如果其右子树的最大层次为i,则其左子树的最大层次必为i或i+1。

5.3.3 二叉树的性质

性质1:在二叉树的第 i 层上至多有2^{i-1}个结点(i >= 1)。

性质2:深度为k的二叉树至多有2^{k}-1个结点(k >= 1)。

性质3:对于任何一棵二叉树T,如果其终端结点数为n_{0},度为2的结点数为n_{2},则n_{0} = n_{2} + 1

性质4:具有n个结点的完全二叉树的深度为\left \lfloor log_{2} n \right \rfloor + 1\left \lfloor x \right \rfloor表示不大于x的最大整数)。

性质5:如果对一棵有n个结点的完全二叉树(其深度为\left \lfloor log_{2}n \right \rfloor + 1) 的结点按层序(从第一层到第\left \lfloor log_{2}n \right \rfloor + 1层,每层从左到右),对任一结点有:

1、如果i = 1,则结点i是二叉树的根,无双亲;如果i > 1,则其双亲结点是i/2。

2、如果2i > n,则结点i为叶子结点,无左孩子,否则其左孩子为2i。

3、如果2i+1 > n,则结点无右孩子,否则其右孩子为2i + 1。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值