搜档网
当前位置:搜档网 › 第六章树和二叉树讲解

第六章树和二叉树讲解

第六章树和二叉树讲解
第六章树和二叉树讲解

第六章树和二叉树

一、选择题

1.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( D ) A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE

2.算术表达式a+b*(c+d/e)转为后缀表达式后为( B )

A.ab+cde/* B.abcde/+*+ C.abcde/*++ D.abcde*/++

3.设有一表示算术表达式的二叉树(见下图),

它所表示的算术表达式是( 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

4.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( D )A.5 B.6 C.7 D.8

5.在下述结论中,正确的是( D )

①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换;

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

A.①②③ B.②③④ C.②④ D.①④

6.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( A )

A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定

7. 树是结点的有限集合,它( C )根结点,记为T。其余结点分成为m(m>0)个(A)的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。一个结点的子结点个数称为该结点的(C )。二叉树与树是两个不同的概念,二叉树也是结点的有限集合,它(A)根结点。可以把树的根结点的层数定义为1,其他结点的层数等于其父结点所在层数加上1。令T是一棵二叉树,Ki和Kj是T中子结点数小于2的结点中的任意两个,它们所在的层数分别为λKi和λKj,当关系式│λKi-λKj│≤1一定成立时,则称T为一棵(C)。供选择的答案:

(1)(4) A.有0个或1个 B.有0个或多个 C.有且只有一个 D.有1个或1个以上

(2) A.互不相交 B.允许相交 C.允许叶结点相交 D.允许树枝结点相交

(3) A.权 B.维数 C.次数 D.序

(5) A.丰满树 B.查找树 C.平衡树 D.完全树

8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B )

A.9 B.11 C.15 D.不确定

9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( C )个

A.4 B.5 C.6 D.7

10.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是( D )。

A.M1 B.M1+M2 C.M3 D.M2+M3

11.具有10个叶结点的二叉树中有( B)个度为2的结点,

A.8 B.9 C.10 D.ll

12.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E )

A. 250 B.500 C.254 D.505 E.以上答案都不对

13.设给定权值总数有n个,其哈夫曼树的结点总数为( D )

A.不确定 B.2n C.2n+1 D.2n-1

14.有n个叶子的哈夫曼树的结点总数为( D )。

A.不确定 B.2n C.2n+1 D.2n-1

15.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为(C )。

A.n-1 B.?n/m?-1 C.?(n-1)/(m-1)? D.?n/(m-1)?-1 E.?(n+1)/(m+1)?-1

16.有关二叉树下列说法正确的是( B )

A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2

17.二叉树的第I层上最多含有结点数为( C)

A.2I B. 2I-1-1 C. 2I-1 D.2I -1

18.一个具有1025个结点的二叉树的高h为( C )

A.11 B.10 C.11至1025之间 D.10至1024之间

19.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( B )结点

A.2h B.2h-1 C.2h+1 D.h+1

20.对于有n个结点的二叉树,其高度为( D )

A.nlog2n B.log2n C.?log2n?|+1 D.不确定

21.一棵具有 n个结点的完全二叉树的树高度(深度)是( A )

A.?logn?+1 B.logn+1 C.?logn? D.logn-1

