【06】树和二叉树概念及性质

1.1树的定义
树(Tree)是n(n>=0)个结点的有限集合。
当n=0时,集合为空集,称为空树;否则称为非空树。
在任意一棵非空树T中:
(1) 有且仅有一个特定的结点,称为根结点。
(2) 当n>1时,除根结点以外的其余结点可分为m(m>0)个互不相交的集合T1,T2…Tm。其中每一个集合本身又是一棵树,并称其为根的子树。

树的定义具有递归性,递归定义描述了树的递归特性,即一棵树是由根及若干棵子树构成的,而子树又可由更小的子树构成。

1.2树的相关术语
1.结点
树中的元素,包含一个数据及若干指向子树的分支。
2. 结点的度
结点的分支数目。
树中的结点数=树中所有结点的度之和+1。
3.叶子节点
度为0的结点,没有后继的结点。
4.根结点
树中唯一没有前驱的结点。
5.分支结点(非终端结点)
度不为0的结点。
6.孩子结点
一个结点的直接后继称为该结点的孩子结点。
7.双亲结点
一个结点的直接前驱称为该结点的双亲结点。
8.兄弟结点
同一双亲的孩子结点
9.祖先结点
从根结点到该结点的路径上的所有结点
10.子孙结点
一个结点的直接后继和间接后继。
11.根结点的层定义为1;根的孩子为第二层结点,以此类推
12.树的高度(深度)
树中最大的结点层次。
13.有序树和无序树
有序树:树中结点的子树从左到右是有次序的,不能交换,这样的树叫有序树。一般讨论有序树。
无序树:树中结点的子树没有顺序,可以任意交换,这样的树叫无序树。
14.森林
m棵树不相交的树的集合

1.2二叉树
1.2.1概念
二叉树是n(n≥0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成。
(1) 二叉树的度不能大于2:每个结点至多只有两棵子树。
(2) 二叉树是有序树。
二叉树的子树通常称为“左子树” 和“右子树” 。左、右子树的顺序不能互换。
1.2.2二叉树的基本形态
【06】树和二叉树概念及性质_第1张图片
1.2.3二叉树的特殊型态
(1) 满二叉树
在一棵二叉树中,如果所有分支都存在左子树和右子树。并且所有叶子结点都在同一层上,这样的二叉树称为满二叉树。
所谓满二叉树:除最后一层外,每一层上的所有结点都有两个子 结点。即,满二叉树中不存在度为1的结点。
【06】树和二叉树概念及性质_第2张图片
(2) 完全二叉树
完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
如果从根结点起,对二叉树的结点自上而下、自左至右用自然数进行连续编号,则深度为m、且有n个结点的二叉树,当且仅当其每一个结点都与深度为m的满二叉树中编号从1到n的结点一一对应时,称之为完全二叉树。
特点:
(1) 满二叉树是完全二叉树,完全二叉树不一定是满二叉树。
(2) 在满二叉树的最下一层上,从最右边开始连续删去若干结点后得到的二叉树仍然是一棵完全二叉树。
(3) 在完全二叉树中,若某个结点没有左孩子,则它一定没有右孩子,即该结点必是叶结点。

1.2.4二叉树的性质
性质1. 在二叉树的第i 层上至多有2i-1个结点(i≥1)
性质2. 深度为h的二叉树至多有2h –1个结点(h ≥1)满二叉树中前k层的结点个数为2k –1
性质3. 对任何一棵二叉树,若它含有n0个叶子结点、n2个度为2的结点,则必存在关系式:n0 = n2+1

1.2.5完全二叉树的性质
性质4. 具有n个结点的完全二叉树的深度为:
向下取整
向下取整
性质5. 若对含n个结点的完全二叉树从上到下且从左至右进行1至n的编号,则对完全二叉树中任意一个编号为i的结点:
若i=1,则该结点是二叉树的根,无双亲;否则,编号为i/2的结点为其双亲结点;
若2i>n,则该结点无左孩子,否则,编号为2i的结点为其左孩子结点;
若2i+1>n,则该结点无右孩子结点,否则,编号为2i+1的结点为其右孩子结点。
(1)完全二叉树最多只有一个结点的度为1,其余结点的度为0或2。度为1的结点只能有左孩子。
(2)叶子结点只可能在层次最大的两层上出现(若删除满二叉树中最底层、最右边的连读2个或以上的叶子结点,则倒数第二层将会出现叶子结点)。
(3)深度为h的完全二叉树至少有2(h-1)个结点。

你可能感兴趣的:(算法与数据结构)