习题6 树和二叉树
中国农业大学_821数据结构_《数据结构》习题(6)

第6章 二叉树与树一、回答题1. 图6-1所示的树的叶子结点、非中端结点、每个结点的度及树的深度各是多少?图6-1 树2. 已知一棵树边的集合表示为:{ ( L, N ), ( G, K ), ( G, L ), ( G, M ), ( B, E ), ( B, F ), ( D, G ), ( D, H ), ( D, I ), ( D, J ), ( A, B ), ( A, C ), ( A, D ) },画出这棵树,并回答以下问题:(1) 树的根结点是哪个?哪些是叶子结点?哪些是非终端结点? (2) 树的度是多少?各个结点的度是多少? (3) 树的深度是多少?各个结点的层数是多少?(4) 对于结点G ,它的双亲结点、祖先结点、孩子结点、子孙结点、兄弟和堂兄弟分别是哪些结点?3. 如果一棵度为m 的树中,度为1的结点数为n 1,度为2的结点数为n 2,……,度为m 的结点数为n m ,那么该树中含有多少个叶子结点?有多少个非终端结点?ABECDFGHJI4. 任意一棵有n 个结点的二叉树,已知有m 个叶子结点,能否证明度为2结点有m-1个?5. 已知在一棵含有n 个结点的树中,只有度为k 的分支结点和度为0的叶子结点,那么该树含有的叶子结点的数目是多少?6. 一棵含有n 个结点的k 叉树,可能达到的最大深度和最小深度各为多少?7. 对于3个结点A 、B 、C ,可以过程多少种不同形态的二叉树?8. 深度为5的二叉树至多有多少个结点?9. 任何一棵二叉树的叶子结点在先序、中序和后序遍历中的相对次序是发生改变?不发生改变?不能确定?10. 设n 、m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是什么? 11. 已知某二叉树的后续遍历序列是dabec ,中序遍历序列是debac ,那么它的前序遍历序列是什么?12. 对一棵满二叉树,m 个树叶,n 个结点,深度为h ,则n 、m 和h 之间的关系是什么? 13. 对图6-2(a)和(b)所示的二叉树,它们的经过先序、中序和后序遍历后得到的结点序列分别是什么?画出它们的先序线索二叉树和后序线索二叉树。
数据结构树和二叉树习题

