版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人资料整理仅限学习使用第六章习题.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。.对题1所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。.已知一棵度为k的树中有ni个度为1的结点,n2个度为2的结点,…・;•nk个度为k的结点,则该树中有多少个叶子结点并证明之。.假设一棵二叉树的先序序列为EBADCFHGIKJ中序序列为ABCDEFGHIJK请画出该二叉树。.已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?.给出满足下列条件的所有二叉树:①前序和后序相同②中序和后序相同③前序和后序相同.n个结点的K叉树,若用具有k个child域的等长链结点存储树的一个结点,则空的Child域有多少个?.画出与下列已知序列对应的树T:树的先根次序访问序列为GFKDAIEBCHJ树的后根次序访问序列为DIAEKFCJHBG.假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为:0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10请为这8个字母设计哈夫曼编码。.已知二叉树采用二叉链表存放,要求返回二叉树T的后序序列中的第一个结点指针,是否可不用递归且不用栈来完成?请简述原因..画出和下列树对应的二叉树:个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用©©.已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。.编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。.分别写函数完成:在先序线索二叉树T中,查找给定结点*p在先序序列中的后继。在后序线索二叉树T中,查找给定结点*p在后序序列中的前驱。.分别写出算法,实现在中序线索二叉树中查找给定结点 *p在中序序列中的前驱与后继。.编写算法,对一棵以孩子-兄弟链表表示的树统计其叶子的个数。.对以孩子-兄弟链表表示的树编写计算树的深度的算法。.已知二叉树按照二叉链表方式存储,利用栈的基本操作写出后序遍历非递归的算法。.设二叉树按二叉链表存放,写算法判别一棵二叉树是否是一棵正则二叉树。正则二叉树是指:在二叉树中不存在子树个数为1的结点。.计算二叉树最大宽度的算法。二叉树的最大宽度是指:二叉树所有层中结点个数的最大值。.已知二叉树按照二叉链表方式存储,利用栈的基本操作写出先序遍历非递归形式的算法。.证明:给定一棵二叉树的前序序列与中序序列,可唯一确定这棵二叉树;给定一棵二叉树的后序序列与中序序列,可唯一确定这棵二叉树;.二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。.二叉树按照二叉链表方式存储,编写算法,将二叉树左右子树进行交换。实习题.[问题描述]建立一棵用二叉链表方式存储的二叉树,并对其进行遍历<先序、中序和后序),打印输出遍历结果。
[基本要求]从键盘SS而又无而瓦1标火万稔弘而:-正广西一<以先序来建立)并对其进行遍历<先序、中序、后序),然后将遍历结果打印输出。要求采用递归和非递归两种方法实现。[测试数据]ABC6(i)D印G66F力力力机中力表示空格字符)输出结果为:先序:ABCDEGF中序:CBEGDFA后序:CGBFDBA.已知二叉树按照二叉链表方式存储,编写算法,要求实现二叉树的竖向显示 <竖向显示就是二叉树的按层显示)。.如题1要求建立好二叉树,按凹入表形式打印二叉树结构,如下图所示。CBCB2. 按凹入表形式打印树形结构,如下图所示。ABEFCGD第六章答案1分别画出具有3个结点的树和3个结点的二叉树的所有不同形态【解答】具有3个结点的树具有3个结点的二叉树已知一棵度为k的树中有ni个度为1的结点,n2个度为2的结点,……,nk个度为k的结点,则该树中有多少个叶子结点?【解答】设树中结点总数为n,则n=n0+ni+ + n树中分支数目为B,贝UB=ni+2n2+3n3+ +knk因为除根结点外,每个结点均对应一个进入它的分支,所以有n=B+1即no+ni+ + nk=ni+2n2+3n3+ + knk+1由上式可得叶子结点数为:no=n2+2n3+ +(k-i>nk+i已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?【解答】no表示叶子结点数,n2表示度为2的结点数,则no=n2+i所以n2=noT=49,当二叉树中没有度为i的结点时,总结点数n=no+n2=99试分别找出满足以下条件的所有二叉树:(i>前序序列与中序序列相同。(2>中序序列与后序序列相同。(3>前序序列与后序序列相同。【解答】(i>前序与中序相同:空树或缺左子树的单支树;(2>中序与后序相同:空树或缺右子树的单支树;(3>前序与后序相同:空树或只有根结点的二叉树。6.9假设通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为:o.o7,o.i9,o.o2,ogo.32,o.o3,o.2i,o.io请为这8个字母设计哈夫曼编码。构造哈夫曼树如下:1O0°。5. 0.06 0/ I0.02 0.03Ii L哈夫曼编码为:I1:11111I2:11110I3:1110I4:11016.11回出如下图所示树对应的二叉树。©®©©® 回 (0【解答】G)032 0.15 0211K IT G* IsI5:1100I6:10I7:01I8:000©©(%个人资料整理仅限学习使用个人资料整理仅限学习使用}}个人资料整理仅限学习使用个人资料整理仅限学习使用}}个人资料整理仅限学习使用个人资料整理仅限学习使用return(pre>return(pre>。(C)6.15分别写出算法,实现在中序线索二叉树T中查找给定结点*p在中序序列中的前驱与后继。在先序线索二叉树T中,查找给定结点*p在先序序列中的后继。在后序线索二叉树T中,查找给定结点*p在后序序列中的前驱。<1)找结点的中序前驱结点BiTNode*InPre(BiTNode*p>/*在中序线索二叉树中查找p的中序前驱结点,并用pre指针返回结果*/{if(p->Ltag==1>pre=p->LChild。 /*直接利用线索*/else{/*在p的左子树中查找“最右下端”结点*/for(q=p->LChild。q->Rtag==0。q=q->RChild>。pre=q。}<2)找结点的中序后继结点BiTNode*InSucc(BiTNode*p>/*在中序线索二叉树中查找p的中序后继结点,并用succ指针返回结果*/{if(p->Rtag==1>succ=p->RChild。 /*直接利用线索*/else{/*在p的右子树中查找“最左下端”结点*/for(q=p->RChild。q->Ltag==0。q=q->LChild>。succ=q。}return(succ>。}(3>找结点的先序后继结点BiTNode*PreSucc(BiTNode*p>/*在先序线索二叉树中查找p的先序后继结点,并用succ指针返回结果*/{if(p->Ltag==0>succ=p->LChild。elsesucc=p->RChild。return(succ>。}(4>找结点的后序前驱结点BiTNode*SuccPre(BiTNode*p>/*在后序线索二叉树中查找p的后序前驱结点,并用pre指针返回结果*/{if(p->Ltag==1>pre=p->LChild。elsepre=p->RChild。return(pre>。个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用6.21已知二叉树按照二叉链表方式存储,利用栈的基本操作写出先序遍历非递归形式的算法【解答】VoidPreOrder(BiTreeroot>/*先序遍历二叉树的非递归算法*/{InitStack(&S>。p=rootowhile(p!=NULL||!IsEmpty(S>>{if(p!=NULL>{Visit(p->data>。push(&S,p>。p=p->Lchild。}else{Pop(&S,&p>0p=p->RChild。}}}6.24已知二叉树按照二叉链表方式存储,编写算法,将二叉树左右子树进行交换。【解答】算法(一〉Voidexchange(BiTreeroot>p=rooto个人资料整理仅限学习使用if(p->LChild!=NULL||p->RChild!=NULL>{temp=p->LChild。p->LChild=p->RChild。p->RChild=temp。exchange(p->LChild>。exchange(p->RChild>。}}算法(二〉Voidexchange(BiTreeroot>{p=rootoif(p->LChild!=NULL||p->RChild!=NULL>{exchange(p->LChild>。exchange(p->RChild>。temp=p->LChild。p->LChild=p->RChild。p->RChild=temp。}}第六章习题解读个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用.试分别画由具有3个结点的树和3个结点的二叉树的所有不同形态。.对题1所得各种形态的二叉树,分别写生前序、中序和后序遍历的序列。3,已知一棵度为k的树中有ni个度为1的结点,n2个度为2的结点,……,nk个度为k的结点,则该树中有多少个叶子结点?[提示]:参考P.116性质3n=n0+n1+ + nkB=n1+2n2+3n3+ + knkn=B+1n0+n1++nk=n1+2n2+3n3++knk+1n0=n2+2n3+ +(k-1>nk+14.假设一棵二叉树的先序序列为 EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请画由该二叉树。[提示]:参考P.148. 已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?[提示]:[方法1]<1)一个叶子结点,总结点数至多有多少个?结论:可压缩一度结点。<2)满二叉树或完全二叉树具有最少的一度结点<3)可能的最大满二叉树是几层?有多少叶结点?如何增补?25<50<26可能的最大满二叉树是6层有25=32个叶结点假设将其中x个变为2度结点后,总叶结点数目为 50则:2x+(32-x>=50得:x=18此时总结点数目=(26-1>+18X2[方法2]假设完全二叉树的最大非叶结点编号为 m,则最大叶结点编号为2m+1,(2m+1>-m=50m=49总结点数目=2m+1=99[方法3]由性质3:n0=n2+1即:50=n2+1所以:n2=49令n1=0得:n=n0+n2=99给由满足下列条件的所有二叉树:a>前序和中序相同b>中序和后序相同c>前序和后序相同[提示]:去异存同。a>DLR与LDR的相同点:DR,如果无L,则完全相同,如果无LR,…。b>LDR与LRD的相同点:LD,如果无R,则完全相同。c>DLR与LRD的相同点:D,如果无LR,则完全相同。<如果去D,则为空树).n个结点的K叉树,若用具有k个child域的等长链结点存储树的一个结点,则空的Child域有多少个?[提示]:参考P.119.画由与下列已知序列对应的树T:树的先根次序访问序列为 GFKDAIEBCHJ;树的后根次序访问序列为 DIAEKFCJHBG。[提示]:<1)先画由对应的二叉树<2)树的后根序列与对应二叉树的中序序列相同.假设用于通讯的电文仅由 8个字母组成,字母在电文中由现的频率分别为:0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10<1)请为这8个字母设计哈夫曼编码,<2)求平均编码长度。.已知二叉树采用二叉链表存放 ,要求返回二叉树T的后序序列中的第一个结点的指针,是否可不用递归且不用栈来完成 ?请简述原因.[提示]:无右子的“左下端”.画由和下列树对应的二叉树:
Qa®®®©©® ® (0 ⑷.已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。.编写递归算法:对于二叉树中每一个元素值为 x的结点,删去以它为根的子树,并释放相应的空间。[提示]:[方法1]:<1)按先序查找;<2)超前查看子结点<3)按后序释放;voidDelSubTree(BiTree*bt,DataTypex>{if(*bt!=NULL&&(*bt>->data==x>{FreeTree(*bt>。*bt=NULL。}elseDelTree(*bt,x>voidDelTree(BiTreebt,DataTypex>{if(bt>{if(bt->LChild&&bt->LChild->data==x>{FreeTree(bt->LChild>。bt->LChild=NULL。}if(bt->RChild&&bt->RChild->data==x>{FreeTree(bt->RChild>。bt->RChild=NULL。}DelTree(bt->LChild,x>。DelTree(bt->RChild,x>。个人资料整理仅限学习使用个人资料整理仅限学习使用个人资料整理仅限学习使用[方法2]:<1)先序查找;<2)直接查看当前根结点<3)用指针参数;[方法3]:<1)先序查找;<2)直接查看当前根结点<3)通过函数值,返回删除后结果;<参示例程序)14.分别写函数完成:在先序线索二叉树 T中,查找给定结点*p在先序序列中的后继。在后序线索二叉树 T中,查找给定结点*p在后序序列中的前驱。[提示]:1)先查看线索,无线索时用下面规律:2)结点*p在先序序列中的后继为其左子或右子;3)结点*p在后序序列中的前驱也是其左子或右子。.分别写生算法,实现在中序线索二叉树中查找给定结点 *p在中序序列中的前驱与后继。<参例题).编写算法,对一棵以孩子-兄弟链表表示的树统计其叶子的个数。[提示]:<1)可将孩子-兄弟链表划分为根、首子树、兄弟树,递归处理。<2)可利用返回值,或全局变量。.对以孩子-兄弟链表表示的树编写计算树的深度的算法。.已知二叉树按照二叉链表方式存储,利用栈的基本操作写生后序遍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年修订版地产典当协议3篇
- 2024年建筑工程设计及施工合同
- 2024年度租赁设备附购买选择权协议版
- 2024年度房产微信公众平台运营合同
- 2024年仓储物流配合协议3篇
- 2024年国际公路货运协议模板解析版B版
- 2024年度文化艺术合同:艺术品展览与拍卖服务协议3篇
- 2024年剧本创作版权协议3篇
- 2024年度物业服务管理协议
- 2024年园林绿化苗木种植养护合作协议3篇
- 职业技术学院强化课程建设工作三年行动计划 (2024-2026)
- 2024年高考语文天津卷及答案解析
- 昏迷的应急预案
- 《压力容器安全培训》课件
- 关于成立健康管理公司策划书
- 网络词汇论文开题报告
- GB/T 44694-2024群众性体育赛事活动安全评估工作指南
- 2024-2025学年七年级生物上册 第三单元 第一章 第一节 藻类、苔藓和蕨类植物说课稿 (新版)新人教版
- 广东省广州市2023-2024学年七年级上学期期末考试数学试题(含答案)
- 小数加减乘除计算题大全(300题大全)
- 印刷服务合同三篇
评论
0/150
提交评论