22.深度为h的满m叉树的第k层有(A )个结点。(1=

A.m k-1 B.m k-1 C.m h-1 D.m h-1

23.在一棵高度为k的满二叉树中,结点总数为( C )

A.2k-1 B.2k C.2k-1 D.?log2k?+1

24.高度为 K的二叉树最大的结点数为( C )。

A.2k B.2k-1 C.2k -1 D.2k-1-1

25. 一棵树高为K的完全二叉树至少有( C )个结点

A.2k–1 B.2k-1–1 C.2k-1 D.2k

26.将有关二叉树的概念推广到三叉树,则一棵有244个结点的完全三叉树的高度( C)

A.4 B.5 C.6 D.7

27.利用二叉链表存储树,则根结点的右指针是( C )。

A.指向最左孩子 B.指向最右孩子 C.空 D.非空

28.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同

一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( C )次序的遍历实现编

号。

A.先序 B.中序 C.后序 D.从根开始按层次遍历

29.树的后根遍历序列等同于该树对应的二叉树的( B ).

A.先序序列

B.中序序列

C.后序序列

30.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用( C )

遍历方法最合适。

A.前序 B.中序 C.后序 D.按层次

31.在下列存储形式中,哪一个不是树的存储形式?( D )

A.双亲表示法 B.孩子链表表示法 C.孩子兄弟表示法 D.顺序存储表示法

32.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( B )

A.CABDEFG B.ABCDEFG C.DACEFBG D.ADCFEG

33.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为

( A )。

A.CBEFDA B. FEDCBA C. CBEDFA D.不定

34.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac , 它的前序遍历是( D )。

A.acbed B.decab C.deabc D.cedba

35.某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E则前序序列是:B

A.E,G,F,A,C,D,B B.E,A,C,B,D,G,F C.E,A,G,C,F,B,D D.上面的都不对

36.上题的二叉树对应的森林包括多少棵树( B )

A.l B.2 C.3 D.概念上是错误的

37.二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历: HFIEJKG。该二叉树根的右子树的根是:C

A、 E

B、 F

C、 G

D、 H

38.将一棵树t转换为孩子—兄弟链表表示的二叉树h,则t的后根序遍历是h的

A.前序遍历 B.中序遍历 C.后序遍历( B )

39.某二叉树T有n个结点,设按某种顺序对T中的每个结点进行编号,编号为1,2,… ,n,且有如下性质:T中任一结点V,其编号等于左子树上的最小编号减1,而V的右子树的结点中,其最小编号等于V左子树上结点的最大编号加1。这时是按( B )编号的。

A.中序遍历序列

B.前序遍历序列

C.后序遍历序列

D.层次顺序

40.下面的说法中正确的是( B ).

(1)任何一棵二叉树的叶子结点在三种遍历中的相对次序不变;

(2)按二叉树定义,具有三个结点的二叉树共有6种。

A.(1)(2) B.(1) C.(2) D.(1)、(2)都错

41.对于前序遍历与中序遍历结果相同的二叉树为(F);

对于前序遍历和后序遍历结果相同的二叉树为(B)。

A.一般二叉树 B.只有根结点的二叉树 C.根结点无左孩子的二叉树

D.根结点无右孩子的二叉树 E.所有结点只有左子数的二叉树 F.所有结点只有右子树的二叉树

42.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( C )A.所有的结点均无左孩子B.所有的结点均无右孩子C.只有一个叶子结点D.是任意一棵二叉树

43.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序( B )A.都不相同B.完全相同 C.先序和中序相同,而与后序不同

D.中序和后序相同,而与先序不同

44.某二叉树的前序序列和后序序列正好相反,则该二叉树一定是(C)的二叉树。

A.空或只有一个结点 B.任一结点无左子树 C.高度等于其结点数 D.任一结点无右子树

45.在完全二叉树中,若一个结点是叶结点,则它没( C )。

A.左子结点 B.右子结点 C.左子结点和右子结点 D.左子结点,右子结点和兄弟结点

46.在下列情况中,可称为二叉树的是( B )

A.每个结点至多有两棵子树的树 B.哈夫曼树 C.每个结点至多有两棵子树的有序树

D.每个结点只有一棵右子树 E.以上答案都不对

47.一棵左子树为空的二叉树在先序线索化后,其中空的链域的个数是:( D )

A.不确定 B. 0 C. 1 D. 2

48.一棵左右子树均不空的二叉树在先序线索化后,其中空的链域的个数是:( B )。

A. 0

B. 1

C. 2

D.不确定

49.若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则x的前驱为( C )

A.X的双亲

B.X的右子树中最左的结点

C.X的左子树中最右结点

D.X的左子树中最右叶结点

50. 引入二叉线索树的目的是( A )

A.加快查找结点的前驱或后继的速度 B.为了能在二叉树中方便的进行插入与删除

C.为了能方便的找到双亲 D.使二叉树的遍历结果唯一

51.线索二叉树是一种( C )结构。

A.逻辑 B.逻辑和存储 C.物理 D.线性

52.n个结点的线索二叉树上含有的线索数为( C )

A.2n B.n-l C.n+l D.n

53.( C )的遍历仍需要栈的支持.

A.前序线索树 B.中序线索树 C.后序线索树

54.二叉树在线索后,仍不能有效求解的问题是( D )。

A.前(先)序线索二叉树中求前(先)序后继 B.中序线索二叉树中求中序后继

C.中序线索二叉树中求中序前驱 D.后序线索二叉树中求后序后继

55.设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为

空的结点有( C )个。

A. n-1 B.n C. n+1 D. n+2

56.如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点的( B )。

A.先序 B.中序 C.后序 D.层次序

57.由3个结点可以构造出多少种不同的有向树?( A )

A.2 B.3 C.4 D.5

58.由3个结点可以构造出多少种不同的二叉树?( D )

A.2 B.3 C.4 D.5

59.下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键

字有序(D)。

A.二叉排序树 B.哈夫曼树 C.AVL树 D.堆

60.在叶子数目和权值相同的所有二叉树中,最优二叉树一定是完全二叉树,该说法( B )。

A.正确 B.错误

61.最优二叉树(哈夫曼树)、最优查找树均为平均查找路径长度最小的树,其中对最优二叉

树,n表示(B),对最优查找树,n表示(A),构造这两种树均(G)。

A.结点数 B.叶结点数 C.非叶结点数 D.度为2的结点数 E.需要一张n个关键字的有序

F.需要对n个关键字进行动态插入 G.需要n个关键字的查找概率表 H.不需要任何前

62.下述编码中哪一个不是前缀码( B )。

A.(00,01,10,11) B.(0,1,00,11) C.(0,10,110,111) D.(1,01,000,

001)

63.下面几个符号串编码集合中,不是前缀编码的是( B )。

A.{0,10,110,1111} B.{11,10,001,101,0001} C.{00,010,0110,1000} D.{b,c,aa,ac,aba,abb,abc}

64.当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将数据存放在一维数组

A[l..n]中时,数组中第i个结点的左孩子为( D )

A.A[2i](2i=

65.一棵有n个结点的二叉树,按层次从上到下,同一层从左到右顺序存储在一维数组A[1..n]

中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是( D )

A.A[2i](2i<=n) B.A[2i+1](2i+1<=n) C.A[i-2] D.条件不充分,无法确定

66.从下列有关树的叙述中,选出5条正确的叙述(共5分)( CDFHI )

A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。

B.当K≥1时高度为K的二叉树至多有2k-1个结点。

C.用树的前序周游和中序周游可以导出树的后序周游。

D.线索二叉树的优点是便于在中序下查找前驱结点和后继结点。

E.将一棵树转换成二叉树后,根结点没有左子树。

F.一棵含有N个结点的完全二叉树,它的高度是?LOG2N?+1。

G.在二叉树中插入结点,该二叉树便不再是二叉树。

H.采用二叉树链表作树的存储结构,树的前序周游和其相应的二叉树的前序周游的结果是一样的。

I.哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。

J.用一维数组存储二叉树时,总是以前序周游存储结点。

二、判断题

1.二叉树是度为2的有序树。F

2.完全二叉树一定存在度为1的结点。F

3.对于有N个结点的二叉树,其高度为log2n。F

4.深度为K的二叉树中结点总数≤2k-1。T

5.二叉树以后序遍历序列与前序遍历序列反映的同样的信息(他们反映的信息不独立)。T

6.二叉树的遍历结果不是唯一的.T

7.二叉树的遍历只是为了在应用中找到一种线性次序。T

8.树可用投影法进行中序遍历。F

9.一个树的叶结点,在前序遍历和后序遍历下,皆以相同的相对位置出现。T

10.二叉树的前序遍历并不能唯一确定这棵树,但是,如果我们还知道该树的根结点是那一个,则可以确定这棵二叉树。F

11.一棵一般树的结点的前序遍历和后序遍历分别与它相应二叉树的结点前序遍历和后序遍历是一致的。F

12.对一棵二叉树进行层次遍历时,应借助于一个栈。F

13.用树的前序遍历和中序遍历可以导出树的后序遍历。F

14.采用二叉链表作存储结构,树的前序遍历和其相应的二叉树的前序遍历的结果是一样的。T 15.用一维数组存储二叉树时,总是以前序遍历顺序存储结点。F

16.中序遍历二叉链存储的二叉树时,一般要用堆栈;中序遍历检索二叉树时,也必须使用堆栈。F

17.中序遍历一棵二叉排序树的结点就可得到排好序的结点序列T

18.后序线索二叉树是不完善的,要对它进行遍历,还需要使用栈。T

19.任何二叉树的后序线索树进行后序遍历时都必须用栈。F

20.任何一棵二叉树都可以不用栈实现前序线索树的前序遍历。T

21.由一棵二叉树的前序序列和后序序列可以唯一确定它。F

22.完全二叉树中,若一个结点没有左孩子,则它必是树叶。T

23.二叉树只能用二叉链表表示。F

24.一棵有n个结点的二叉树,从上到下,从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i< n),右儿子是2i+1(2i+1

25.给定一棵树,可以找到唯一的一棵二叉树与之对应。T

26.一棵树中的叶子数一定等于与其对应的二叉树的叶子数。F

27.用链表(llink-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n-1个空指针。F

28.二叉树中每个结点至多有两个子结点,而对一般树则无此限制.因此,二叉树是树的特殊情形.F

29.树形结构中元素之间存在一个对多个的关系。T

30.在二叉树的第i层上至少有2i-1个结点(i>=1)。F

31.必须把一般树转换成二叉树后才能进行存储。F

32.完全二叉树的存储结构通常采用顺序存储结构。T

33.将一棵树转成二叉树,根结点没有左子树;F

34.在二叉树中插入结点,则此二叉树便不再是二叉树了。F

35.二叉树是一般树的特殊情形。F

36.树与二叉树是两种不同的树型结构。T

37.非空的二叉树一定满足:某结点若有左孩子,则其中序前驱一定没有右孩子T

38.在任意一棵非空二叉排序树,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。F

39.度为二的树就是二叉树。F

40.深度为k具有n个结点的完全二叉树,其编号最小的结点序号为?2k-2?+1。F

41.下面二叉树的定义只有一个是正确的,请在正确的地方画“√”。3

(1)它是由一个根和两株互不相交的、称为左子树和右子树的二叉树组成。

(2)(a)在一株二叉树的级i上,最大结点数是2i-1(i≥1)

(b)在一棵深度为k的二叉树中,最大结点数是2k-1+1(k≥1)。

(3)二叉树是结点的集合,满足如下条件:

(a)它或者是空集;

(b)或者是由一个根和两个互不相交的、称为左子树和右子树的二叉树组成。

42.在中序线索二叉树中,每一非空的线索均指向其祖先结点。T

43.线索二叉树的优点是便于是在中序下查找前驱结点和后继结点。T

44.二叉树中序线索化后,不存在空指针域。F

45.霍夫曼树的结点个数不能是偶数。T

46.一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和。F

47.哈夫曼树无左右子树之分。F

48.当一棵具有n个叶子结点的二叉树的WPL值为最小时,称其树为Huffman树,且其二叉树的形状必是唯一的。F

49.哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。T

50.用链表(llink-rlink)存储包含n个结点的二叉树时,结点的2n个指针区域中有n+1个空指针。( T)

三、填空题

1.二叉树由_(1)根结点__,__(2)左子树_,_(3)右子树__三个基本单元组成。

2.树在计算机内的表示方式有_(1)双亲链表表示法__,_(2)孩子链表表示法__,_(3)孩子兄弟表示法__。

3.在二叉树中,指针p所指结点为叶子结点的条件是p->lchild==null && p->rchlid==null。4.中缀式a+b*3+4*(c-d)对应的前缀式为__(1 ++a*b3*4-cd )_,若a=1,b=2,c=3,d=4,则后缀式db/cc*a-b*+的运算结果为_(2)18__。

5.二叉树中某一结点左子树的深度减去右子树的深度称为该结点的_平衡因子___。

6.具有256个结点的完全二叉树的深度为__9 ____。

7.已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有__12____个叶子结点。

8.深度为k的完全二叉树至少有___(1)_2k-1 ___个结点,至多有___(2)2k-1____个结点。9.深度为H的完全二叉树至少有_(1)2H-1__个结点;至多有_(2)2H-1__个结点;H和结点总数N 之间的关系是(3)H=?log2N?+1__。

10.在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是__?log2s?=?log2t?___。11.在完全二叉树中,编号为i和j的两个结点处于同一层的条件是__?log2i?=?log2j?____。12.一棵有n个结点的满二叉树有__(1)0 _个度为1的结点、有__(2)(n-1)/2_个分支(非终端)结点和__(3)(n+1)/2_个叶子,该满二叉树的深度为_(4)?log2n?+1__。

13.假设根结点的层数为1,具有n个结点的二叉树的最大高度是__n____。

14.在一棵二叉树中,度为零的结点的个数为N0,度为2的结点的个数为N2,则有N0 =___N2+1 ___ 15.设只含根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为__2K+1-1____,最小结点数为___k+1 ___。

16.设有N个结点的完全二叉树顺序存放在向量A[1:N]中,其下标值最大的分支结点为_?N/2?。17.高度为K的完全二叉树至少有___2k-2___个叶子结点

18.高度为8的完全二叉树至少有___64___个叶子结点。

19.已知二叉树有50个叶子结点,则该二叉树的总结点数至少是__99____。

20.一个有2001个结点的完全二叉树的高度为__11____。21.设F是由T1,T2,T3三棵树组成的森林,与F对应的二叉树为B,已知T1,T2,T3的结点数分别为n1,n2和n3则二叉树B的左子树中有__(1) n1-1_个结点,右子树中有_(2)n2+n3 __个结点。

22.一个深度为k的,具有最少结点数的完全二叉树按层次,(同层次从左到右)用自然数依此对结点编号,则编号最小的叶子的序号是__(1)2k-2+1_;编号是i的结点所在的层次号是_(2)?log2i?+1__(根所在的层次号规定为1层)。

23.如某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数为__69____。24.如果结点A有 3个兄弟,而且B是A的双亲,则B的度是__4 ____。

25.高度为h的2-3树中叶子结点的数目至多为___3h-1___。26.完全二叉树中,结点个数为n,则编号最大的分支结点的编号为__?n/2?____。

27.设一棵完全二叉树叶子结点数为k,最后一层结点数>2,则该二叉树的高度为__?log2k?+1____。

28.对于一个具有n个结点的二元树,当它为一棵_(1)完全二叉树_二元树时具有最小高度,当它为一棵_(2)单枝树_时,具有最大高度。

29.具有N个结点的二叉树,采用二叉链表存储,共有__N+1____个空链域

30.8层完全二叉树至少有___128___个结点,拥有100个结点的完全二叉树的最大层数为__7____。

31.含4个度为2的结点和5个叶子结点的二叉树,可有___0至多个___个度为1的结点。

32.一棵树T中,包括一个度为1的结点,两个度为2的结点,三个度为3的结点,四个度为4的结点和若干叶子结点,则T的叶结点数为____21 __。

33. n(n大于1)个结点的各棵树中,其深度最小的那棵树的深度是_(1)2__。它共有_(2)n-1__个叶子结点和_(3)1__个非叶子结点,其中深度最大的那棵树的深度是_(4)n__,它共有_(5)1 __个叶子结点和_(6)n-1__个非叶子结点。

34.每一棵树都能唯一的转换为它所对应的二叉树。若已知一棵二叉树的前序序列是BEFCGDH,对称序列是FEBGCHD,则它的后序序列是_(1)FEGHDCB __。设上述二叉树是由某棵树转换而成,则该树的先根次序序列是_(2)BEF__。

35.先根次序周游树林正好等同于按_(1)先序__周游对应的二叉树,后根次序周游树林正好等同于按__(2)中序_周游对应的二叉树。

36.二叉树结点的对称序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E,则该二叉树结点的前序序列为_(1)EACBDGF__,则该二叉树对应的树林包括_(2)2__棵树。

37.二叉树的先序序列和中序序列相同的条件是__任何结点至多只有右子女的二叉树____。38.已知一棵二叉树的前序序列为abdecfhg,中序序列为dbeahfcg,则该二叉树的根为_(1)a__,左子树中有_(2)dbe__,右子树中有_(3)hfcg__。

39.设二叉树中每个结点均用一个字母表示,若一个结点的左子树或右子树为空,用.表示,现前序遍历二叉树,访问的结点的序列为ABD.G...CE.H..F..,则中序遍历二叉树时,访问的结点序列为_(1).D.G.B.A.E.H.C.F.__;后序遍历二叉树时,访问的结点序列为_(2)...GD.B...HE..FCA。

40.已知二叉树前序为ABDEGCF,中序为DBGEACF,则后序一定是_DGEBFCA___。41.现有按中序遍历二叉树的结果为abc,问有_(1)5 __种不同的二叉树可以得到这一遍历结果

42.一个无序序列可以通过构造一棵__二叉排序树____树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。

43.利用树的孩子兄弟表示法存储,可以将一棵树转换为__二叉树____。

《数据结构》习题汇编06第六章树和二叉树试题

第六章树和二叉树试题 一、单项选择题 1.树中所有结点的度等于所有结点数加()。 A. 0 B. 1 C. -1 D. 2 2.在一棵树中,()没有前驱结点。 A. 分支结点 B. 叶结点 C. 根结点 D. 空结点 3.在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加()。 A. 2 B. 1 C. 0 D. -1 4.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。 A. n B. n-1 C. n+1 D. 2*n 5.在一棵具有n个结点的二叉树的第i层上(假定根结点为第0层,i大于等

于0而小于等于树的高度),最多具有()个结点。 A. 2i B. 2i+1 C. 2i-1 D. 2n 6.在一棵高度为h(假定根结点的层号为0)的完全二叉树中,所含结点个数不 小于()。 A. 2h-1 B. 2h+1 C. 2h-1 D. 2h 7.在一棵具有35个结点的完全二叉树中,该树的高度为()。假定空树 的高度为-1。 A. 5 B. 6 C. 7 D. 8 8.在一棵具有n个结点的完全二叉树中,分支结点的最大编号为()。假 定树根结点的编号为0。 A. ?(n-1)/2? B. ?n/2? C. ?n/2? D. ?n/2? -1 9.在一棵完全二叉树中,若编号为i的结点存在左孩子,则左子女结点的编号 为()。假定根结点的编号为0

A. 2i B. 2i-1 C. 2i+1 D. 2i+2 10.在一棵完全二叉树中,假定根结点的编号为0,则对于编号为i(i>0)的结 点,其双亲结点的编号为()。 A. ?(i+1)/2? B. ?(i-1)/2? C. ?i/2? D. ?i/2? -1 11.在一棵树的左子女-右兄弟表示法中,一个结点的右孩子是该结点的() 结点。 A. 兄弟 B. 子女 C. 祖先 D. 子孙 12.在一棵树的静态双亲表示中,每个存储结点包含()个域。 A. 1 B. 2 C. 3 D. 4 13.已知一棵二叉树的广义表表示为a (b (c), d (e ( , g (h) ), f ) ),则 该二叉树的高度为()。假定根结点的高度为0。 A. 3 B. 4 C. 5 D. 6

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

习题六树和二叉树 一、单项选择题 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层上最多含有结点数为() A.2I B. 2I-1-1 C. 2I-1 D.2I -1 10.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( )结点A.2h B.2h-1 C.2h+1 D.h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B.指向最右孩子 C.空 D.非空 14.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序()A.都不相同 B.完全相同 C.先序和中序相同,而与后序不同 D.中序和后序相同,而与先序不同 15.在完全二叉树中,若一个结点是叶结点,则它没()。 A.左子结点 B.右子结点 C.左子结点和右子结点 D.左子结点,右子结点和兄弟结点 16.在下列情况中,可称为二叉树的是()

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

第六章 树和二叉树 一、选择题 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 )转为后缀表达式后为( )【中山大学 1999 一、5】 A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .3. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( ) 【南京理工大学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. 在下述结论中,正确的是( )【南京理工大学 1999 一、4 (1分)】 ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意 交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A .①②③ B .②③④ C .②④ D .①④ 6. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( ) A .m-n B .m-n-1 C .n+1 D .条件不足,无法确定 【南京理工大学2000 一、 17(1.5分)】 7. 树是结点的有限集合,它( (1))根结点,记为T 。其余结点分成为m (m>0)个((2)) 的集合T1,T2, …,Tm ,每个集合又都是树,此时结点T 称为Ti 的父结点,Ti 称为T 的子结点(1≤i ≤m )。一个结点的子结点个数称为该结点的( (3) )。二叉树与树是两个 不同的概念,二叉树也是结点的有限集合,它((4))根结点。可以把树的根结点的层数定 义为1,其他结点的层数等于其父结点所在层数加上1。令T 是一棵二叉树,Ki 和Kj 是T 中子结点数小于2的结点中的任意两个,它们所在的层数分别为λKi 和λKj ,当关系式│ λKi-λKj │≤1一定成立时,则称T 为一棵((5))。供选择的答案: (1)(4) A. 有0个或1个 B. 有0个或多个 C. 有且只有一个 D. 有1个或1 个以上 (2) A. 互不相交 B.允许相交 C.允许叶结点相交 D.允许树枝结点相交 (3) A. 权 B.维数 C.次数 D.序 (5) A. 丰满树 B.查找树 C.平衡树 D.完全树 【上海海运学院1999二、 2(5分)】 8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( ) A .9 B .11 C .15 D .不确定 【北京工商大学2001一.7(3 分)】 9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2

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

一、选择题 1、设T是一棵树,T’是对应于x的二叉树,则T的先根次序遍历和T’的()次序遍历相同。 A、先根 B、中根 C、后根 D、以上都不是 2、 3、若二叉树的后序遍历序列为dabec,中序遍历序列为debac,则前序序列遍历为()。 A、acbed B、decab C、deabc D、cedba 4、具有35个结点的完全二叉树的深度为() A、5 B、6 C、7 D、8 5、将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子结点编号为() A、98 B、99 C、50 D、48 6、某二叉树的前序和后序序列正好相反,则该二叉树一定是()的二叉树。 A、空或只有一个结点 B、高度等于其结点数 C、任一结点无左孩子 D、任一结点无左孩子 7、二叉树在线索化后,仍不能有效求解的问题是() A、先根线索二叉树中求先根后继 B、中根线索二叉树中求中根后继 C、中根线索二叉树中求中根前驱 D、后根线索二叉树中求后根后继 8、在线索化二叉树中,t所指结点没有左子树的充足条件是() A、t-lchild==NULL B、t->ltag==1 C、t->ltag==1&&t->lchild==NULL D、以上都不对 9、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为() A、2h B、2h-1 C、2h+1 D、h+1 10、深度为5的二叉树至多有()个结点。 A、16 B、32 C、31 D、10 11、在一非空二叉树的中序遍历序列中,根结点的右边() A、只有右子树上的所有结点 B、只有右子树上的部分结点 C、只有左子树上的所有结点 D、只有左子树上的部分结点 12、树最适合用来表示() A、有序数据元素 B、无序数据元素 C、元素之间具有分支层次关系的数据 D、元素之间无联系的数据 13、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序() A、不发生改变 B、发生改变 C、不能确定 D、以上都不对 14、设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是() A、n在m右方 B、n是m祖先 C、n在m左方 D、n是m子孙 15、线索二叉树是一种()结构 A、逻辑 B、逻辑和存储 C、物理 D、线性 16、森林的后根遍历序列与其对应二叉树的()遍历序列一致。 A、先根 B、后根 C、中根 D、不可能 二、填空题 1、由一棵二叉树后序序列和(中序)可唯一确定这棵二叉树。 2、含有n个结点的二叉树用二叉链表表示时,有(N+1)个空链域。 3、有m个叶子结点的哈夫曼树有(2*M-1)个结点。

第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个字母设计哈夫曼编码。 【解答】 构造哈夫曼树如下:

第六章树和二叉树讲解

第六章树和二叉树 一、选择题 1.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( D ) A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE 2.算术表达式a+b*(c+d/e)转为后缀表达式后为( B ) A.ab+cde/* B.abcde/+*+ C.abcde/*++ D.abcde*/++ 3.设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( 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 4.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( D )A.5 B.6 C.7 D.8 5.在下述结论中,正确的是( D ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A.①②③ B.②③④ C.②④ D.①④ 6.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( A ) A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定 7. 树是结点的有限集合,它( C )根结点,记为T。其余结点分成为m(m>0)个(A)的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。一个结点的子结点个数称为该结点的(C )。二叉树与树是两个不同的概念,二叉树也是结点的有限集合,它(A)根结点。可以把树的根结点的层数定义为1,其他结点的层数等于其父结点所在层数加上1。令T是一棵二叉树,Ki和Kj是T中子结点数小于2的结点中的任意两个,它们所在的层数分别为λKi和λKj,当关系式│λKi-λKj│≤1一定成立时,则称T为一棵(C)。供选择的答案: (1)(4) A.有0个或1个 B.有0个或多个 C.有且只有一个 D.有1个或1个以上 (2) A.互不相交 B.允许相交 C.允许叶结点相交 D.允许树枝结点相交 (3) A.权 B.维数 C.次数 D.序 (5) A.丰满树 B.查找树 C.平衡树 D.完全树 8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B ) A.9 B.11 C.15 D.不确定 9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( C )个 A.4 B.5 C.6 D.7 10.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是( D )。 A.M1 B.M1+M2 C.M3 D.M2+M3 11.具有10个叶结点的二叉树中有( B)个度为2的结点, A.8 B.9 C.10 D.ll 12.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E ) A. 250 B.500 C.254 D.505 E.以上答案都不对 13.设给定权值总数有n个,其哈夫曼树的结点总数为( D ) A.不确定 B.2n C.2n+1 D.2n-1 14.有n个叶子的哈夫曼树的结点总数为( D )。 A.不确定 B.2n C.2n+1 D.2n-1 15.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为(C )。

第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编码。

数据结构习题汇编06第六章树和二叉树试题0001

单项选择题 第六章树和二叉树试题 树中所有结点的度等于所有结点数加( A. 0 B. 1 C. -1 D. 2 在一棵树中,( A. 分支结点 )没有前驱结点。 B. 叶结点 C.根结点 D.空结点 在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加( A. 2 在一棵具有 A. n 在一棵具有 最多具有( A. 2 i B. 1 C. 0 n 个结点的二叉树中,所有结点的空子树个数等于( B. n-1 C. n+1 n 个结点的二叉树的第i 层上(假定根结点为第 ) 个结点。 B. 2 在一棵高度为 八 h-1 A. 2 i+1 亠 c i-1 C. 2 )。 D. -1 )。 D. 2*n 0层,i 大于等于0而小于等于树的高度), f 小 n D. 2 (假定根结点的层号为 B. 2 h+1 0)的完全二叉树中, C. 2 h -1 所含结点个数不小于( _ _ h D. 2 在一棵具有35个结点的完全二叉树中,该树的高度为( A. 5 B. 6 C. 7 在一棵具有n 个结点的完全二叉树中,分支结点的最大编号为 A. (n-1)/2 B. n/2 C. n/2 )。假定空树的高度为-1。 D. 8 )。假定树根结点的编号为 D. n/2 -1 0。 在一棵完全二叉树中, 的编号为0 A. 2i 在一棵完全二叉树中, ( A. )。 (i+1)/2 在一棵树的左子女 A. 兄弟 若编号为i 的结点存在左孩子, 则左子女结点的编号为 ( )。假定根结点 B. 2i-1 C. 2i+1 D. 2i+2 假定根结点的编号为 B. (i-1)/2 0,则对于编号为i (i >0) 的结点,其双亲结点的编号为 C. i/2 D. i/2 -1 -右兄弟表示法中,一个结点的右孩子是该结点的( C.祖先 B.子女 )结点。 D.子孙 在一棵树的静态双亲表示中,每个存储结点包含( A. 1 B. 2 )个 域。 C. 3 D. 4 已知一棵二叉树的广义表表示为 a (b (c ), d (e ( , g (h ) ), f )),则该二叉树的高度为( 假定根结点的高度为 0。 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

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

第六章树和二叉树 一、应用题 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、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);

第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章 树和二叉树练习题及答案

一、判断题 (√)1.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。(×)2.二叉树中每个结点的两棵子树的高度差等于1。 (√)3.二叉树中每个结点的两棵子树是有序的。 (×)4.二叉树中每个结点有两棵非空子树或有两棵空子树。 (×)5.二叉树中所有结点个数是2k-1-1,其中k是树的深度。(应2i-1) (×)6.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 (×)7.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。(应2i-1)(√) (√) ( )10 ( )11 ( )12 (√) (√)14 (√)15 (╳)16 (√) (√) (√) (╳) 1 2. 3 4 5.1 答:20 所以有1个非空左子树。完全二叉树的特点决定不可能有左空右不空的情况,所以非空右子树数=0. 6.一棵含有n个结点的k叉树,可能达到的最大深度为n,最小深度为2。 7.若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是FEGHDCB。 8.在二叉树中,指针p所指结点为叶子结点的条件是_p->lchild==null&&p->rchlid==null?。 三、选择题 1.某二叉树结点的中序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E,则其左子树中结点数目为(C)

A)3 B)2 C)4D)5 2.二叉树是非线性数据结构,所以(C)。 A、它不能用顺序存储结构存储;B、它不能用链式存储结构存储; C、顺序存储结构和链式存储结构都能存储;D、顺序存储结构和链式存储结构都不能使用 3.具有n(n>0)个结点的完全二叉树的深度为(C)。 (A)?log2(n)?(B)?log2(n)?(C)?log2(n)?+1(D)?log2(n)+1? 4.把一棵树转换为二叉树后,这棵二叉树的形态是(A)。 (A)唯一的(B)有多种 5. A 6 号为1 A、 7 A) 8、1, A、 9 A C 10 A 11.? A.2k 12 A. 13.有关二叉树下列说法正确的是(???B) A.二叉树的度为2???B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2??D.二叉树中任何一个结点的度都为2 14.一个具有1025个结点的二叉树的高h为(???C) A.11????B.10?????C.11至1025之间?????D.10至1024之间 15.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有(B???)结点A.2h????B.2h-1???????C.2h+1????????D.h+1?? 16.对于有n个结点的二叉树,其高度为(D???)

第六章树和二叉树习题及答案

一、填空题 1. 不相交的树的聚集称之为森林。 2. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是_树可采用孩子-兄弟链表(二叉链表)做存储结构,目的是利用二叉树的已有算法解决树的有关问题。 3. 深度为k的完全二叉树至少有2 k-1个结点。至多有2 k-1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是2 k-2+1。 4. 在一棵二叉树中,度为零的结点的个数为n ,度为2的结点的个 数为n 2,则有n = n 2 +1。 5. 一棵二叉树的第i(i≥1)层最多有2 i-1个结点;一棵有n(n>0)个结点的满二叉树共有(n+1)/2个叶子和(n-1) /2个非终端结点。 6.现有按中序遍历二叉树的结果为abc,问有5种不同形态的二叉树 可以得到这一遍历结果。 7. 哈夫曼树是带权路径长度最小的二叉树。 8. 前缀编码是指任一个字符的编码都不是另一个字符编码的前缀的一种编码方法,是设计不等长编码的前提。 9. 以给定的数据集合{4,5,6,7,10,12,18}为结点权值构造的Huffman树的加权路径长度是 165 。 10. 树被定义为连通而不具有回路的(无向)图。 11. 若一棵根树的每个结点最多只有两个孩子,且孩子又有左、右之分,次序不能颠倒,则称此根树为二叉树。 12. 高度为k,且有个结点的二叉树称为二叉树。 2k-1 满 13. 带权路径长度最小的二叉树称为最优二叉树,它又被称为树。 Huffman 14. 在一棵根树中,树根是为零的结点,而为零的结点是结点。 入度出度树叶

15. Huffman树中,结点的带权路径长度是指由到之间的路径长度与结点权值的乘积。 结点树根 16. 满二叉树是指高度为k,且有个结点的二叉树。二叉树的每一层i上,最多有个结点。 2k-1 2i-1 二、单选题 1. 具有10个叶结点的二叉树中有 (B) 个度为2的结点。 (A)8 (B)9 (C)10 (D)11 2.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用_(3)次序的遍历实现编号。 (1)先序(2)中序 (3)后序(4)从根开始按层遍历 3. 由2、3、4、7作为结点权值构造的哈夫曼树树的加权路径长度 B 。 A、33 B、30 C、36 D、40 4. 高度为6的满二叉树,总共有的结点数是 B 。 A、15 B、63 C、20 D、25 5. 下面描述根树转换成二叉树的特性中,正确的是 C 。 A、根树转换成的二叉树是唯一的,二叉树的根结点有左、右孩子。 B、根树转换成的二叉树是不唯一的,二叉树的根结点只有左孩子。 C、根树转换成的二叉树是唯一的,二叉树的根结点只有左孩子。 D、根树转换成的二叉树是不唯一的,二叉树的根结点有左、右孩子。 6. 如图所示的4棵二叉树中,不是完全二叉树的是。 A、○ B、○ ○○○○ ○○○○○○

