第1章 数据结构与算法(7)

2020-02-21 20:41

③树的最大层次称为树的深度。 ④在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树,叶子结点没有子树。

这棵树的深度为5。

以K和T结点为根所构成的子树分别为:

在计算机中可以用树结构来表示算术表达式。原则,略。树在计算机中通常用多重链表表示。略。

对比树型结构和线性结构的结构特点:

*考点16 二叉树及其性质 重点

1、什么是二叉树 重点

二叉树(binary tree)是一种重要的非线性结构。

二叉树具有以下两个特点:

①非空二叉树只有一个根结点。 ②每个结点最多有两棵子树,且分别称为该结点的左子树与右子树。

由以上特点可以看出,在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树,但树结构中的每一个结点的度可以是任意的。

在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。

当一个结点既没有左子树也没有右子树时,该结点即是叶子结点。

图1是一棵只有根结点的二叉树,图2是一棵深度为4的二

叉树。

2、二叉树的基本性质 重点

性质1 在二叉树的第k层上,最多有2k-1(k≥1)个结点。 根据二叉树的特点,这个性质是显然的。

性质2 深度为m的二叉树最多有2m-1个结点。

深度为m的二叉树是指二叉树共有m层。 根据性质1,只要将第1层到第m层上的最大的结点数相加,就可以得到整个二叉树中结点数的最大值,即:

21-1+22-1+23-2+…+2m-1=2m-1

性质3 在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多1个。

解释:不讲了。

假设二叉树中有n0个叶子结点,n1个度为1的结点,n2个度为2的结点,则二叉树中总的结点数n为:

n= n0+n1+n2 (1)

由于在二叉树中除了根结点外,其余每一个结点都有惟一的一个分支进入。设二叉树中所有进入分支的总数为m,则二叉树中总的结点数为:

n= m+1 (2)

又由于二叉树中这m个进入分支是分别由非叶子结点射出的。其中度为1的每个结点射出1个分支,度为2的每个结点射

出2个分支。因此,二叉树中所有度为1与度为2的结点射出的分支总数为n1+2n2。而在二叉树中,总的射出分支数应与总的进入分支数相等,即:

m= n1+2n2 (3)

将(3)代入(2)式有:

n= n1+2n2 +1 (4)

最后比较(1)式和(4)式有:

n0+n1+n2= n1+2n2 +1

化简后得:n0 =n2 +1

例:图2所示的二叉树中,3个叶子结点,有2个度为2的结点,度为0的叶子结点比度为2的结点多一个。

性质4 具有n个结点的二叉树,其深度至少为?log2n? +1,其中?log2n?表示取log2n的整数部分。

这个性质可以由性质2直接得到。不讲了。 解释:2m-1=n,则m= log2(n+1)≥?log2n?+1

3、满二叉树与完全二叉树 重点

满二叉树与完全二叉树是两种特殊形态的二叉树. (1)满二叉树

除了最后一层外,每一层上的所有结点都有两个子结点的二叉树称为满二叉树。

也就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。

图3、图4和图5分别是深度为2、3、4的满二叉树。

结点数为3

结点数为7

结点数为15

(2)完全二叉树

除最后一层外,每一层上的结点数都达到最大值;在最后一层上只缺少右边的若干结点。这样的二叉树称为完全二叉树。

更确切地说,如果从根结点起,对二叉树的结点自上而下、自左至右用自然数进行连续编号,则深度为m、且有n个结点的二叉树,当且仅当其每一个结点都与深度为m的满二叉树中编号从1到n的结点一一对应时,称之为完全二叉树。

满二叉树是完全二叉树,但完全二叉树一般不是满二叉树。 图6、图7分别是深度为3、4的完全二叉树。


第1章 数据结构与算法(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:如何用WinPE系统安装Win7系统

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: