当前位置:文档之家› 第6章 树和二叉树 练习题

第6章 树和二叉树 练习题

第6章 树和二叉树 练习题
第6章 树和二叉树 练习题

习题6 树和二叉树

6.1 单项选择题

1. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法____。

A. 正确

B. 错误

2. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为个。A.15 B.16 C.17 D.47

3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有____种。

A. 3

B. 4

C. 5

D. 6

4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有____种。

A. 5

B. 6

C. 30

D. 32

5. 深度为5的二叉树至多有____个结点。

A. 16

B. 32

C. 31

D. 10

6. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_ ___。

A. 2h

B. 2h-1

C. 2h+1

D. h+1

7. 对一个满二叉树,m个树叶,n个结点,深度为h,则____ 。

A. n=h+m

B. h+m=2n

C. m=h-1

D. n=2 h-1

8. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序____。

A.不发生改变

B.发生改变

C.不能确定

D.以上都不对

9. 如果某二叉树的前序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为____。 A. uwvts B. vwuts C. wuvts D. wutsv

10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法____。 A. 正确 B. 错误

11. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是____。

A. bdgcefha

B. gdbecfha

C. bdgaechf

D. gdbehfca

12. 在一非空二叉树的中序遍历序列中,根结点的右边____。

A. 只有右子树上的所有结点

B. 只有右子树上的部分结点

C. 只有左子树上的部分结点

D. 只有左子树上的所有结点

13. 如图6.1所示二叉树的中序遍历序列是____。

A. abcdgef

B. dfebagc

C. dbaefcg

D. defbagc

图6.1

14. 一棵二叉树如图6.2所示,其中序遍历的序列为__ __。

A. abdgcefh

B. dgbaechf

C. gdbehfca

D. abcdefgh

15.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是。

A.a在b的右方B.a在b的左方

C.a是b的祖先D.a是b的子孙

16. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____。 A. acbed B. decab C. deabc D. cedba

17.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用____存储结构。

A. 二叉链表

B. 广义表存储结构

C. 三叉链表

D. 顺序存储结构

18. 如图6.3所示的4棵二叉树,____不是完全二叉树。

19. 在线索化二叉树中,t所指结点没有左子树的充要条件是____。

A. t—>left=NULL

B. t—>ltag=1

C. t—>ltag=1且t—>left=NULL

D. 以上都不对

20. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法____。 A. 正确 B. 错误

21. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。结论____是正确的。

A.树的先根遍历序列与其对应的二叉树的先序遍历序列相同

B.树的后根遍历序列与其对应的二叉树的后序遍历序列相同

C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同

D.以上都不对

22. 树最适合用来表示____。

6.2

(A) (B) (C) (D)

图6.3

图6.7 一棵二叉树

A. 有序数据元素

B. 无序数据元素

C. 元素之间具有分支层次关系的数据

D. 元素之间无联系的数据

6.2 填空题(将正确的答案填在相应的空中)

1. 有一棵树如图6.5所示,回答下面的问题:

⑴ 这棵树的根结点是____; ⑵ 这棵树的叶子结点是____;

⑶ 结点k3的度是____; ⑷ 这棵树的度是____;

⑸ 这棵树的深度是____;

⑹ 结点k3的子女是____; ⑺ 结点k3的父结点是____;

2. 指出树和二叉树的三个主要差别____、____、____。

3. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是___ _。

4. 一棵二叉树的结点数据采用顺序存储结构,存储于数组t 中,如图6.6所示,则该二叉树的链接表示形式为__ __。

5. 深度为k 的完全二叉树至少有____个结点。至多有____个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是____。

6. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为 n 2,则有n 0=____。

7. 一棵二叉树的第i (i ≥1)层最多有____个结点;一棵有n (n>0)个结点的满二叉树共有____个叶子和____个非终端结点。

8. 结点最少的树为____,结点最少的二叉树为____。

9. 现有按中序遍历二叉树的结果为abc ,问有____种不同形态的二叉树可以得到这一遍历结果,这些二叉树分别是____。

10. 由如图6.7⑴ 其中序遍历序列为____; ⑵ 其前序遍历序列为____;

⑶ 其后序遍历序列为____;

图6.6 一棵二叉树的顺序存储数组t

习题答案

6.1 1. B 2. B 3. C 4. C 5. C 6. A

7. D

8. A

9. C 10. A

11. D 2. A 13. B 14. B 15. B 16. D 17. C 18. C

19. B 20. B 21. A 22. C

6.2

1. ⑴ k1 ⑵ k2,k5,k7,k4 ⑶ 2 ⑷ 3 ⑸ 4 ⑹ k5,k6 ⑺ k1

2. 树的结点个数至少为1(不同教材规定不同),而二叉树的结点个数可以为0;

树中结点的最大度数没有限制,而二叉树结

点的最大度数为2; 树的结点无左、右之分,而二叉树的结点有

左、右之分;

3. 树可采用孩子-兄弟链表(二叉链表)做存储

结构,目的并利用二叉树的已有算法解决树的有关

问题。

4. 如图6.9所示

5. 2 k-1 、 2 k -1 、 2 k-2+1

6. n 2+1

7. 2 i-1 2[log 2n+1]-1 2[log 2n+1] –1

8. 只有一个结点的树;空的二叉树

9. 5;如图6.10所示

10. dgbaechif 、

图6.9

数据结构-6 树和二叉树

第六章树和二叉树 一.选择题 1. 以下说法错误的是。 A.树形结构的特点是一个结点可以有多个直接前趋 B.线性结构中的一个结点至多只有一个直接后继 C.树形结构可以表达(组织)更复杂的数据 D.树(及一切树形结构)是一种"分支层次"结构 2. 如图6-2所示的4 棵二叉树中,不是完全二叉树。 图6-2 4 棵二叉树 3. 在线索化二叉树中,t 所指结点没有左子树的充要条件是。 A. t->left == NULL B. t->ltag==1 C. t->ltag==1 且t->left==NULL D .以上都不对 4. 以下说法错误的是。 A.二叉树可以是空集 B.二叉树的任一结点最多有两棵子树 C.二叉树不是一种树 D.二叉树中任一结点的两棵子树有次序之分 5. 以下说法错误的是。 A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达 B.在三叉链表上,二叉树的求双亲运算很容易实现 C.在二叉链表上,求根,求左、右孩子等很容易实现 D.在二叉链表上,求双亲运算的时间性能很好 6. 如图6-3所示的4 棵二叉树,是平衡二叉树。

图6-3 4 棵二叉树 7. 如图6-4所示二叉树的中序遍历序列是。 A. abcdgef B. dfebagc C. dbaefcg D. defbagc 图6-4 1 棵二叉树 8. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是。 A. acbed B. decab C. deabc D. cedba 9. 如果T2 是由有序树T 转换而来的二叉树,那么T 中结点的前序就是T2 中结点的。 A. 前序 B.中序 C. 后序 D. 层次序 10. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是。 A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca 11. 将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双亲结点编号为。 A.42 B.40 C.21 D.20 12. 一棵二叉树如图6-5所示,其后序遍历的序列为。 A. abdgcefh B. dgbaechf C. gdbehfca D. abcdefgh

第6章树和二叉树习题

第六章 树和二叉树 一、选择题 1.算术表达式a+b*(c+d/e )转为后缀表达式后为( B ) A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .2. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( C ) 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 3. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1 ,1 则T 中的叶子数为( D ) A .5 B .6 C .7 D .8 4. 在下述结论中,正确的是( D ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意 交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A .①②③ B .②③④ C .②④ D .①④ 5. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( A ) A .m-n B .m-n-1 C .n+1 D .条件不足,无法确定 6.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B ) A .9 B .11 C .15 D .不确定 7.设森林F 中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F 对应的二叉树根结点的右子树上的结点个数是( D )。 A .M1 B .M1+M2 C .M3 D .M2+M3 8.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E ) A . 250 B . 500 C .254 D .505 E .以上答案都不对 9. 有关二叉树下列说法正确的是( B ) A .二叉树的度为2 B .一棵二叉树的度可以小于2 C .二叉树中至少有一个结点的度为2 D .二叉树中任何一个结点的度都为2 10.二叉树的第I 层上最多含有结点数为( C ) A .2I B . 2I-1-1 C . 2I-1 D .2I -1 11. 一个具有1025个结点的二叉树的高h 为( C ) A .11 B .10 C .11至1025之间 D .10至1024之间 12.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( B )结点 A .2h B .2h-1 C .2h+1 D .h+1 13. 一棵树高为K 的完全二叉树至少有( C )个结点 A .2k –1 B. 2k-1 –1 C. 2k-1 D. 2 k 14.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( C )次序的遍历 实现编号。 A .先序 B. 中序 C. 后序 D. 从根开始按层次遍历 15.一棵二叉树的前序遍历序列为ABCDEFG ,它的中序遍历序列可能是( B )

第6-10章--树和二叉树--答案

