当前位置:文档之家› 【免费下载】第六章树和二叉树习题及答案

【免费下载】第六章树和二叉树习题及答案

一、填空题1. 不相交的树的聚集称之为 森林 。2. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本

目的是_树可采用孩子-兄弟链表(二叉链表)做存储结构,目的

是利用二叉树的已有算法解决树的有关问题。3. 深度为k 的完全二叉树至少有 2 k-1个结点。至多有 2 k -1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是 2 k-2+1。4. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为 n 2,则有n 0= 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)112. 对二叉树的结点从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 、 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

C 、 ○

D 、 ○ ○ ○ ○ ○ ○ ○ ○ ○

C

7.某二叉树先序遍历的结点序列是abdgcefh ,中序遍历的结点序列是dgbaechf ,则其后序遍历的结点序列是 D 。 A 、bdgcefha B 、gdbecfha C 、bdgaechf D 、gdbehfca 8. 已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK , 按后序遍历所得到的结点序列为DCEGBFHKJIA , 按先序遍历所得到的结点序列为 ABCDGEIHFJK 。9. 设n ,m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是 C 。 A 、n 在m 右方 B 、n 是m 祖先 C 、n 在m 左方 D 、n 是m 子孙10. 二叉树第i 层结点的结点个数最多是(设根的层数为1) :A A )2i-1 B )2i -1 C )2i D ) 2i-1

11. 树的后根遍历序列等同于该树对应的二叉树的: B

A )先序序列

B )中序序列

C )后序序列

12. 树最适合用来表示_C___。

A. 有序数据元素

B. 无序数据元素

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

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

13. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种须同制造要进行

说法_B___。

A. 正确

B. 错误

14. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为 B 个。

A.15 B.16 C.17 D.47

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

A. 3

B. 4

C. 5

D. 6

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

A. 16

B. 32

C. 31

D. 10

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

A. n=h+m

B. h+m=2n

C. m=h-1

D. n=2 h-1

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

A.不发生改变

B.发生改变

C.不能确定

D.以上都不对

19. 如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为__C__。

A. uwvts

B. vwuts

C. wuvts

D. wutsv

20. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法__A__。

A. 正确

B. 错误

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

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

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

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

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

22. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是__D__。

A. acbed

B. decab

C. deabc

D. cedba

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

A. 二叉链表

B. 广义表存储结构

C. 三叉链表

D. 顺序存储结构

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

A. t—>left=NULL

B. t—>ltag=1

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

D. 以上都不对

25. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法_B___。

A. 正确

B. 错误

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

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

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

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

D.以上都不对

6.42统计二叉树中叶子结点的个数(先序遍历)

typedef struct BiTnode{

ElemType data;

BiTnode*rchild;*lchild;

}BiTnode,*BiTree;

Void CountLeaf(BiTree T,int&count){

if(T){

if((!T->lchild)&&(!T->rchild))

Count++;//计数器加1

CountLeaf(T->Lchild,count);

CountLeaf(T->Rchild,count);

}

}

6.43交换所有结点的左右子树

typedef struct BiTnode{

ElemType data;

BiTnode *rchild;*lchild;

} BiTnode,*BiTree;

void Bitree_Revolute(Bitree T)

{

if(T)

T->lchild<->T->rchild; //交换左右子树

if(T->lchild) Bitree_Revolute(T->lchild);

if(T->rchild) Bitree_Revolute(T->rchild);

//左右子树再分别交换各自的左右子树}//Bitree_Revolute

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