数据结构1800题和答案第6章 树和二叉树答案

第 6 章 树和二叉树
一、选择题
1.D 2.B 3.C 4.D 5.D 6.A 7.1C 7.2A 7.3C 7.4A 7.5 8.B
C
9.C 10.D 11.B 12.E 13.D 14.D 15.C 16.B 17.C 18.C 19. 20.
BD
21.A 22.A 23.C 24.C 25.C 26.C 27.C 28.C 29.B 30.C 31. 32.
DB
33.A 34.D 35.B 36.B 37.C 38.B 39.B 40.B 41.1 41.2 42. 43.
F
B
CB
44.C 45.C 46.B 47.D 48.B 49.C 50.A 51.C 52.C 53.C 54. 55.
DC
56.B 57.A 58.D 59.D 60.B 61.1 61.2 61.3 62.B 63.B 64. 65.
B
A
G
DD
66.1 66.2 66.3 66.4 66.5
C
D
F
H
I
部分答案解释如下。
12. 由二 叉树 结点的 公式 : n=n0+n1+n2=n0+n1+(n0-1)=2n0+n1-1 , 因 为 n=1001, 所以
1002=2n0+n1,在完全二叉树树中,n1 只能取 0 或 1,在本题中只能取 0,故 n=501,因此选
E。
42.前序序列是“根左右”,后序序列是“左右根”,若要这两个序列相反,只有单支树,所
以本题的 A 和 B 均对,单支树的特点是只有一个叶子结点,故 C 是最合适的,选 C。A 或 B
都不全。由本题可解答 44 题。
47. 左子树为空的二叉树的根结点的左线索为空(无前驱),先序序列的最后结点的右线索
为空(无后继),共 2 个空链域。
52.线索二叉树是利用二叉树的空链域加上线索,n 个结点的二叉树有 n+1 个空链域。
二、判断题
1.× 2.× 3.× 4. 5. √ 6. 7.√ 8.× 9. 10. 11. 12.


