ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:90.69KB ,
资源ID:22115471      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22115471.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(习题Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

习题Word下载.docx

1、 )的二叉树。A、空或只有一个结点 B、高度等于其结点数C、任一结点无左孩子 D、任意结点无右孩子10、设二叉树有n个结点,则其深度为( A、n-1 B、n C、 D、无法确定11、对含有( )个结点的非空二叉树,采用任何一种遍历方式,其结点访问序列均相同。A、1 B、2 C、3 D、不存在这样的二叉树12、以下说法错误的是( A、哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。B、若一个二叉树的树叶是某子树的中序遍历序列中的第一个结点,则它必是该子树的后序遍历序列中的第一个结点。C、已知二叉树的前序遍历和后序遍历序列并不能惟一地确定这棵树,因为不知道树的根结点是哪一个。D、在前

2、序遍历二叉树的序列中,任何结点的子树的所有结点都是直接跟在该结点的之后。13、一棵完全二叉树上有1001个结点,其叶子结点的个数是( )。A、250 B、 500 C、501 D、50514、以下说法错误的是( A、一般在哈夫曼树中,权值越大的叶子离根结点越近。B、哈夫曼树中没有度数为1的分支结点。C、若初始森林中共有n棵二叉树,最终求得的哈夫曼树共有2n-1个结点。D、若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下一棵最终的哈夫曼树。15、下列说法正确的是( A、树的先根遍历序列与其对应的二叉树的先根遍历序列相同。B、树的先根遍历序列与其对应的二叉树的后根遍历序列相同。C、树的后根

3、遍历序列与其对应的二叉树的先根遍历序列相同。D、树的后根遍历序列与其对应的二叉树的后根遍历序列相同。16、设森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,根结点的右子树上有( A、n1-1 B、n1 C、1+n2+n3 D、n2+n3+n417、森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林T转换成一棵二叉树后,根结点的左子树上有( 18、树使用孩子链表的存储结构的优点之一是( )比较方便。A、判断两个指定结点是不是兄弟B、找指定结点的双亲C、判断指定结点在第几层D、计算指定结点的度数

4、二、解答题1、已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,.,nm个度为m的结点,问该树中有多少片叶子?2、假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树边的集合为(i,m),(i,n),(e,i),(b,e),(b,d),(a,b),(g,j),(g,k),(c,g),(c,f),(h,l),(c,h),(a,c)用树形图表示法画出此树,并回答下列问题:(1)哪个结点是根结点? (2)哪些结点是叶结点?(3)哪个结点是g的双亲?(4)哪些结点是g的祖先?(5)哪些结点是g的孩子?(6)哪些结点是e的子孙?(7)哪些结点是e的兄弟?哪些结点是f的兄弟?

5、(8)结点b和n的层数各是多少?(9)树的深度是多少?(10)以结点c为根的子树的深度是多少?(11) 树的度数是多少?3、高度为h的完全二叉树至少有多少个结点?至多有多少个结点?4、在具有n个结点的k叉树(k=2)的k叉链表表示中,有多少个空指针?5、试找出分别满足下面条件的所有二叉树:(1)前序序列和中序序列相同;(2)中序序列和后序序列相同;(3)前序序列和后序序列相同;(4)前序、中序、后序序列均相同。6、画出以下所示各二叉树的二叉链表。7、分别写出上题所示各二叉树的前序、中序和后序序列。8、若二叉树中各结点的值均不相同,则由二叉树的前序序列和中序序列,或由其后序序列和中序序列均能唯一

6、地确定一棵二叉树,但由前序序列和后序序列却不一定能唯一地确定一棵二叉树。(1)已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和GDHBAECIF,请画出此二叉树。(2)已知一棵二叉树的在序序列和后序序列分别为BDCEAFHG和DECBHGFA,请画出此二叉树。9、试画出第6题所示的二叉树(d)的前序、中序和后序线索二叉树及相应的线索链表。10、在何种线索树中,线索对求指定结点在相应次序下的前驱和后继并无帮助?11、对如下所示的森林:(1)求各树的前序序列和后序序列;(2)求森林的前序序列和后序序列;(3)将此森林转换为相应的二叉树;(4)给出(a)所示树的以亲链表表示、孩子链表表示

7、、双亲孩子链表表示及孩子兄弟链表示等四种存储结构,并指出哪些存储结构易于求指定结点的祖先,哪些易于求指定结点的后代?12、画出如下所示的各二叉树所对应的森林。13、高度为h的严格二叉树至少有多少个结点?14、在什么样的情况下,等长编码是最优的前缀码?15、下述编码哪一组不是前缀码? 00,01,10,11,0,1,00,11,0,10,110,11116、假设用于通信的电文由字符集a,b,c,d,e,f,g,h中的字母构成,这8个字母在电文中出现的概率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。(1)为这8个字母设计哈夫曼编码。(2)若用这三位二进制数

8、(07)对这8个字母进行等长编码,则哈夫曼编码的平均码长是等长编码的百分之几?它使电文总长平均压缩多少?三、算法设计题1、以二叉链表为存储结构,分别写出求二叉树高度及宽度的算法,所谓宽度是指二叉树的各层上,具有结点数最多的那一层上的结点总数。2、以二叉链表为存储结构,写一算法对二叉树进行层次遍历。提示:应使用队列来保存各层的结点。3、以线索链表作为存储结构。分别写出在前序线索树中查找给定结点*p的前序后继,以及在后序线索树中查找 *p的后序前趋的算法。习题5 参考答案一、单项选择题1、D 2、B 3、C 4、C 5、D 6、B 7、D 8、D 9、B 10、D 11、A 12、C13、C 14

9、、D 15、A 16、D 17、A 18、D 1、解:设该树中的叶子数为n0个。该树中的总结点数为n个,则有: n=n0+n1+n2+nm另一方面,1度结点有一个孩子,2度结点有两个孩子,.,m度结点有m个孩子,故树中孩子结点总数是:nl+2n2+.+mnm,而树中只有根结点不是任何结点的孩子,故树中的结点总数又可表示为:n= nl+2n2+.+mnm +1 综合以上两个式子得到:n0=1+0n1+1n2+2n3+.+(m-1) nm即叶子结点数共有:1+0n1+1n2+2n3+.+(m-1) nm个。1、 解答:该树的树形图表示如下:(1)a是根结点。(2)d,f,j,k,l,m,n是叶结点

10、。(3)c是g的双亲。(4)a,c是g的祖先。(5)j,k是g的孩子。(6)i,m,n是e的子孙。(7)d是e的兄弟,g,h是f的兄弟。(8)结点b和n的层数各是2和5。(9)树的深度是5。(10)以结点c为根的子树的深度是3。(11) 树的度数是3。3、解:高度为h的完全二叉树至少有2h-1个结点,至多有2h-1个结点(也就是满二叉树)。4、解:n个结点的k叉树共有n*k个指针域,已使用的指针域为n-1,所以空指针的个数为:n(k-1)+1。5、答:(1) 前序序列和中序序列相同的二叉树是:空二叉树或每个结点都没有左子树的二叉树(右单支树)。(2) 中序序列和后序序列相同的二叉树是:空二叉树

11、或每个结点都没有右子树的二叉树(左单支树)。(3) 前序序列和后序序列相同的二叉树是:空二叉树或只有根结点的二叉树。(4) 前序、中序、后序序列均相同的二叉树:6、解:二叉树(a),(b)的二叉链表如下(c),(d)略):7、解:(a)前序序列:12345,中序序列:24531,后序序列:54321。(b)前序序列:13542,后序序列:(c)前序序列:12357864,中序序列:17583524,后序序列:78563421。(d)前序序列:124735689,中序序列:742153896,后序序列:742589631。8、解:(1)已知二叉树的前序序列为ABDGHCEFI和中序序列GDHBA

12、ECIF,则可以根据前序序列找到根结点为A,由此,通过中序序列可知它的两棵子树包分别含有GDHB和ECIF结点,又由前序序列可知B和C分别为两棵子树的根结点.以此类推可画出所有结点,该二叉树如下左图。(2)以同样的方法可画出该二叉树如上右图。9、答:前序线索二叉树:前序线索链表:NULL其它:略。10、答:分别在前序线索二叉树和后序线索二叉树中查找前驱和后继时,线索无帮助作用。11、解:(1) (a)的前序序列:ABCDEF 后序序列:BDEFCA (b)的前序序列:GHIJK 后序序列:IJKHG (c)的前序序列:LMPQRNO 后序序列:QRPMNOL(2) 此森林的前序序列: ABCD

13、EFGHIJKLMPQRNO 此森林的后序序列: BDEFCAIJKHGQRPMNOL(3) 森林转化为二叉树:(4) 略。12、解:13、答:所谓严格二叉树是指该树中没有度数为1的分支结点的二叉树。所以,高度为h的的严格二叉树至少有2h-1个结点;至多有2h-1个结点(即满二叉树)。14、答:在每个字符的使用概率相同的情况下,也即在哈夫曼树中每片叶子的权重相等的时候,等长编码是最优的前缀码。15、答:第二组不是前缀码。因为0,1分别是00和11的前缀。(前缀码是指该编码集中的任一编码不是其他编码的前缀)16、解:(1)哈夫曼编码根据哈夫曼树可得编码表:a:1001,b:01,c:10111,

14、d:1010,e:11,f:10110,g:00,h:1000。(2)用三位二进行数进行的等长编码平均长度为3,而根据哈夫曼树编码的平均码长为:4*0.07+2*0.19+5*0.02+4*0.06+2*0.32+5*0.03+2*0.21+4*0.10=2.612.61/3=0.87=87%其平均码长是等长码的87%。所以平均压缩率为13%。(1)根据递归定义,二叉树的高度为:当为空树时,高度为0;当只有一个结点时,高度为1;其他情况:高度为max(根的左子树高度,根的右子树高度)+1。int Height(BinTree T)int hl,hr;if(T)/非空树if(t-lchild=N

15、Ull)&(t-rchild=NULL)/只含一个根结点return 1;elsehl=height(t-lchild);/根的左子树高度hr=height(t-rchild);/根的右子树高度if (hl=hr)return hl+1;else return h2+1;else return 0;(2)要求二叉树的宽度的话,则可根据树的高度设置一个数组temp。tempi用于存放第i层上的结点数(即宽度)。在访问结点时,把相应计算该结点下一层的孩子数并存入相应数组元素中,遍历左子树后向上返回一层计算右子树的宽度,并取出最大的一个数组元素作为树的宽度。#define M 10 /假设二叉树最多

16、的层数int Width(BinTree T)int static nM;/向量存放各层结点数int static i=1;int static max=0;/最大宽度if(T)if(i=1) /若是访问根结点ni+; /第1层加1i+; /到第2层if(T-lchild)/若有左孩子则该层加1ni+;rchild)/若有右孩子则该层加1else /访问子树结点 /下一层结点数lchild)rchild)if(max/遍历左子树i-; /往上退一层Width(T-/遍历右子树return max;/算法结束2、答:#define M 100 /假设结点数最多为100typedef char D

17、ataType;/队列结点值类型typedef struct/定义一个队列int front;int rear;int count;DataType dataM;QBTree;static QBTree Q;/设一全局静态变量保存遍历结果void Levelorder(BinTree T)/层次遍历if(T)if(QueueEmpty(&Q) /根结点及子树结点入队EnQueue(&Q,T-data);if(T-lchild-rchild-else /子树结点入队EnQueue(&if(T- EnQueue(&Levelorder(T-算法如下:BinThrNode * SearchPostInPre(BinThrNode *p)/查找结点*p的前序后继if(p)if(p-rtag=Link)&(p-ltag=link)/当左、右都为孩子指针return p-lchild;/*p的前序后继为左孩子else return p-rchild;BinThrNode *SearchPreInPost(BinThrNode *p)/查找*p结点的后序前趋if(p-ltag=thread)|(p-rtag=thread)/当有左线索或无有孩子 return p-/*p的后续前趋为p-lchildelse return p-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1