第6章树和二叉树 一、基础知识题 1.列出右图所示二叉树的叶结点、分支结点和每个结点的层次。 [解答]二叉树的叶结点有⑥、⑧、⑨。分支结点有①、 ②、③、④、⑤、⑦。结点①的层次为0;结点②、 ③的层次为1;结点④、⑤、⑥的层次为2;结点⑦、 ⑧的层次为3;结点⑨的层次为4。 2.使用(1)顺序表示和(2)二叉链表表示法,分别画出右图所示二叉树的存储表示。 [解答] (1)顺序表示 ①②③④⑤⑥⑦ ⑧⑨

(2)二叉链表表示 3.在结点个数为n(n>1)的各棵树中,高度最小的树的高度是多少?它有多少个叶结点?多少个分支结点?高度最大的树的高度是多少?它有多少个叶结点?多少个分支结点? [解答] 结点个数为n时,高度最小的树的高度为1,有2层;它有n-1个叶结点,1个分支结点;高度最大的树的高度为n-1,有n层;它有1个叶结点,n-1个分支结点。 4.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 [解答] 具有3个结点的树具有3个结点的二叉树 5.如果一棵树有n1个度为1的结点,有n2个度为2的结点,…,n m个度为m的结点,试问有多少个度为0的结点?试推导之。 [解答] 总结点数n=n0+n1+n2+…+n m 总分支数e=n-1= n0+n1+n2+…+n m-1 =m×n m+(m-1)×n m-1+…+2×n2+n1