√×××
13. 14. 15. 16. 17.√ 18. 19. 20. 21. 22. 23. 24.
×√××
√×√×√××
25. 26. 27. 28. 29.√ 30. 31. 32. 33. 34. 35. 36.
√×××
××√×××√
37. 38. 39. 40. 41.(3) 42. 43. 44. 45. 46. 47. 48.
√×××
√√×√×××
49. 50.
√√
部分答案解释如下。
6.只有在确定何序(前序、中序、后序或层次)遍历后,遍历结果才唯一。
19.任何结点至多只有左子树的二叉树的遍历就不需要栈。
24. 只对完全二叉树适用,编号为 i 的结点的左儿子的编号为 2i(2i<=n),右儿子是 2i+1
(2i+1<=n)
37. 其中序前驱是其左子树上按中序遍历的最右边的结点(叶子或无右子女),该结点无右

第6章树和二叉树(2)培训讲学

第6章树和二叉树(2)

第六章树和二叉树 一、选择题 1.算术表达式a+b*(c+d/e)转为后缀表达式后为() A.ab+cde/* B.abcde/+*+ C.abcde/*++ D.abcde*/++ 2. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是() A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定 3.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为()。 A.n-1 B.?n/m?-1 C.?(n-1)/(m-1)? D.?n/(m-1)?-1 E.?(n+1)/(m+1)?-1 4.深度为h的满m叉树的第k层有()个结点。(1=

A.(00,01,10,11) B.(0,1,00,11) C.(0,10,110,111)D.(1,01,000,001) 二、判断题 1. 给定一棵树,可以找到唯一的一棵二叉树与之对应。 2.将一棵树转成二叉树,根结点没有左子树; 3. 在中序线索二叉树中,每一非空的线索均指向其祖先结点。 4. 一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和。 5.当一棵具有n个叶子结点的二叉树的WPL值为最小时,称其树为Huffman树,且其二叉树的形状必是唯一的。 三、填空题 1.一棵树T中,包括一个度为1的结点,两个度为2的结点,三个度为3的结点,四个度为4的结点和若干叶子结点,则T的叶结点数为___ ___。【山东大学 2001 三、2 (2分)】

第6章_数据结构习题题目及答案_树和二叉树_参考答案

一、基础知识题 6.1设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,求树T中的叶子数。 【解答】设度为m的树中度为0,1,2,…,m的结点数分别为n0, n1, n2,…, nm,结点总数为n,分枝数为B,则下面二式成立 n= n0+n1+n2+…+nm (1) n=B+1= n1+2n2 +…+mnm+1 (2) 由(1)和(2)得叶子结点数n0=1+ 即: n0=1+(1-1)*4+(2-1)*2+(3-1)*1+(4-1)*1=8 6.2一棵完全二叉树上有1001个结点,求叶子结点的个数。 【解答】因为在任意二叉树中度为2 的结点数n2和叶子结点数n0有如下关系:n2=n0-1,所以设二叉树的结点数为n, 度为1的结点数为n1,则 n= n0+ n1+ n2 n=2n0+n1-1 1002=2n0+n1 由于在完全二叉树中,度为1的结点数n1至多为1,叶子数n0是整数。本题中度为1的结点数n1只能是0,故叶子结点的个数n0为501. 注:解本题时要使用以上公式,不要先判断完全二叉树高10,前9层是满二叉树,第10层都是叶子,……。虽然解法也对,但步骤多且复杂,极易出错。 6.3 一棵124个叶结点的完全二叉树,最多有多少个结点。 【解答】由公式n=2n0+n1-1,当n1为1时,结点数达到最多248个。 6.4.一棵完全二叉树有500个结点,请问该完全二叉树有多少个叶子结点?有多少个度为1的结点?有多少个度为2的结点?如果完全二叉树有501个结点,结果如何?请写出推导过程。

【解答】由公式n=2n0+n1-1,带入具体数得,500=2n0+n1-1,叶子数是整数,度为1的结点数只能为1,故叶子数为250,度为2的结点数是249。 若完全二叉树有501个结点,则叶子数251,度为2的结点数是250,度为1的结点数为0。 6.5 某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数是多少。 【解答】由公式n=2n0+n1-1,得该二叉树的总结点数是69。 6.6 求一棵具有1025个结点的二叉树的高h。 【解答】该二叉树最高为1025(只有一个叶子结点),最低高为11。因为210-1<1025<211-1,故1025个结点的二叉树最低高为11。 6.7 一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有多少结点。 【解答】第一层只一个根结点,其余各层都两个结点,这棵二叉树最少结点数是2h-1。 6.8将有关二叉树的概念推广到三叉树,则一棵有244个结点的完全三叉树的高度是多少。 【解答】设含n个结点的完全三叉树的高度为h,则有

严蔚敏《数据结构习题集》答案第六章树和二叉树文库

第六章树和二叉树 int Is_Descendant_C(int u,int v) int Bitree_Sim(Bitree B1,Bitree B2)次根据栈顶元素的mark域值决定做何种动作. typedef struct { int data; EBTNode *lchild; EBTNode *rchild; EBTNode *parent; enum {0,1,2} mark; } EBTNode,EBitree; typedef struct { int data; PBTNode *lchild; PBTNode *rchild; PBTNode *parent; } PBTNode,PBitree; . scanf("%d",&k); c=0; . } void LayerOrder(Bitree T)相比,作了一个修改,不管当前结点是否有左右孩子,都入队列.这样当树为完全二叉树时,遍历时得到是一个连续的不包含空指针的序列.反之,则序列中会含有空指针. Status CreateBitree_Triplet(Bitree &T)意:为了能用一个统一的公式计算子孙数目,所以当T为空指针时,要返回-1而不是0. BTNode *PreOrder_Next(BTNode *p)不是哪儿理解错了 Bitree PostOrder_Next(Bitree p)irstchild) return 1; for(sd=1,p=[T].firstchild;p;p=p->next) if((d=SubDepth(p->child))>sd) sd=d; return sd+1; }arent) dep++; . Build_Sub(1,n,1,n); . } 分析:本算法利用了这样一个性质,即一棵子树在前序和中序序列中所占的位置总是连续的.因此,就可以用起始下标和终止下标来确定一棵子树.Pre_Start,Pre_End,In_Start和

相关主题