数据结构学习笔记11--树与二叉树

1.树的定义:

  树是n个结点的有限集。在任意一颗非空树中应满足:

  (1)有且仅有一个特定的称为根(Root)的结点;

  (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树。

     每棵子树的根节点有且仅有一个直接前驱,但可以有0个或多个直接后继。

 由此可以看到,树的定义是一个递归的定义,即树的定义中又用到了树的定义。

下图中给出了常见的树的例子:

数据结构学习笔记11--树与二叉树_第1张图片

树的相关概念(重要性质):

(1).结点的度:每个结点度指的是这个结点的子女数,即结点所拥有的子树的个数。

(2).所有结点的度数+1=结点总数

2.二叉树

(1)二叉树的定义:

二叉树是一种应用广泛的树形结构,它的特点是每个结点最多只能有两个孩子。在二叉树中,必须严格区分左右孩子,次序不能颠倒,若改变次序则变成

二叉树的特点:

(a).非空二叉树上叶子结点数等于双分支结点数+1。(证明方法可用上文中树的性质:所有结点的度数+1=结点总数。设二叉树中的叶子结点数、单分支结点数、双分支结点数分别为N0,N1,N2,则N0+N1+N2=N0X0+N1X1+N2X2+1,即N0=N2+1)

(b).非空二叉树上第i层上至多有2^(i-1)个结点。

(3).高度为h的二叉树至多有2^i -1个结点。

(2)满二叉树

满二叉树的定义:一棵高度为h,并且有2^h-1个结点的二叉树称为满二叉树。

因此,在满二叉树中,每一层结点都达到了最大个数。除最底层结点的度为0之外,其他各层结点的度都为2.

数据结构学习笔记11--树与二叉树_第2张图片

(3)完全二叉树

完全二叉树的定义:设一个深度为h的二叉树,每层结点的数目如果满足:

a)第i层( 1<=i<=(h-1) )上的结点个数均为2^(i-1)

b)第h层从右边起连续缺若干个结点

这样的二叉树称为完全二叉树,其特点是:

a)叶节点仅在层次最大的两层出现

b)对任一结点,若其右子树的高度为l,则其左子树的高度只能是l或l+1.

数据结构学习笔记11--树与二叉树_第3张图片


你可能感兴趣的:(数据结构及算法分析,数据结构,二叉树,树,满二叉树,完全二叉树)