第六章 树和二叉树一、选择题1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为( )A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE【北京航空航天大学 1999 一、3 (2分)】2.算术表达式a+b*(c+d/e )转为后缀表达式后为( B )【中山大学 1999 一、5】A .ab+cde/*B .abcde/+*+C .abcde/*++D .3. 设有一表示算术表达式的二叉树(见下图),它所表示的算术表达式是( C )【南京理工大学1999 一、20(2分)】A. A*B+C/(D*E)+(F-G)B. (A*B+C)/(D*E)+(F-G)C. (A*B+C)/(D*E+(F-G ))D. A*B+C/D*E+F-G 4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T 中的叶子数为( ) A .5 B .6 C .7 D .8【南京理工大学 2000 一、8 (1.5分)】5. 在下述结论中,正确的是( D )【南京理工大学 1999 一、4 (1分)】①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A .①②③B .②③④C .②④D .①④6. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( A )A .m-nB .m-n-1C .n+1D .条件不足,无法确定 【南京理工大学2000 一、17(1.5分)】7. 树是结点的有限集合,它( (1))根结点,记为T 。
其余结点分成为m (m>0)个((2))的集合T1,T2, …,Tm ,每个集合又都是树,此时结点T 称为Ti 的父结点,Ti 称为T 的子结点(1≤i ≤m )。
数据结构:树和二叉树

C 唯一性不确定。
D 唯一性与原因的边的权数有关。
14、将递归算法转换成对应的非递归算法时,通常需要使用__________。 A栈 B 队列 C 链表 D树 15 、设二维数组 A[m][n], 每个数组元素占用 K 个存储单元 , 第一个数组元素的存储地址是 Loc(a[0][0]),求按行优先顺序存放的数组元素 a[i][j](0<=i<=m-1,0<=j<=n-1)的存储地址为______。 A,Loc(a[0][0]+[(i-1)*n+j-1]*k B,Loc(a[0][0])+[i*n+j]*k C,Loc(a[0][0])+[j*m+i]*k D,Loc(a[0][0])+[(j-1)*m+i-1]*k 16 、设二维数组 A[m][n], 每个数组元素占用 k 个存储单元 , 第一个数组元素的存储地址是 Loc(a[0][0]),求按列优先顺序存放的数组元素 a[i][j](0<=i<=m-1,0<=j<=n-1)的存储地址为______。 A,Loc(a[0][0])+[(i-1)*n+j-1]*k B,Loc(a[0][0])+[i*n+j]*k C,Loc(a[0][0])+[j*m+i]*k D,Loc(a[0][0])+[(j-1)*m+i-1]*k 17 、设二维数组 A[6][10], 每个数组元素占用 4 个存储单元 , 若按行优先顺序存放的数组元 素,a[0][0]的存储地址为 860,则 a[3][5]的存储地址是______。 A,1000 B,860 C,1140 D,1200 18、设二维数组 A[6][10],每个数组元素占用 4 个存储单元,若按行优先顺序存放的数组元素 a[3][5]的存储地址为 1000,则 a[0][0]的存储地址是______。 A,872 B,860 C,868 D,864 19、若将 n 阶上三角矩阵 A 按列优先顺序压缩存放在一维数组 B[1..n(n+1)/2]中,第一个非零 元素 a1,1 存于 B[0]中,则应存放到 B[k]中的非零元素 ai,j(1<=i<=n,1<=j<=i)的下标 i、j 与 k 的对 应关系是______。 A,i(i+1)/2+j B,i(i-1)/2+j-1 C,j(j+1)/2+i D,j(j-1)/2+i-1 20、若将 n 阶下三角矩阵 A 按列优先顺序压缩存放在一维数组 B[1..n(n+1)/2]中,第一个非零 元素 a1,1 存于 B[0]中,则应存放到 B[k]中的非零元素 ai,j(1<=i<=n,1<=j<=i)的下标 i、j 与 k 的对 应关系是______。 A,j(2n-j+1)/2+i-j B,(j-1)(2n-j+1)/2+i-j C,i(2n-i+1)/2+j-i D,i(2n-i+2)/2 A 便于进行矩阵运算 B 便于输入和输出 C 节省存储空间 度 22、稀疏矩阵压缩后,必会失去______功能。 A 顺序存储 B 随机存取 C 输入输出 D 以上都不对
二叉树习题及答案(考试学习)

1.设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数?1根据“二叉树的第i层至多有2^(i − 1)个结点;深度为k的二叉树至多有2^k − 1个结点(根结点的深度为1)”这个性质:因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度是10,前9层是一个满二叉树,这样的话,前九层的结点就有2^9-1=511个;而第九层的结点数是2^(9-1)=256 所以第十层的叶子结点数是699-511=188个;现在来算第九层的叶子结点个数。
由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。
因为第十层有188个,所以应该去掉第九层中的188/2=94个;所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。
比如图:完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B!如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。
3完全二叉树中,只存在度为2的结点和度为0的结点,而二叉树的性质中有一条是:n0=n2+1;n0指度为0的结点,即叶子结点,n2指度为2的结点,所以2n2+1=699 n2=349;n0=3502.在一棵二叉树上第5层的结点数最多是多少一棵二叉树,如果每个结点都是是满的,那么会满足2^(k-1)1。
所以第5层至多有2^(5-1)=16个结点!3.在深度为5的满二叉树中,叶子结点的个数为答案是16 ~ 叶子结点就是没有后件的结点~ 说白了~ 就是二叉树的最后一层~ 深度为K的二叉树~ 最多有2^k-1个结点~ 最多有2^(k-1)个结点~ 所以此题~ 最多有2^5-1=31个结点~ 最多有2^(5-1)=16个叶子结点~4.某二叉树中度为2的结点有18个,则该二叉树中有几个叶子结点?结点的度是指树中每个结点具有的子树个数或者说是后继结点数。
数据结构练习题--树(题)

第六章树一.名词解释:1 树 2。
结点的度 3。
叶子 4。
分支点 5。
树的度6.父结点、子结点 7兄弟 8结点的层数 9树的高度 10 二叉树11 空二叉树 12 左孩子、右孩子 13孩子数 14 满二叉树 15完全二叉树16 先根遍历 17 中根遍历 18后根遍历 19二叉树的遍历 20 判定树21 哈夫曼树二、填空题1、树(及一切树形结构)是一种“________”结构。
在树上,________结点没有直接前趋。
对树上任一结点X来说,X是它的任一子树的根结点惟一的________。
2、一棵树上的任何结点(不包括根本身)称为根的________。
若B是A的子孙,则称A是B的________3、一般的,二叉树有______二叉树、______的二叉树、只有______的二叉树、只有______ 的二叉树、同时有______的二叉树五种基本形态。
4、二叉树第i(i>=1)层上至多有______个结点。
5、深度为k(k>=1)的二叉树至多有______个结点。
6、对任何二叉树,若度为2的节点数为n2,则叶子数n0=______。
7、满二叉树上各层的节点数已达到了二叉树可以容纳的______。
满二叉树也是______二叉树,但反之不然。
8、具有n个结点的完全二叉树的深度为______。
9、如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X有:(1)若i=1,则结点X是______;若i〉1,则X的双亲PARENT(X)的编号为______。
(2)若2i>n,则结点X无______且无______;否则,X的左孩子LCHILD(X)的编号为______。
(3)若2i+1>n,则结点X无______;否则,X的右孩子RCHILD(X)的编号为______。
10.二叉树通常有______存储结构和______存储结构两类存储结构。
11.每个二叉链表的访问只能从______结点的指针,该指针具有标识二叉链表的作用。
二叉树练习题及答案

一、选择题1.关于二叉树的下列说法正确的是(B )A.二叉树的度为2 B.二叉树的度可以小于2C.每一个结点的度都为2 D .至少有一个结点的度为2 2.在树中,若结点A有4个兄弟,而且B是A的双亲,则B的度为(C )A.3 B.4C.5 D .63.若一棵完全二叉树中某结点无左孩子,则该结点一定是(D )A.度为1的结点B.度为2的结点C.分支结点 D .叶子结点4.深度为k的完全二叉树至多有(C )个结点,至少有( B )个结点。
A.2k-1-1 B.2k-1C.2k-1 D .2k5.在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为( C 2i ),右孩子结点的层次编号为( D 2i+1),双亲结点的层次编号为(60/2=30 A )。
A.30 B.60C.120 D .1216.一棵具有124个叶子结点的完全二叉树,最多有(B )个结点。
A.247 B.248C.249 D .250二、填空题1.树中任意结点允许有零个或多个孩子结点,除根结点外,其余结点有且仅有一个双亲结点。
2.若一棵树的广义表表示法为A(B(E,F),C(G(H,I,J,K),L),D(M (N))),则该树的度为 4 ,树的深度为 4 ,树中叶子结点的个数为8 。
3.若树T中度为1、2、3、4的结点个数分别为4、3、2、2,则T中叶子结点的个数为14 。
n=n0+n1+n2+n3+n4=n0+4+3+2+2=n0+11n=1+孩子=1+4+6+6+8+25n0+11=25n0=144.一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是n-2m+1 。
5.深度为k(k>0)的二叉树至多有2k -1 个结点,第i层上至多有2i-1个结点。
6.已知二叉树有52个叶子结点,度为1的结点个数为30,则总结点个数为133 。
7.已知二叉树中有30个叶子结点,则二叉树的总结点个数至少是30+29+0=59 。
数据结构教程李春葆课后答案第7章树和二叉树

教材中练习题及参考答案
1. 有一棵树的括号表示为 A(B,C(E,F(G)),D),回答下面的问题: (1)指出树的根结点。 (2)指出棵树的所有叶子结点。 (3)结点 C 的度是多少? (4)这棵树的度为多少? (5)这棵树的高度是多少? (6)结点 C 的孩子结点是哪些? (7)结点 C 的双亲结点是谁? 答:该树对应的树形表示如图 7.2 所示。 (1)这棵树的根结点是 A。 (2)这棵树的叶子结点是 B、E、G、D。 (3)结点 C 的度是 2。 (4)这棵树的度为 3。 (5)这棵树的高度是 4。 (6)结点 C 的孩子结点是 E、F。 (7)结点 C 的双亲结点是 A。
12. 假设二叉树中每个结点值为单个字符,采用二叉链存储结构存储。设计一个算法 计算一棵给定二叉树 b 中的所有单分支结点个数。 解:计算一棵二叉树的所有单分支结点个数的递归模型 f(b)如下:
f(b)=0 若 b=NULL
6 f(b)=f(b->lchild)+f(b->rchild)+1 f(b)=f(b->lchild)+f(b->rchild)
表7.1 二叉树bt的一种存储结构 1 lchild data rchild 0 j 0 2 0 h 0 3 2 f 0 4 3 d 9 5 7 b 4 6 5 a 0 7 8 c 0 8 0 e 0 9 10 g 0 10 1 i 0
答:(1)二叉树bt的树形表示如图7.3所示。
a b c e h j f i d g e h j c f i b d g a
对应的算法如下:
void FindMinNode(BTNode *b,char &min) { if (b->data<min) min=b->data; FindMinNode(b->lchild,min); //在左子树中找最小结点值 FindMinNode(b->rchild,min); //在右子树中找最小结点值 } void MinNode(BTNode *b) //输出最小结点值 { if (b!=NULL) { char min=b->data; FindMinNode(b,min); printf("Min=%c\n",min); } }
二叉树习题及答案

1. 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数?1根据“二叉树的第i 层至多有2^(i − 1)个结点;个结点;深度为k 的二叉树至多有2^k − 1个结点(根结点的深度为1)”这个性质:这个性质:因为2^9-1 < 699 < 2^10-1 ,所以这个完全二叉树的深度是10,前9层是一个满二叉树,二叉树,这样的话,这样的话,前九层的结点就有前九层的结点就有2^9-1=511个;个;而第九层的结点数是而第九层的结点数是2^(9-1)=256 所以第十层的叶子结点数是699-511=188个;个;现在来算第九层的叶子结点个数。
现在来算第九层的叶子结点个数。
由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。
因为第十层有188个,所以应该去掉第九层中的188/2=94个;个; 所以,第九层的叶子结点个数是256-94=162256-94=162,加上第十层有,加上第十层有188个,最后结果是350个2完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点下面一层的结点(叶结点)(叶结点)(叶结点)都依次排列在该层最左边的位置上,都依次排列在该层最左边的位置上,都依次排列在该层最左边的位置上,这样的二叉树为这样的二叉树为完全二叉树。
完全二叉树。
比如图:比如图:完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B !如果完全二叉树的叶结点都排满了,如果完全二叉树的叶结点都排满了,则是满二叉树,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:比如图:此题的其实是一棵满二叉树,我们根据以上性质,699+1=700699+1=700,,700/2=350700/2=350,即,即叶结点数为350350,叶结点层以上所有结点数为,叶结点层以上所有结点数为350-1=349350-1=349。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a
习题6 树和二叉树
说明:
本文档中,凡红色字标出的题请提交纸质作业,只写题号和答案即可。
6.1 单项选择题
1.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法__B__。
A. 正确 B. 错误
2. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为
B个。 A.15 B.16 C.17 D.47
3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有__C__种。
A. 3 B. 4 C. 5 D. 6
4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有__C__种。
A. 5 B. 6 C. 30 D. 32
5. 深度为5的二叉树至多有__C__个结点。
A. 16 B. 32 C. 31 D. 10
6. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点
数至少为_B ___。
A. 2h B. 2h-1 C. 2h+1 D. h+1
7. 对一个满二叉树,m个树叶,n个结点,深度为h,则__A__ 。
A. n=h+m B. h+m=2n C. m=h-1 D. n=2 h-1
8. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序__A__。
A.不发生改变 B.发生改变 C.不能确定 D.以上都不对
9. 如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后
序为__C__。 A. uwvts B. vwuts C. wuvts D. wutsv
10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法__A__。
A. 正确 B. 错误
11. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是
dgbaechf,则其后序遍历的结点访问顺序是__D__。
A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca
12. 在一非空二叉树的中序遍历序列中,根结点的右边__A__。
A. 只有右子树上的所有结点 B. 只有右子树上的部分结点
C. 只有左子树上的部分结点 D. 只有左子树上的所有结点
13.如图6.1所示二叉树的中序遍历序列是__B__。
A. abcdgef B. dfebagc C. dbaefcg D. defbagc
图
6.1
14. 一棵二叉树如图6.2所示,其中序遍历的序列为__B__。
A. abdgcefh B. dgbaechf C. gdbehfca D. abcdefgh
15.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是B。
g
c
e
f
d
b
a
a
g
e
d
b
c
h
f
图6.2
图6.5 一棵树
A.a在b的右方 B.a在b的左方
C.a是b的祖先 D.a是b的子孙
16. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列
是__D__。A. acbed B. decab C. deabc D. cedba
17.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用
__C__存储结构。
A. 二叉链表 B. 广义表存储结构 C. 三叉链表 D. 顺序存储结构
18. 如图6.3所示的4棵二叉树,__C__不是完全二叉树。
24. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序
遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。
结论__A__是正确的。
A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同
B.树的后根遍历序列与其对应的二叉树的后序遍历序列相同
C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同
D.以上都不对
25. 树最适合用来表示__C__。
A. 有序数据元素 B. 无序数据元素
C. 元素之间具有分支层次关系的数据 D. 元素之间无联系的数据
6.2 填空题(将正确的答案填在相应的空中)
1. 有一棵树如图6.5所示,回答下面的问题:
⑴这棵树的根结点是__k0__;
⑵这棵树的叶子结点是____;
⑶结点k3的度是__2__;
⑷这棵树的度是__3__;
⑸这棵树的深度是__4__;
⑹结点k3的子女是__k5,k6__;
⑺结点k3的父结点是__k1__;
2. 指出树和二叉树的三个主要差别:
①树的结点个数至少为1,而二叉树的结点个数可以为0
②树中结点的最大度数没有限制,而二叉树结点的最大度数为2
③树的结点无左、右之分,而二叉树的结点有左、右之分
3. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是
__树可采用二叉树的存储结构并利用二叉树的已有算法解决树的有关问题_。
4. 一棵二叉树的结点数据采用顺序存储结构,存储于数组t中,如图6.6所示,则该二
(A) (B) (C) (D)
图6.3
k
k
k
k
k
k
k
2
1
4
3
5
6
7
叉树的链接表示形式为__ __。
5. 深度为k的完全二叉树至少有__2k-1__个结点。至多有__2k-1__个结点,若按自上而
下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是_1k-2+1___。
6. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为 n 2,则有
n0=__n2+1__。
7. 一棵二叉树的第i(i≥1)层最多有__2i-1__个结点;一棵有n(n>0)个结点的满二
叉树共有__(n+1)/2__个叶子和__(n-1)/2__个非终端结点。
8. 结点最少的树为__只有一个结点的树__,结点最少的二叉树为__空的二叉树__。
9. 现有按中序遍历二叉树的结果为abc,问有__5__种不同形态的二叉树可以得到这一
遍历结果,这些二叉树分别是____。
10. 由如图6.7所示的二叉树,回答以下问题:
⑴其中序遍历序列为__dgbaechif__;
⑵其前序遍历序列为__abdgcefhi__;
⑶其后序遍历序列为__gdbeihfca__;
6.3 简答题
1. 根据二叉树的定义,具有三个结点的二叉树有5种不同的形态,请将它们分别画出。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
e
a
f d g c j l h b
图6.6 一棵二叉树的顺序存储数组t
a
e
d
b
c
h
f
图6.7 一棵二叉树
i
g c e f
d b
a
图6.8一棵树
2. 假设一棵 二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。
请画出该树。
3. 由如图6.7所示的二叉树,请画出该二叉树对应的森林。
4. 已知一棵树如图6.8所示,转化为一棵二叉树,表示为____。
5. 以数据集{4,5,6,7,10,12,18}为结点权值,画出构造Huffman树的每一步图
示,计算其带权路径长度为。
6. 一棵含有N个结点的k叉树,可能达到的最大深度和最小深度各为多少?
最大深度:h=N-k+1,最小深度:logkN+1
7. 证明:一棵满k叉树上的叶子结点数n0和非叶子结点数n1之间满足以下关系:
n0=(k-1)n1+1
6.4 算法设计题
1. 编写按层次顺序(同一层自左至右)遍历二叉树的算法。
2.试编写算法,对一棵二叉树,统计叶子的个数。
3.试编写算法,对一棵二叉树根结点不变,将左、右子树进行交换,树中每个结点的
左、右子树进行交换。
7. 假设用于通讯的电文仅有八个字母(a,b,c,d,e,f,g,h)组成,字母在电文中出现的频
率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。试为这八个字母设计哈夫
曼编码。
使用0-7的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。
8. 试编写算法,对一棵以孩子-兄弟链表表示的树统计叶子的个数。假设一棵二叉树的
先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。请画出该树。