您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第5章树和二叉树习题答案
1第6章树和二叉树一.选择题(1)由3个结点可以构造出多少种不同的二叉树?(D)A.2B.3C.4D.5(2)一棵完全二叉树上有1001个结点,其中叶子结点的个数是(D)。A.250B.500C.254D.501(3)一个具有1025个结点的二叉树的高h为(C)。A.11B.10C.11至1025之间D.10至1024之间(4)深度为h的满m叉树的第k层有(A)个结点。(1=k=h)A.mk-1B.mk-1C.mh-1D.mh-1(5)对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用(C)遍历实现编号。A.先序B.中序C.后序D.从根开始按层次遍历(6)若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用(D)遍历方法最合适。A.前序B.中序C.后序D.按层次(7)一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足(B)。A.所有的结点均无左孩子B.所有的结点均无右孩子C.只有一个叶子结点D.是任意一棵二叉树(8)某二叉树的前序序列和后序序列正好相反,则该二叉树一定是(C)的二叉树。A.空或只有一个结点B.任一结点无左子树C.高度等于其结点数D.任一结点无右子树(9)若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则X的前驱为(C)。A.X的双亲B.X的右子树中最左的结点C.X的左子树中最右结点D.X的左子树中最右叶结点(10)引入二叉线索树的目的是(A)。A.加快查找结点的前驱或后继的速度B.为了能在二叉树中方便的进行插入与删除C.为了能方便的找到双亲D.使二叉树的遍历结果唯一二.简答题(1)试找出满足下列条件的二叉树①先序序列与后序序列相同②中序序列与后序序列相同③先序序列与中序序列相同④中序序列与层次遍历序列相同答:(1)若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树(2)若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树.(3)若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树.(4)若中序序列与层次遍历序列相同,则或为空树,或为任一结点至多只有右子树的2二叉树2.试写出如图所示的二叉树分别按先序、中序、后序遍历时得到的结点序列。DLR:ABDFJGKCEHILMLDR:BFJDGKACHELIMLRD:JFKGDBHLMIECA(3)假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。①试为这8个字母设计赫夫曼编码。②试设计另一种由二进制表示的等长编码方案。③对于上述实例,比较两种方案的优缺点。6、解:方案1;哈夫曼编码先将概率放大100倍,以方便构造哈夫曼树。w={7,19,2,6,32,3,21,10},按哈夫曼规则:(100)(40)(60)192132(28)17(11)7106(5)23方案比较:方案1的WPL=2*(0.19+0.32+0.21)+4*(0.07+0.06+0.10)+5*(0.02+0.03)=1.44+0.92+0.25=2.61方案2的WPL=3(0.19+0.32+0.21+0.07+0.06+0.10+0.02+0.03)=3结论:哈夫曼编码优于等长二进制编码字母编号对应编码出现频率10000.0720010.1930100.0240110.0651000.3261010.0371100.2181110.10字母编号对应编码出现频率111000.072000.193111100.02411100.065100.326111110.037010.21811010.10010101192132010101710601233(4)已知下列字符A、B、C、D、E、F、G的权值分别为3、12、7、4、2、8,11,试填写出其对应哈夫曼树HT的存储结构的初态和终态。初态:终态(5)给定二叉树的两种遍历序列,分别是:前序遍历序列:D,A,C,E,B,H,F,G,I;weightparentlchildrchild13000212000370004400052000680007110008000900010000110001200013000weightparentlchildrchild13800212120037100044900528006810007111100859519911481015123611201397122713210134701112方法是:由前序先确定root,由中序可确定root的左、右子树。然后由其左子树的元素集合和右子树的集合对应前序遍历序列中的元素集合,可继续确定root的左右孩子。将他们分别作为新的root,不断递归,则所有元素都将被唯一确定,问题得解。4中序遍历序列:D,C,B,E,H,A,G,I,F,试画出二叉树B。DACEFGIBH(6)给定如图所示二叉树T,请画出与其对应的中序线索二叉树。2825334060085455三.算法设计题2.以二叉链表作为二叉树的存储结构,编写以下算法:(1)写出中序遍历二叉树的递归算法;(1)统计二叉树的结点个数。答:(1)intinOrderTraverse(BiTreeT){//初始条件:二叉树T存在,中序递归遍历T;if(T==NULL)return1;if(T!=NULL)//T不空{inOrdTraverse(T-lchild);//中序遍历左子树printf(%5c,T-data);//访问根结点inOrdTraverse(T-rchild);//中序遍历右子树}}(2)intcountND(BiTreeT){intn=0,k=0,m=0;if(T==NULL)return0;else{if(T-lchild!=NULL)k=countND(T-lchild);//后序遍历左子树if(T-rchild!=NULL)m=countND(T-rchild);//再后序遍历右子树n=m+k+1;}returnn;}28253340600854552822552525252540555560330854NILNIL
本文标题:第5章树和二叉树习题答案
链接地址:https://www.777doc.com/doc-2196370 .html