版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、填空题.不相交的树的聚集称之为 森林。.从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是树可采用孩子-兄弟链表(二叉链表)做存储结构,目的是利用二叉树的已有算法解决树的有关问题。.深度为k的完全二叉树至少有2k-1个结点。至多有2k-1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是2k-2+1。.在一棵二叉树中,度为零的结点的个数为n。,度为2的结点的个数为n2,则有n0=n2+1。.一棵二叉树的第i(iN1)层最多有2i-1个结点;一棵有n(n>0)个结点的满二叉树共有(n+1)/2个叶子和(n-1)/2个非终端结点。.现有按中序遍历二叉树的结果为abc,问有5种不同形态的二叉树可以得到这一遍历结果。.哈夫曼树是带权路径最小的二叉树。.前缀编码是指任一个字符的编码都不是 另一个字符编码的前缀的一种编码方法,是设计不等长编码的前提。.以给定的数据集合{4,5,6,7,10,12,18}为结点权值构造的Huffman树的加权路径长度是 165 。.树被定义为连通而不具有 回路的(无向)图。.若一棵根树的每个结点最多只有两个孩子,且孩子又有左、右之分,次序不能颠倒,则称此根树为 二叉树。.高度为k,且有个结点的二叉树称为二叉树。2k-1 满.带权路径长度最小的二叉树称为最优二叉树,它又被称为树。Huffman.在一棵根树中,树根是为零的结点,而为零的结点是_结点。入度出度树叶.Huffman树中,结点的带权路径长度是指由到之间的路径长度与结点权值的乘积。结点树根.满二叉树是指高度为k,且有个结点的二叉树。二叉树的
每一层i上,最多有个结点。2k-1 2i-i二、单选题.具有10个叶结点的二叉树中有(B)个度为2的结点。(A)8 (B)9 (C)10 (D)11.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用_(3)次序的遍历实现编号。(1)先序 (2)中序(3)后序 (4)从根开始按层遍历.由2、3、4、7作为结点权值构造的树的加权路径长度—BTOC\o"1-5"\h\zA、 33 B、 30C、 36 D、 40.高度为6的满二叉树,总共有的结点数是B。A、 15 B、 63C、 20 D、 25.下面描述根树转换成二叉树的特性中,正确的是—C。A、根树转换成的二叉树是唯一的,二叉树的根结点有左、右孩子。B、根树转换成的二叉树是不唯一的,二叉树的根结点只有左孩子。C、根树转换成的二叉树是唯一的,二叉树的根结点只有左孩子。D、根树转换成的二叉树是不唯一的,二叉树的根结点有左、右孩子。.如图所示的4棵二叉树中,不是完全二叉树的是。TOC\o"1-5"\h\zA、 O B、OOO OOOOOO OOD、OOOD、OOOOOOOOabdgcefh,中序遍历的结点序列是dgbaechf,则其后序遍历的结点序列是D。B、gdbecfhaAB、gdbecfhaC、bdgaechfDC、bdgaechf.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK,按后序遍历所得到的结点序列为DCEGBFHKJIA,按先序遍历所得到的结点序列为—ABCDGEIHFJK。.设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是C。A、n在m右方 B、n是m祖先C、n在m左方 D、n是m子孙.二叉树第i层结点的结点个数最多是(设根的层数为1):AA)2i-1 B)2i-1 C)2i D)2i-1.树的后根遍历序列等同于该树对应的二叉树的:』A)先序序列 B)中序序列 C)后序序列.树最适合用来表示工―。A.有序数据元素 B.无序数据元素C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法_B―。A.正确 B.错误.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为 B个。A.15 B.16 C.17D.47.按照二叉树的定义,具有3个结点的不同形状的二叉树有_C__种。TOC\o"1-5"\h\zA.3 B.4 C.5 D.6.深度为5的二叉树至多有_C__个结点。A.16 B.32 C.31 D.10.对一个满二叉树,m个树叶,n个结点,深度为h,则_D__。A.n=h+m B.h+m=2n C.m=h-1 D.n=2h-1.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序A.如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为C。A.uwvts B.vwuts C.wuvts D.wutsv.二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法__A__。A.正确 B.错误.在一非空二叉树的中序遍历序列中,根结点的右边A。A.只有右子树上的所有结点 B.只有右子树上的部分结点C.只有左子树上的部分结点 D.只有左子树上的所有结点.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是D。A.acbed B.decab C.deabc D.cedba.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用_C存储结构。A.二叉链表B.广义表存储结构C.三叉链表D.顺序存储结构.在线索化二叉树中,t所指结点没有左子树的充要条件是B。A.t—>left=NULL B.t—>ltag=1C.t—>ltag=1且t—>left=NULLD.以上都不对.二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索,这种说法_B。A.正确 B.错误.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。这里,我们把由树转化得到的二叉树叫做这棵数对应的二叉树。结论A是正确的。
统计二叉树中叶子结点的个数(先序遍历)typedefstructBiTnode{ElemTypedata;BiTnode*rchild;*lchild;}BiTnode,*BiTree;VoidCountLeaf(BiTreeT,int&count){if(T){if((!T->Lchild)&&(!T->Rchild))Count++;//计数器加1CountLeaf(T->Lchild,count);CountLeaf(T->Rchild,count);}}.43交换所有结点的左右子树typedefstructBiTnode{ElemTypedata;BiTnode*rchild;*lchild;}BiTnode,*BiTree;voidBitree_Revolute(BitreeT){if(T)T->lchild<->T->rchild;/交换左右子树if(T->lchild)Bitree_Revolute(T->lchild);if(T->rchild)Bitree_Revolute(T->rchild);//左右子树再分别交换各自的左右子树}//Bitree_Revolute6-1列出右图所示二叉树的叶结点、分支结点和每个结点的层次。【解答】二叉树的叶结点有⑥、⑧、⑨。分支结点有①、②、③、④、⑤、⑦。6-2使用(1)顺序表示和(2)二叉链表表示法,分别画出右图所示二叉树的存储表示。6-3请画出右图所示的树所对应的二叉树。【解答】结点①的层次为1;结点②、③的层次为6-2使用(1)顺序表示和(2)二叉链表表示法,分别画出右图所示二叉树的存储表示。6-3请画出右图所示的树所对应的二叉树。【解答】对应二叉树对应二叉树6-4已知一棵二叉树的前序遍历的结果是ABECDFGHIJ,中序遍历的结果是EBCDAFHIGJ,试画出这棵二叉树。【解答】当前序序列为ABECDFGHIJ,中序序列为EBCDAFHIGJ时,逐步形成二叉树的过程如下图所示:6-5给定权值集合{15,03,14,02,06,09,16,17},构造相应的霍夫曼树,并计算它的带权外部路径长度。【解答】F:(工)④(4)⑥66(09)1(.16)1⑥(I)(idS5"j43639SSG71(IV)116.;必](W)1Q &6)F:(工)④(4)⑥66(09)1(.16)1⑥(I)(idS5"j43639SSG71(IV)116.;必](W)1Q &6)Qan)(V)0(加)此树的带权路径长度WPL=229。6-6假定用于通信的电文仅由8个字母cl,c2,c3,c4,c5,c6,c7,c8组成,各字母在电文中出现的频率分别为5,25,3,6,10,11,36,4。试为这8个字母设计不等长Huffman编码,并给出该电文的总码数。【解答】已知字母集{cl,c2,c3,c4,c5,c6,c7,c8},频率{5,25,3,6,10,11,36,4},则Huffman编码为c1c2c3c4c5c6c7c801101000000111001010110001电文总码数为4*5+2*25+4*3+4*6+3*10+3*11+2*36+4*4=257第5章树和二叉树练习题答案一、下面是有关二叉树的叙述,请判断正误V)1.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n-1个非空指针域。X)2.二叉树中每个结点的两棵子树的高度差等于1。V)3.二叉树中每个结点的两棵子树是有序的。X)4.二叉树中每个结点有两棵非空子树或有两棵空子树。X)5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。 (应当是二叉排序树的特点)X二叉树中所有结点个数是2k-i-1,其中k是树的深度。(应2k-1)X)7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。X)8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i-1个结点。(应2i-i)V)9用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。(正确。用二叉链表存储包含n个结点的二叉树,结点共有2n个链域。由于二叉树中,除根结点外,每一个结点有且仅有一个双亲,所以只有n-1个结点的链域存放指向非空子女结点的指针,还有n+1个空指针。)即有后继链接的指针仅n-1个。(V)10.具有12个结点的完全二叉树有5个度为2的结点。二、填空.由3个结点所构成的二叉树有 5种形态。.一棵深度为6的满二叉树有n1+n2=0+n2=n0-1=31■个分支结点和26-1=32个叶子。注:满二叉树没有度为1的结点,所以分支结点数就是二度结点数。.一棵具有257个结点的完全二叉树,它的深度为—9。(注:用L10g2(n)」+1=L8.xx」+1=9.设一棵完全二叉树有700个结点,则共有350个叶子结点。.设一棵完全二叉树具有1000个结点,则此完全二叉树有500个叶子结点,有499—个度为2的结点,有_1_个结点只有非空左子树,有一0一个结点只有非空右子树。答:最快方法:用叶子数=[n/2]=500,n广n0-1=499。另外,最后一结点为2i属于左叶子,右叶子是空的,所以有1个非空左子树。完全二叉树的特点决定不可能有左空右不空的情况,所以非空右子树数=0..一棵含有n个结点的k叉树,可能达到的最大深度为j一,最小深度为_2.。答:当k=1(单叉树)时应该最深,深度=n(层)当k=n-1(n-1叉树)时应该最浅,深度=2(层),但不包括n=0或1时的特例情况。.二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。因而二叉树的遍历次序有六种。最常用的是三种:前序法(即按NLR次序),后序法(即按_LRJN次序)和中序法(也称对称序法,即按LNR次序)。这三种方法相互之间有关联。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是1^86。西,则它的后序序列必是解:法1:先由已知条件画图,再后序遍历得到结果;法2:不画图也能快速得出后序序列,只要找到根的位置特征。由前序先确定root,由中序先确定左子树。例如,前序遍历BEFCGDH中,根结点在最前面,是B;则后序遍历中B一定在最后面。法3:递归计算。如B在前序序列中第一,中序中在中间(可知左右子树上有哪些元素),则在后序中必为最后。如法对B的左右子树同样处理,则问题得解。II
.中序遍历的递归算法平均空间复杂度为—W一。答:即递归最大嵌套层数,即栈的占用单元数。.用5个权值{3,2,4,5,1}构造的哈夫曼(Huffman)树的带权路径长度是—33_解:先构造哈夫曼树,得到各叶子的路径长度之后便可求出WPL=(4+5+3)X2+(1+2)X3=33/<15)(9f :6) (注:两个合并值先后不同会导致编码不同,即哈夫曼编码不唯一)/5 /(3) (注:合并值应排在叶子值之后)1/ 2三、单项选择题C)1.不含任何结点的空树。(A)是一棵树; (B)是一棵二叉树;(C)是一棵树也是一棵二叉树; (D)既不是树也不是二叉树C)2.二叉树是非线性数据结构,所以。(A)它不能用顺序存储结构存储; (B)它不能用链式存储结构存储;(C)顺序存储结构和链式存储结构都能存储;(D)顺序存储结构和链式存储结构都不能使用C)3.具有n(n>0)个结点的完全二叉树的深度为 。(A)「log2(n)](B)Llog2(n)」(C)Llog2(n)」+1 (D)「log2(n)+1]A)4.把一棵树转换为二叉树后,这棵二叉树的形态是 。(A)唯一的 (B)有多种(C)有多种,但根结点都没有左孩子 (D)有多种,但根结点都没有右孩子四、简答题.设如下图所示的二叉树B的存储结构为二叉链表,root为根指针,中lchild,rchild分别为指向左右孩子的指针,data为字符型,root为根指针,试回答下列问题:(1)对下列二叉树B,执行下列算法traversal(root),试指出其输出结果;(2)假定二叉树B共有n个结点,试分析算法traversal(root)的时间复杂度。(共8分)二叉树B解:这是“先根再左再根再右”,比前序遍历多打印各结点一次,输出结果为:ABCCEEBADFFDGG二叉树B特点:①每个结点肯定都会被打印两次;②但出现的顺序不同,其规律是:凡是有左子树的结点,必间隔左子树的全部结点后再重复出现;如A,B,D等结点。反之马上就会重复出现。如C,E,F,G等结点。结点结构为:(lchild,data,rchild)。其C结点结构为:(lchild,data,rchild)。其C的结点类型定义如下:structnode{chardata;structnode*lchild,rchild;};C算法如下:voidtraversal(structnode*root){if(root){printf(“%c”,root->data);traversal(root->lchild);printf(“%c”,root->data);traversal(root->rchild);}}.给定二叉树的两种遍历序列,分别是:前序遍历序列lj:D,A,C,E,B,H,F,G,I;中序遍历序列U:D,C,B,E,H,A,G,I,F,试画出二叉树B,并简述由任意二叉树B的前序遍历序列和中序遍历序列求二叉树B的思想方法。
解:方法是:由前序先确定root,由中序可确定root的左、右子树。然后由其左子树的元素集合和右子树的集合对应前序遍历序列中的元素集合,可继续确定root的左右孩子。将他们分别作为新的root,不断递归,则所有元素都将被唯一确定,问题得解。.给定如图所示二叉树T,请画出与其对应的中序线索二叉树。解:要遵循中序遍历的轨迹来画出每个前驱和后继。中序遍历序列:5540256028083354NA55.试写出如图所示的二叉树分别按先序、中序、后序遍历时得到的结点序列。答:.给定如图所示二叉树T,请画出与其对应的中序线索二叉树。解:要遵循中序遍历的轨迹来画出每个前驱和后继。中序遍历序列:5540256028083354NA55.试写出如图所示的二叉树分别按先序、中序、后序遍历时得到的结点序列。答:DLR:ABDFJGKCEHILMLDR:BFJDGKACHELIMLRD:JFKGDBHLMIECA.假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.320.03,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工作未及时完成奖惩制度
- 监理公司安全奖惩制度
- 门诊护士工作奖惩制度
- 安装工程质量奖惩制度
- 儿童摄影影楼奖惩制度
- 箱包厂安全生产奖惩制度
- 基本公共卫生奖惩制度
- 公司消防奖惩制度范本
- 产业发展队伍奖惩制度
- 业务员销售回款奖惩制度
- 2026年安徽粮食工程职业学院单招(计算机)测试模拟题库附答案
- 肥胖课件之针灸治疗
- “十五五规划纲要”解读:双碳引领绿色发展
- 建筑施工安全管理细则范本
- 海信集团AI面试求职者常见疑惑解答
- 巴比门店加盟协议书
- DB11∕T 1823-2021 山区水土保持生态修复与监测技术指南
- 中国航空油料招聘笔试题及答案
- 高考化学湖北长江作业本 化学人教选择性必修2 04 课后素养评价(四)
- 2026年苏州工业职业技术学院单招职业适应性测试题库及答案1套
- 黑色三分钟1-12部事故类型及直接原因分析(新)
评论
0/150
提交评论