则有 n 0=∑=+-m i i n i 2 1))1(( 6.试分别找出满足以下条件的所有二叉树: (1) 二叉树的前序序列与中序序列相同; (2) 二叉树的中序序列与后序序列相同; (3) 二叉树的前序序列与后序序列相同。 [解答] (1) 二叉树的前序序列与中序序列相同:空树或缺左子树的单支树; (2) 二叉树的中序序列与后序序列相同:空树或缺右子树的单支树; (3) 二叉树的前序序列与后序序列相同:空树或只有根结点的二叉树。 7.填空题 (1)对于一棵具有n 个结点的树,该树中所有结点的度数之和为 n-1 。 (2)假定一棵三叉树的结点个数为50,则它的最小高度为 4 ,最大高度为 49 。 (3)一棵高度为h 的四叉树中,最多含有 (4h+1-1)/3 结点。 (4)在一棵三叉树中,度为3的结点数有2个,度为2的结点数有1个,度为1的结点数为2个,那么度为0的结点数有 6 个。 (5)一棵高度为5的满二叉树中的结点数为 63 个,一棵高度为3的满四叉树中的结点数为 85 个。 (6)在一棵二叉树中,假定度为2的结点有5个,度为1的结点有6个,则叶子结点数有 6 个。 (7)对于一棵含有40个结点的理想平衡树,它的高度为 5 。 (8)若对一棵二叉树从0开始进行结点编号,并按此编号把它顺序存储到一堆数组a 中,即编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左子女结点为2×i+1 ,右子女结点为 2×i+2 ,双亲结点(i ≥1)为??2/)1(-i 。 9.n 个结点可构造出多少种不同形态的二叉树?若有3个数据1,2,3,输入它们构 造出来的中序遍历结果都为1,2,3的不同二叉树有哪些? [解答] 有n n C 2/ (n+1)种。当n=3时,中序遍历都为1,2,3的不同二叉树有5种:

第6章树和二叉树自测题

第6章树和二叉树自测题 一、填空题 1.树是一种________结构。在树结构中,________结点没有直接前趋。(层次,根) 2.一棵树上的任何结点(不包括根本身)称为根的________。若B是A的子孙,则称A是B的________。(子孙结点,祖先) 3.二叉树有______二叉树、______的二叉树、只有______的二叉树、只有______的二叉树、同时有______的二叉树五种基本形态。(空、只有根结点、根和根的左子树、根和根的右子树、根和根的左右子树) 4.树在计算机内的表示方式有_______、_______、_________。(双亲表示法、孩子表示法、双亲孩子表示法) 5.对任何二叉树,若度为2的节点数为n 2,则叶子数n =______。(n =n 2 +1) 6. 高度为k(k>=1)的二叉树至多有______个结点。(2k-1) 7. 二叉树第i(i>=1)层上至多有______个结点。(2i-1) 8. 满二叉树上各层的结点数已达到了二叉树可以容纳的______。满二叉树也是______二叉树,但反之不然。(最大值,完全二叉树) 9.具有n个结点的完全二叉树的高度为______。(log 2 n) 10. 如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X 有: (1)若i=1,则结点X是______;若i〉1,则X的双亲PARENT(X)的编号为______。(根 结点,[i/2]) (2) 若2i>n,则结点X无______且无______;否则,X的左孩子LCHILD(X)的编号为 ______。(左孩子,右孩子,2i) (3)若2i+1>n,则结点X无______;否则,X的右孩子RCHILD(X)的编号为______。(右 孩子,2i+1) 11. 二叉树通常有______存储结构和______存储结构两类存储结构。(顺序,链接) 12.具有n个结点的二叉链表中,一共有________个指针域,其中只有________个用来指向结点的左右孩子,其余的________个指针域为NULL。(2n,n-1,n+1) 13. 一棵二叉树由根、左子树和右子树三部分组成,因此对二叉树的遍历也可相应地分解成________、________、________三项“子任务”。(访问根结点、遍历左子树、遍历右子树) 14. 若以N、L、R分别表示二叉树的三项子任务,限定“先左后右”,这样可能的次序有:________、________、________三种,按这三种次序进行的遍历分别称为________、________、________。(NLR、LNR、LRN、先根(或前序)遍历、中根(或中序)遍历、后根(或后序)遍历) 15. 在二叉链表中,指针p所指结点为叶结点的条件是______。(结点的左右孩子域均为空指针) 16. 已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有______个叶结点。(12) 17.设根结点的层数为1,具有n个结点的二叉树的最大高度是______。(n) 18. 已知二叉树前序序列为ABDEGCF,中序序列为DBGEACF,则后序序列是____。(DGEBFCA) 19. 若一个二叉树的叶结点是某子树的中序遍历序列中的最后一个结点,则它必是该子树的______序列中的最后一个结点。(先(前)序) 20. 先根次序遍历树(森林)等同于按______遍历对应的二叉树;后根次序遍历树(森林)等同

数据结构第六章树和二叉树习题及答案

习题六树和二叉树 一、单项选择题 1.以下说法错误的是() A. 树形结构的特点是一个结点可以有多个直接前趋 B. 线性结构中的一个结点至多只有一个直接后继 C. 树形结构可以表达(组织)更复杂的数据 D. 树(及一切树形结构)是一种”分支层次”结构 E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是() A. 任何一棵二叉树中至少有一个结点的度为2 B. 任何一棵二叉树中每个结点的度都为2 C. 任何一棵二叉树中的度肯定等于2 D. 任何一棵二叉树中的度可以小于2 3. 讨论树、森林和二叉树的关系,目的是为了() A. 借助二叉树上的运算方法去实现对树的一些运算 B. 将树、森林按二叉树的存储方式进行存储 C. 将树、森林转换成二叉树 D. 体现一种技巧,没有什么实际意义4.树最适合用来表示() A. 有序数据元素 B .无序数据元素 C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B .11 C .15 D .不确定 6. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1, M2和M3与森林F 对应的二叉树根结点的右子树上的结点个数是()。 A.M1 B .M1+M2 C .M3 D .M2+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B .500 C .254 D .505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A. 不确定 B . 2n C . 2n+1 D . 2n-1 9.二叉树的第I 层上最多含有结点数为() I I-1 I-1 I A.2I B .2 I-1 -1 C .2 I-1 D .2 I -1 10.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B .指向最右孩子 C .空D .非空 12.已知一棵二叉树的前序遍历结果为为()。 A.CBEFDA B .FEDCBA 13.已知某二叉树的后序遍历序列是()。 ABCDEF中序遍历结果 为 C .CBEDFA D dabec, 中序遍历序列是 CBAEDF则后序遍历的结 果 .不定 debac , 它的前序遍历是

第6章 树和二叉树 作业

第6章树和二叉树作业 1、假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树的树边集合为{ (e,i), (b,e), (b,d), (a,b), (g,j), (c,g), (c,f), (h,l), (c,h), (a,c) } ,用树型表示法表示该树,并回答下列问题: ①哪个是根结点? 哪些是叶子结点? 哪个是g的双亲? 哪些是g的祖先? 哪些是g的孩子? 那些是e的子孙? 哪些是e的兄弟? 哪些是f 的兄弟? ②b和n的层次各是多少? 树的深度是多少? 以结点c为根的子树的深度是多少? 2、一棵深度为h的满k叉树有如下性质:第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序(同层自左至右)从1开始对全部结点编号,问: ①各层的结点数是多少? ②编号为i的结点的双亲结点(若存在)的编号是多少? ③编号为i的结点的第j个孩子结点(若存在)的编号是多少? ④编号为i的结点的有右兄弟的条件是什么? 其右兄弟的编号是多少? 3、设有如图6-27所示的二叉树。 ①分别用顺序存储方法和链接存储方法画 出该二叉树的存储结构。 ②写出该二叉树的先序、中序、后序遍历序 列。 4、已知一棵二叉树的先序遍历序列和中序遍 历序列分别为ABDGHCEFI和 GDHBAECIF,请画出这棵二叉树,然后给 出该树的后序遍历序列。

5、设一棵二叉树的中序遍历序列和后序遍历序列分别为BDCEAFHG 和DECBHGFA ,请画出这棵二叉树,然后给出该树的先序序列。 6、已知一棵二叉树的中序遍历序列和后序遍历序列分别为dgbaekchif 和gdbkeihfca,请画出这棵二叉树对应的中序线索树和后序线索树。 7、以二叉链表为存储结构,请分别写出求二叉树的结点总数及叶子结点总数的算法。 8、设图6-27所示的二叉树是森林F所对应的二叉树,请画出森林F。 9、设有一棵树,如图6-28 所示。 ①请分别用双亲表示法、孩 子表示法、孩子兄弟表示法 给出该树的存储结构。 ②请给出该树的先序遍历 序列和后序遍历序列。 ③请将这棵树转换成二叉 树。 10、设给定权值集合 w={3,5,7,8,11,12} ,请构造 关于w的一棵huffman树,并求其加权路径长度WPL 。 11、假设用于通信的电文是由字符集{a, b, c, d, e, f, g, h}中的字符构成,这8个字符在电文中出现的概率分别为{0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10} 。 ①请画出对应的huffman树(按左子树根结点的权小于等于右子树根结点的权的次序构造)。 ②求出每个字符的huffman编码。

第6章 树和二叉树答案

第六章答案 6. 1分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 【解答】 具有3个结点的树具有3个结点的二叉树 6.3已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,……,n k个度为k 的结点,则该树中有多少个叶子结点? 【解答】设树中结点总数为n,则n=n0 + n1 + …… + n k 树中分支数目为B,则B=n1 + 2n2 + 3n3+ …… + kn k 因为除根结点外,每个结点均对应一个进入它的分支,所以有n= B + 1 即n0 + n1 + …… + n k = n1 + 2n2 + 3n3+ …… + kn k + 1 由上式可得叶子结点数为:n0 = n2 + 2n3+ …… + (k-1)n k + 1 6.5已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个? 【解答】n0表示叶子结点数,n2表示度为2的结点数,则n0 = n2+1 所以n2=n0 –1=49,当二叉树中没有度为1的结点时,总结点数n=n0+n2=99 6.6 试分别找出满足以下条件的所有二叉树: (1) 前序序列与中序序列相同; (2) 中序序列与后序序列相同; (3) 前序序列与后序序列相同。 【解答】 (1) 前序与中序相同:空树或缺左子树的单支树; (2) 中序与后序相同:空树或缺右子树的单支树; (3) 前序与后序相同:空树或只有根结点的二叉树。 6.9 假设通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为: 0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10 请为这8个字母设计哈夫曼编码。 【解答】 构造哈夫曼树如下:

习题6树和二叉树.docx

习题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-l C. 2h+l D. h+l 7. 对一个满二叉树,m 个树叶,n 个结点,深度为h,则_A_。 A. n=h+m B. h+m=2n C. m=h-1 D. n=2 h -l 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 12. 在一非空二叉树的中序遍历序列中, A.只有右子树上的所有结点 13. 如图6.1所示二叉树的中序遍历序列是_B_。 14. 一棵二叉树如图6.2所示,其中序遍历的序列为 B 。 A. abdgcefh B. dgbaechf C. gdbehfca D. abcdefgh C. bdgaechf D. gdbehfca 根结点的右边_A_。 B.只有右子树上的部分结点 C.只有左子树上的部分结点 D.只有左子树上的所有结点 A. abcdgef B. dfebagc C. dbaefcg D. defbagc 图6」

数据结构第6章树和二叉树

第六章树和二叉树 一、选择题 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 2.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数 为()A.5 B.6 C.7 D.8 3.在下述结论中,正确的是() ①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意 交换;④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A.①②③ B.②③④ C.②④ D.①④ 4.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F 中第一棵树的结点个数是() A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定 5.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B. 254 C.500 D.501 6.设给定权值总数有n 个,其哈夫曼树的结点总数为( ) A.不确定 B.2n C.2n+1 D.2n-1 7.有关二叉树下列说法正确的是() A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 8.二叉树的第I层上最多含有结点数为() A.2I B. 2I-1-1 C. 2I-1 D.2I -1 9.一个具有1025个结点的二叉树的高h为() A.11 B.10 C.11至1025之间 D.10至1024之间 10.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( )结点A.2h B.2h-1 C.2h+1 D.h+1 11.一棵具有 n个结点的完全二叉树的树高度(深度)是() A.?log2n?+1 B.log2n+1 C.?log2n? D.log2n-1 12.深度为h的满m叉树的第k层有()个结点。(1=

数据结构—— 树和二叉树知识点归纳

第6章树和二叉树 6.1 知识点概述 树(Tree)形结构是一种很重要的非线性结构,它反映了数据元素之间的层次关系和分支关系。在计算机科学中具有广泛的应用。 1、树的定义 树(Tree)是n(n≥0)个数据元素的有限集合。当n=0时,称这棵树为空树。在一棵非空树T中: (1)有一个特殊的数据元素称为树的根结点,根结点没有前驱结点。 (2)若n>1,除根结点之外的其余数据元素被分成m(m>0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。树T1,T2,…,Tm称为这个根结点的子树。 2、树的基本存储结构 (1)双亲表示法 由于树中的每一个结点都有一个唯一确定的双亲结点,所以我们可用一组连续的 存储空间(即一维数组)存储树中的结点。每个结点有两个域:一个是data域,存放结点信息,另一个是parent域,用来存放双亲的位置(指针)。 (2)孩子表示法 将一个结点所有孩子链接成一个单链表形,而树中有若干个结点,故有若干个单 链表,每个单链表有一个表头结点,所有表头结点用一个数组来描述这种方法通常是把每个结点的孩子结点排列起来,构成一个单链表,称为孩子链表。 (3)双亲孩子表示法 双亲表示法是将双亲表示法和孩子表示法相结合的结果。其仍将各结点的孩子结点分别组成单链表,同时用一维数组顺序存储树中的各结点,数组元素除了包括结点本身的信息和该结点的孩子结点链表的头指针之外,还增设一个域,存储该结点双亲结点在数组中的序号。 (4)孩子兄弟表示法 这种表示法又称为树的二叉表示法,或者二叉链表表示法,即以二叉链表作为树的存储结构。链表中每个结点设有两个链域,分别指向该结点的第一个孩子结点和下一个兄弟(右兄弟)结点。 3、二叉树的定义 二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。 4、满二叉树 定义:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,这样的一棵二叉树称作满二叉树。 5、完全二叉树 定义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。完全二叉树的特点是:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。 6、二叉树的性质

数据结构第六章 树和二叉树课后习题答案

第六章课后习题 6、1、各层的结点数目是:K 2、编号为n的结点的双亲结点是:<=(n-2)/k的最大整数 3、编号为n的结点的第i个孩子结点编号是:k*(n-1)+1+i 4、编号为n的结点有右兄弟的条件是:(n-1)能被k整除 右兄弟的编号是:n+1. 7、1、先序序列和中序序列相同:空二叉树或没有左子树的二叉树。 2、中序序列和后序序列相同:空二叉树或没有右子树的二叉树。 3、先序序列和后序序列相同:空二叉树或只有根的二叉树。 9、中序序列:BDCEAFHG和后序序列:DECBHGFA的二叉树为: A B F C G D E H 先序序列:ABCDEFGH 算法设计: 3、typedef struct { int data[100]; int top; }seqstack; seqstack *s; Perorder(char a[],int n) { int i=1,count=1; s->top=-1;

if(n==0)return(0); else { if(I<=n) { s->top++; s->data[s->top]=a[I]; } while(countdata[s->top]); count++; s->top--; if(s->data[s->top]);==a[i]) { printf(“%c”,s->data[s->top]); count++; s->top--; } if((2*i+1)top++; s->data[s->top]=a[i+1]; s->top++; s->data[s->top]=a[i]; } else if(a*itop++; s->data[s->top]=a[i]; } else if(i/2%2==1)i=i/2/2+1; else i=i/2+1; } } } main() { char A[]=“kognwyuvb”; int n=strlen(A); s=(seqstack *)malloc(sizeof(seqstack)); printf(“\n”); Perorder(A,n);

第六章-树和二叉树-作业

第六章树和二叉树 一、应用题 1.已知完全二叉树的第七层有10个叶子结点,则整个二叉树的结点数最多是多少? 2.高度为10的二叉树,其结点最多可能为多少? 3.任意一个有n个结点的二叉树,已知它有m个叶子结点,试证明非叶子结点有(m-1)个度为2,其余度为1。 4. 已知A[1..N]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先? 5.已知一棵满二叉树的结点个数为20到40之间的素数,此二叉树的叶子结点有多少个?

6.一棵共有n个结点的树,其中所有分支结点的度均为K,求该树中叶子结点的个数。 7.设T是具有n个内结点的扩充二叉树,I是它的内路径长度,E是它的外路径长度。试利用归纳法证明E=I+2n, n>=0. 8.试证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如前序abc,后序bca,对称序bac。 9. 由二叉树的中序序列及前序序列能唯一的建立二叉树,试问中序序列及后序序列是否也能唯一的建立二叉树,不能则说明理由,若能对中序序列DBEAFGC 和后序序列DEBGFCA构造二叉树。

10. 由一棵二叉树的前序序列和中序序列可唯一确定这棵二叉树。设一棵二叉树的前序序列为ABDGECFH,中序序列为:DGBEAFHC 。试画出该二叉树。 二、算法设计题 1. 给出算法将二叉树表示的表达式二叉树按中缀表达式输出,并加上相应的括号。 2.编程求以孩子—兄弟表示法存储的森林的叶子结点数。

3.要求二叉树按二叉链表形式存储, (1)写一个建立二叉树的算法。 (2)写一个判别给定的二叉树是否是完全二叉树的算法。 完全二叉树定义为:深度为K,具有N个结点的二叉树的每个结点都与深度为K 的满二叉树中编号从1至N的结点一一对应。此题以此定义为准。 4.假设以双亲表示法作树的存储结构,写出双亲表示的类型说明,并编写求给定的树的深度的算法。(注:已知树中结点数)

第6章 树和二叉树 练习题

习题6 树和二叉树 6.1 单项选择题 1. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法____。 A. 正确 B. 错误 2. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为个。A.15 B.16 C.17 D.47 3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有____种。 A. 3 B. 4 C. 5 D. 6 4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有____种。 A. 5 B. 6 C. 30 D. 32 5. 深度为5的二叉树至多有____个结点。 A. 16 B. 32 C. 31 D. 10 6. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_ ___。 A. 2h B. 2h-1 C. 2h+1 D. h+1 7. 对一个满二叉树,m个树叶,n个结点,深度为h,则____ 。 A. n=h+m B. h+m=2n C. m=h-1 D. n=2 h-1 8. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序____。 A.不发生改变 B.发生改变 C.不能确定 D.以上都不对 9. 如果某二叉树的前序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为____。 A. uwvts B. vwuts C. wuvts D. wutsv 10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法____。 A. 正确 B. 错误 11. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是____。 A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca 12. 在一非空二叉树的中序遍历序列中,根结点的右边____。 A. 只有右子树上的所有结点 B. 只有右子树上的部分结点 C. 只有左子树上的部分结点 D. 只有左子树上的所有结点 13. 如图6.1所示二叉树的中序遍历序列是____。 A. abcdgef B. dfebagc C. dbaefcg D. defbagc

数据库系统l试题库及答案第6章树和二叉树

第6章树和二叉树 6.1知识点:树和二叉树的基本概念 —、填空题 1.高度为h,度为m的树中至少有______________ 个结点,至多有 _______________ 个结点。 2.树的结点是由________ 及若干指向其子树的_______ 组成;结点拥有的子树数称为 _______ ;度为0的结 点称为___________ ;度不为0的结点成为______________ ;树中结点的最大度数称为_________ ;树的最大层次称为_____________ 。 3.对于一棵具有n个结点的树,该树中所有结点的度数之和为_________________ 。 4.如果结点A有3个兄弟结点,而且B是A的双亲,则B的度是___________________ 。 5.二叉树是另一种树形结构,它的特点是 ___________________________________________________________ 。 6.一颗度数为k且有2k-1个结点的二叉树称为 _____________ 。 7.深度为k,且有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n 的结点-- 对应时,称之为________________ 。 8.一棵深度为6的满二叉树有 _________ 个分支结点和 ________ 个叶子。 9.一棵具有257个结点的完全二叉树,它的深度为____________ 。 10.设一棵完全二叉树具有1000个结点,则此完全二叉树有________ 个叶子结点,有________ 个度为2的结 点,有_______ 个结点只有非空左子树,有_________ 个结点只有非空右子树。 11.由3个结点可以构成 __________ 种形态的的二叉树,可以构成_________ 种形态的树。 12.将含有82个结点的完全二叉树从根结点开始顺序编号,根结点为第1号,其他结点自上向下,同一 层自左向右连续编号。则第40号结点的双亲结点的编号为________ 。 13.一棵高度为5的完全二叉树中,最多包含有________________ 个结点。 14.一棵具有n个结点的二叉树,若它有n0个叶子结点,则该二叉树上度为1的结点n仁______________ 。 15.在高度为h(h>=0)的二叉树中至多可以有 ____________ 个结点,至少可以有____________ 个结点。 16.n个结点的二叉树最大高度是______________ ,最小高度是 ________________ 。 二、选择题 1.()不含任何结点的空树()。 A.是一棵树 B.是一棵二叉树 C.是一棵树也是一棵二叉树 D.既不是树也不是二叉树 2.()一棵度为4的树中度为1、2、3、4的结点个数为4、3、2、1,则该树的结点总数为( )。 A.21 B.26 C.27 D.24 3.()具有10个叶子结点的二叉树中有____________ 个度为2的结点。 A.8 B.9 C.10 D.11 5.()如下的4棵二叉树中,()不是完全二叉 树。 4.()在一棵高度为h (假定根结点的层号为1)的完全二叉树中,所含结点个数不小于()。 24-1 A . B. C. D. 6.()设树T的度为4,其中度为 1 ,2,3 ,4的结点个数分别为4,2,1 ,1则T中的叶子数为(

第6章 树和二叉树练习题及答案

一、判断题 (√)1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。 (×)2.二叉树中每个结点的两棵子树的高度差等于1。 (√)3.二叉树中每个结点的两棵子树是有序的。 (×)4.二叉树中每个结点有两棵非空子树或有两棵空子树。 (×)5.二叉树中所有结点个数是2k-1-1,其中k是树的深度。(应2i-1) (×)6.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 (×)7.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i —1个结点。(应2i-1) (√)8.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。 (√)9.具有12个结点的完全二叉树有5个度为2的结点。 ( ) 10、哈夫曼树中没有度为1的结点,所以必为满二叉树。 ( )11、在哈夫曼树中,权值最小的结点离根结点最近。 ( )12、线索二叉树是一种逻辑结构。 (√)13、深度为K的完全二叉树至少有2K-1个结点。 (√ )14、具有n个结点的满二叉树,其叶结点的个数为(n+1)/2。 (√ )15、前序和中序遍历用线索树方式存储的二叉树,不必使用栈。 (╳ )16、哈夫曼树是带权路径长度最短的树,路径上权值较大的点离根较远。 (√)17、在二叉树结点的先序序列和后序序列中,所有叶子结点的先后顺序完全相同。(√)18、二叉树的遍历操作实际上是将非线性结构线性化的过程 (√)19、树的先根遍历序列与其所转化的二叉树的先序遍历序列相同。 (╳)20、树的后根遍历序列与其所转化的二叉树的后序遍历序列相同。 二、填空 1.由3个结点所构成的二叉树有 5 种形态。 2. 线索二叉树的左线索指向其_前驱_____,右线索指向其__后继____。 3.一棵具有257个结点的完全二叉树,它的深度为 9 。 4、如某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数 为_69_____。 5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有 500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有 0 个结点只有非空右子树。答:最快方法:用叶子数=[n/2]=500 ,n2=n0-1=499。另外,最后一结点为2i属于 左叶子,右叶子是空的,所以有1个非空左子树。完全二叉树的特点决定不可能有左空 右不空的情况,所以非空右子树数=0. 6. 一棵含有n个结点的k叉树,可能达到的最大深度为n,最小深度为 2 。

第6章 树和二叉树习题

E F D G A B / + + * - C * 第六章 树和二叉树 一、选择题 1.算术表达式a+b*(c+d/e )转为后缀表达式后为( B ) A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .abcde*/++ 2. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( C ) 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 3. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1 ,1 则T 中的叶子数为( D ) A .5 B .6 C .7 D .8 4. 在下述结论中,正确的是( D ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意 交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A .①②③ B .②③④ C .②④ D .①④ 5. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( A ) A .m-n B .m-n-1 C .n+1 D .条件不足,无法确定 6.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( B ) A .9 B .11 C .15 D .不确定 7.设森林F 中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F 对应的二叉树根结点的右子树上的结点个数是( D )。 A .M1 B .M1+M2 C .M3 D .M2+M3 8.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E ) A . 250 B . 500 C .254 D .505 E .以上答案都不对 9. 有关二叉树下列说法正确的是( B ) A .二叉树的度为2 B .一棵二叉树的度可以小于2 C .二叉树中至少有一个结点的度为2 D .二叉树中任何一个结点的度都为2 10.二叉树的第I 层上最多含有结点数为( C ) A .2I B . 2I-1-1 C . 2I-1 D .2I -1 11. 一个具有1025个结点的二叉树的高h 为( C ) A .11 B .10 C .11至1025之间 D .10至1024之间 12.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( B )结点 A .2h B .2h-1 C .2h+1 D .h+1 13. 一棵树高为K 的完全二叉树至少有( C )个结点 A .2k –1 B. 2k-1 –1 C. 2k-1 D. 2 k 14.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( C )次序的遍历 实现编号。 A .先序 B. 中序 C. 后序 D. 从根开始按层次遍历 15.一棵二叉树的前序遍历序列为ABCDEFG ,它的中序遍历序列可能是( B )

相关主题
文本预览
相关文档 最新文档