二叉树基础知识点

一、结点

    概念:节点是数据结构中的基础,是构成复杂数据结构的基本组成单位。

二、树

    定义:树(Tree)是n(n>=0)个节点的有限集。n=0时称为空树。在任意一颗非空树中:
    ①有且仅有一个特定的称为根(Root)的结点;
    ②当n>1时,其余结点可分为m(m>0)个互不相交的有限集 T1、T2、...、Tn,其中每一个集合本身又是一颗树,并且称为根的子树。
 
    此外,树的定义还需要强调以下两点:
    ①n>0时根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一个根结点。
    ②m>0时,子树的个数没有限制,但它们一定是互不相交的。
    示例树:
 
    由树的定义可以看出,树的定义使用了递归的方式。 递归在树的学习过程中起到了重要作用
 

2.1 结点的度

    结点拥有的子树数目称为结点的度。
    图2.2中标注了图2.1所示树各个结点的度。
 

2.2 结点关系

  结点子树的根结点为该结点的孩子结点。相应该结点称为孩子结点的双亲结点。
    
  同一个双亲结点的孩子结点之间称为兄弟结点。
 

2.3 结点层次

  从根开始定义起,跟为第一层,根的孩子为第二层,以此类推。
 

2.4 树的深度

  树中结点的最大层次数称为树的深度或者高度。图2.1所示树的深度为4.
 
 

三、二叉树

  定义:二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交、分别成为根节点的左子树和右子树组成。
 
  图展示了一棵普通二叉树。
 

3.1二叉树特点

  ①每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。
  ②左子树和右子树是有顺序的,次序不能任意颠倒。
  ③即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。
 

3.2二叉树性质

  ①在二叉树的第i层上最多有2i-1 个结点。(i>=1)
  ②二叉树中如果深度为k,那么最多有 2k-1个结点。(k>=1)
  ③ n0=n2+1 n0,度数为0的结点数的数目等于度数为2的结点数加度数为1的结点数。
  ④在完全二叉树中,具有n个结点的完全二叉树的深度为[log2n]+1,其中[log2n]是向下取整。
  ⑤若对含n个结点的完全二叉树从上到下且从左至右进行1至n的编号,则对完全二叉树中任意一个编号为i的结点有如下特性:
      a.若i=1,则该结点事二叉树的根,无双亲,否则,编号为[i/2]的结点为其双亲结点;
      b.若2i>n,则该结点无左孩子,否则,编号为2i的结点为其左孩子结点
      c. 若 2i+1>n,则该结点无右孩子结点, 否则,编号为2i+1 的结点为其右孩子结点。
 

3.3斜树

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

3.4 满二叉树

  在一棵二叉树中。如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树成为满二叉树。
 
  特点:
    ①叶子只能出现在最下一层,出现在其他层就不能达成平衡。
    ②非叶子结点的度一定是2。
    ③在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多。
 
 

3.5完全二叉树

  对一棵具有n个结点的二叉树按层编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。
 
  特点:
    ①叶子结点只能出现在最下层和次下层。
    ②最下层的叶子结点集中在树的左部。
    ③倒数第二层若存在叶子结点,一定在右部连续位置。
    ④如果结点度为1,则该结点只有左子树,即没有右子树。
    ⑤同样结点数目的二叉树,完全二叉树深度最小。
 
    ps:满二叉树一定是完全二叉树,但反过来不一定成立。
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/BlackFungus/p/11790012.html
今日推荐