《树和二叉树习题及答案》由会员分享,可在线阅读,更多相关《树和二叉树习题及答案(7页珍藏版)》请在金锄头文库上搜索。
1、一、 填空题1. 不相交的树的聚集称之为 森林 。2. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是_树可采用孩子-兄弟链表(二叉链表)做存储结构,目的是利用二叉树的已有算法解决树的有关问题。3. 深度为k的完全二叉树至少有2 k-1个结点。至多有2 k-1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是2 k-2+1。4. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为 n 2,则有n0= n2+1。5. 一棵二叉树的第i(i1)层最多有2 i-1个结点;一棵有n(n0)个结点的满二叉树共有(n+1)/2个叶
2、子和(n-1) /2个非终端结点。6. 现有按中序遍历二叉树的结果为abc,问有5种不同形态的二叉树可以得到这一遍历结果。7. 哈夫曼树 是带权路径最小的二叉树。 8. 前缀编码是指任一个字符的编码都 不是 另一个字符编码的前缀的一种编码方法,是设计不等长编码的前提。9. 以给定的数据集合4,5,6,7,10,12,18为结点权值构造的Huffman树的加权路径长度是 165 。10. 树被定义为连通而不具有 回路 的(无向)图。11. 若一棵根树的每个结点最多只有 两个 孩子,且孩子又有 左、右 之分,次序不能颠倒,则称此根树为 二叉树 。12. 高度为k,且有 个结点的二叉树称为 二叉树。
3、 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开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其
4、左孩子的编号小于其右孩子的编号,则可采用_(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、根树转换成的二叉树是不唯一的,二
5、叉树的根结点有左、右孩子。6. 如图所示的4棵二叉树中,不是完全二叉树的是 。 A、 B、 C、 D、 C7.某二叉树先序遍历的结点序列是abdgcefh,中序遍历的结点序列是dgbaechf,则其后序遍历的结点序列是 D 。 A、bdgcefha B、gdbecfha C、bdgaechf D、gdbehfca8. 已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK, 按后序遍历所得到的结点序列为DCEGBFHKJIA, 按先序遍历所得到的结点序列为 ABCDGEIHFJK 。9. 设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是 C 。 A、n在m右方 B、n是m
6、祖先 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 个。 A15
7、B16 C17 D4715. 按照二叉树的定义,具有3个结点的不同形状的二叉树有_C_种。 A. 3 B. 4 C. 5 D. 616. 深度为5的二叉树至多有_C_个结点。 A. 16 B. 32 C. 31 D. 1017. 对一个满二叉树,m个树叶,n个结点,深度为h,则_D_ 。 A. n=h+m B. h+m=2n C. m=h-1 D. n=2 h-118. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序_A_。 A.不发生改变 B.发生改变 C.不能确定 D.以上都不对19. 如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为_C
8、_。 A. uwvts B. vwuts C. wuvts D. wutsv20. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法_A_。 A. 正确 B. 错误21. 在一非空二叉树的中序遍历序列中,根结点的右边_A_。 A. 只有右子树上的所有结点 B. 只有右子树上的部分结点 C. 只有左子树上的部分结点 D. 只有左子树上的所有结点22. 已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是_D_。 A. acbed B. decab C. deabc D. cedba23. 实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳
9、方案是二叉树采用_C_存储结构。A. 二叉链表B. 广义表存储结构 C. 三叉链表D. 顺序存储结构24. 在线索化二叉树中,t所指结点没有左子树的充要条件是_B_。 A. tleft=NULL B. tltag=1 C. tltag=1且tleft=NULL D. 以上都不对25. 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法_B_。 A. 正确 B. 错误26. 树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。结论_A_是正确的。 A.树的先根遍历序列与其对应
10、的二叉树的先序遍历序列相同 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); .43交换所有结点的左右子树typedef struct BiTnode ElemType data; BiTnode *rchild;*lchild; BiTnode,*BiTree; void Bitree_Revolute(Bitree T)if(T) T-lchildT-rchild; /交换左右子树if(T-lchild) Bitree_Revolute(T-lchild);if(T-rchild) Bitre