当前位置:文档之家› 第6章树和二叉树作业

第6章树和二叉树作业

第6章树和二叉树作业
第6章树和二叉树作业

第六章树和二叉树 1

一、选择题

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. 在下述结论中,正确的是()

①只有一个结点的二叉树的度为0;

②二叉树的度为2;

③二叉树的左右子树可任意交换;

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

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

3. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为()

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

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

A.m-n B.m-n-1 C.n+1 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.有关二叉树下列说法正确的是()

A.二叉树的度为2 B.一棵二叉树的度可以小于2

C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2

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

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

9. 具有10个叶结点的二叉树中有()个度为2的结点。

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

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

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

11. 设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()

A、空或只有一个结点

B、完全二叉树

C、二叉排序树

D、高度等于其结点数

12. 已知一棵有2011个结点的树,其叶结点个数为116,该树对应的二叉树无右孩子的结点个数为()

A.115 B.116 C.1895 D.l896

二、判断题

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

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

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

4. 二叉树以后序遍历序列与前序遍历序列反映的同样的信息。

5. 二叉树的遍历结果不是唯一的。

6. 若一个树叶是某二叉树子树的前序遍历序列中的最后一个结点,则它必定是该子树的前序中历序列中的最后一个结点

7. 已知一棵二叉树的后序和前序序列,可以唯一确定这个二叉树

三、填空题

1.二叉树由______________,_____________,_____________三个基本单元组成。

2.在二叉树中,指针p所指结点为叶子结点的条件是__________________。

3. 二叉树中某一结点左子树的深度减去右子树的深度称为该结点的_____________。

4. 深度为k的完全二叉树至少有_____________个结点,至多有_____________个结点。

5. 在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是_____________。

6. 设高度为h 的二叉树上只有度为0 和度为2 的节点,问该二叉树的节点数可能的最大值为_____________,最小值为_____________。

7. 一棵共有n个结点的树,其中所有分支结点的度均为K,则该树中叶子结点的个数为_____________。

8.一棵完全二叉树有200 个结点,则度为1 的结点有_____________个。度为0

的结点有_____________个。度为2 的结点有_____________个。

四、应用题

1. 任意一个有n个结点的二叉树,已知它有m个叶子结点,试证明非叶子结点有(m-1)个度为2,其余度为1。

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

3. 试证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如前序abc,后序bca,对称序bac。

4. 由二叉树的中序序列及前序序列能唯一的建立二叉树,试问中序序列及后序序列是否也能唯一的建立二叉树,不能则说明理由,若能对中序序列DBEAFGC 和后序序列DEBGFCA构造二叉树。

五、算法设计题

1. 二叉树采用二叉链表存储:

(1)写一个建立二叉树的算法。

(2)编写计算整个二叉树高度的算法(二叉树的高度也叫二叉树的深度)。(3)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。

(4)写一个判别给定的二叉树是否是完全二叉树的算法。

完全二叉树定义为:深度为K,具有N个结点的二叉树的每个结点都与深度为K 的满二叉树中编号从1至N的结点一一对应。此题以此定义为准。

2. 在二叉树中查找值为x的结点,试编写算法(用C语言)打印值为x的结点的所有祖先,假设值为x的结点不多于一个,最后试分析该算法的时间复杂度。

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