第一范文网 - 专业文章范例文档资料分享平台

第4课 树和二叉树

来源:用户分享 时间:2025/6/10 5:42:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

参考答案:

方法有二。一是对该算术表达式(二叉树)进行后序遍历,得到表达式的后序遍历序列,再按后缀表达式求值;二是递归求出左子树表达式的值,再递归求出右子树表达式的值,最后按根结点运算符(+、-、*、/ 等)进行最后求值。

2.将算术表达式((a+b)+c*(d+e)+f)*(g+h)转化为二叉树。 参考答案:

*

++ +fgh +*

a+bc

de

3.一棵有n(n>0)个结点的d度树,若用多重链表表示,树中每个结点都有d个链域,则在表示该树的多重链表中有多少个空链域?为什么? 参考答案:

n(n>0)个结点的d度树共有nd个链域,除根结点外,每个结点均有一个指针所指,故该树的空链域有nd-(n-1)=n(d-1)+1个。

4.试证明一棵二叉树中的结点的度或为0或为2,则二叉树的枝数为2(n0-1),其中n0是度为0的结点的个数。 参考答案:

设二叉树度为0和2的结点数及总的结点数分别为n0,n2和n,则n=n0+n2 (1)

再设二叉树的分支数为B,除根结点外,每个结点都有一个分支所指,则n=B+1 (2)

度为零的结点是叶子,没有分支,而度为2的结点有两个分支,因此(2)式可写为n=2*n2+1 (3) 由(1)、(3)得n2=n0-1,代入(1),并由(1)和(2)得B=2*(n0-1)。

5.证明任一结点个数为n的二叉树的高度至少为O(log2n)。 参考答案:

最低高度二叉树的特点是,除最下层结点个数不满外,其余各层的结点数都应达到各层的最大值。设n个结点的二叉树的最低高度是h,则n应满足2h-1

6.有n个结点并且其高度为n的二叉树的数目是多少? 参考答案:2n-1

7.已知完全二叉树的第七层有10个叶子结点,则整个二叉树的结点数最多是多少? 参考答案:235。

8.高度为10的二叉树,其结点最多可能为多少? 参考答案:1023。

9.已知A[1..N]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先? 参考答案:

根据顺序存储的完全二叉树的性质,编号为i的结点的双亲的编号是?i/2?,故A[i]和A[j]的最近公共祖先可如下求出:

while(i/2!=j/2)

if(i>j) i=i/2; else j=j/2;

退出while后,若i/2=0,则最近公共祖先为根结点,否则最近公共祖先是i/2。

10.给定K(K>=1),对一棵含有N个结点的K叉树(N>0)、请讨论其可能的最大高度和最小高度。 参考答案:

N个结点的K叉树,最大高度N(只有一个叶结点的任意k叉树)。设最小高度为H,第i(1<=i<=H)层的结点数Ki-1,则N=1+k+k2+?+ kH-1,由此得H=?logK(N(K-1)+1)?

11.已知一棵满二叉树的结点个数为20到40之间的素数,此二叉树的叶子结点有多少个? 参考答案:

结点个数在20到40的满二叉树且结点数是素数的数是31,其叶子数是16。

12.一棵共有n个结点的树,其中所有分支结点的度均为K,求该树中叶子结点的个数。 参考答案:

设分支结点和叶子结点数分别是为nk和n0,因此有n=n0+nk (1) 另外从树的分枝数B与结点的关系有n=B+1=K*nk +1 (2) 由(1)和(2)有n0=n-nk=(n(K-1)+1)/K。

13.若一棵完全二叉树中叶子结点的个数为n,且最底层结点数≧2,求其深度。 参考答案:?log2n?+1。

14.已知完全二叉树有30个结点,则其中度为0的结点有多少个? 参考答案:15。

15.试证明,在具有n(n>=1)个结点的m次树中,有n(m-1)+1个指针是空的。 参考答案:

n个结点的m次树,共有n*m个指针。除根结点外,其余n-1个结点均有指针所指,故空指针数为n*m-(n-1)=n*(m-1)+1。

16.假设高度为H的二叉树上只有度为0和度为2的结点,问此类二叉树中的结点数可能达到的最大值和最小值各为多少?

参考答案:结点数的最大值2h-1(满二叉树),最小值2h-1(第一层根结点,其余每层均两个结点)。

17.试证明同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如前序abc后序bca中序bac。 参考答案:前序遍历是“根左右”,中序遍历是“左根右”,后序遍历是“左右根”。三种遍历中只是访问“根”结点的时机不同,对左右子树均是按左右顺序来遍历的,因此所有叶子都按相同的相对位置出现。

18.试找出满足下列条件的二叉树:(1)先序序列与后序序列相同;(2)中序序列与后序序列相同;(3)先序序列与中序序列相同;(4)中序序列与层序序列相同。 参考答案:

(1)若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树;(2)若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树;(3)若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树;(4)若中序序列与层次遍历序列相同,则或为空树,

或为任一结点至多只有右子树的二叉树

19.将如下由三棵树组成的森林转换为二叉树。 D G A J H I E B C L M K N O F 参考答案:

P A

B D E G C

H F I KO J L M

P N

O

20.设一棵二叉树的先序遍历序列为A B D F C E G H、中序遍历序列为B F D A G E H C,试:(1)画出这棵二叉树;(2)画出这棵二叉树的后序线索二叉树;(3)将这棵二叉树转换成对应的树(或森林)。 参考答案:

21.设某二叉树的前序遍历序列为ABCDEFGGI,中序遍历序列为BCAEDGHFI,试画出该二叉树。 参考答案:

A

B D

F C E

G I

H

22.一棵非空的二叉树其先序序列和后序序列正好相反,画出这棵二叉树的形状。 参考答案:

先序序列是“根左右”,后序序列是“左右根”,可见对任意结点,若至多只有左孩子或至多只有右孩子,均可使前序序列与后序序列相反。

23.已知一个森林的先序遍历序列为ABCDEFGHIJKLMNO,后序遍历序列为CDEBFHIJGAMLONK,试构造出该森林。 参考答案:

A B C D E F H G I J L MG K N O

24.画出同时满足下列两个条件的两棵不同的二叉树:(1)先序遍历序列为ABCDE;(2)高度为5,而其对应的树/森林的高度最大为4。

参考答案:

A B C D E E

D C A B

25.一棵二叉树的先序遍历序列为_ _ C D E _ G H I _ K、中序遍历序列为C B _ _ F A _ J K I G、后序遍历序列为_ E F D B _ J I H _ A,其中一部分未标出,试画出该二叉树。 参考答案:

A

G B H C D I E F J

K

搜索更多关于: 第4课 树和二叉树 的文档
第4课 树和二叉树.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1vedm7teky38ccg96pbl_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top