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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第610章树和二叉树标准答案.docx

1、第610章树和二叉树标准答案第6章 树和二叉树一、基础知识题1列出右图所示二叉树的叶结点、分支结点和每个结点的层次。解答二叉树的叶结点有、。分支结点有、。结点的层次为0;结点、的层次为1;结点、的层次为2;结点、的层次为3;结点的层次为4。2使用(1)顺序表示和(2)二叉链表表示法,分别画出右图所示二叉树的存储表示。解答(1)顺序表示012345678911617(2)二叉链表表示3在结点个数为n(n1)的各棵树中,高度最小的树的高度是多少?它有多少个叶结点?多少个分支结点?高度最大的树的高度是多少?它有多少个叶结点?多少个分支结点?解答结点个数为n时,高度最小的树的高度为1,有2层;它有n-

2、1个叶结点,1个分支结点;高度最大的树的高度为n-1,有n层;它有1个叶结点,n-1个分支结点。4试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。解答 具有3个结点的树 具有3个结点的二叉树5如果一棵树有n1个度为1的结点,有n2个度为2的结点,nm个度为m的结点,试问有多少个度为0的结点?试推导之。解答总结点数 n=n0+n1+n2+nm总分支数 e=n-1= n0+n1+n2+nm-1 =mnm+(m-1)nm-1+2n2+n1则有 n0=6试分别找出满足以下条件的所有二叉树:(1)二叉树的前序序列与中序序列相同;(2)二叉树的中序序列与后序序列相同;(3)二叉树的前序序列与后

3、序序列相同。解答(1)二叉树的前序序列与中序序列相同:空树或缺左子树的单支树;(2)二叉树的中序序列与后序序列相同:空树或缺右子树的单支树;(3)二叉树的前序序列与后序序列相同:空树或只有根结点的二叉树。7填空题 (1)对于一棵具有n个结点的树,该树中所有结点的度数之和为 n-1 。 (2)假定一棵三叉树的结点个数为50,则它的最小高度为 4 ,最大高度为 49 。 (3)一棵高度为h的四叉树中,最多含有 (4h+1-1)/3 结点。 (4)在一棵三叉树中,度为3的结点数有2个,度为2的结点数有1个,度为1的结点数为2个,那么度为0的结点数有 6 个。 (5)一棵高度为5的满二叉树中的结点数为

4、 63 个,一棵高度为3的满四叉树中的结点数为 85 个。 (6)在一棵二叉树中,假定度为2的结点有5个,度为1的结点有6个,则叶子结点数有 6 个。 (7)对于一棵含有40个结点的理想平衡树,它的高度为 5 。(8)若对一棵二叉树从0开始进行结点编号,并按此编号把它顺序存储到一堆数组a中,即编号为0的结点存储到a0中,其余类推,则ai元素的左子女结点为2i+1 ,右子女结点为 2i+2 ,双亲结点(i1)为。9n个结点可构造出多少种不同形态的二叉树?若有3个数据1,2,3,输入它们构造出来的中序遍历结果都为1,2,3的不同二叉树有哪些?解答有/ (n+1)种。当n=3时,中序遍历都为1,2,

5、3的不同二叉树有5种:10、判断下列叙述的对错。如果正确,在题前打“”,否则打“”。(1)二叉树是树的特殊情形;(2)若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点;(3)若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点;(4)若有一个叶子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点;(5)若有一个叶子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。

6、解答(1) (2) (3) (4) (5)二、算法设计题1若已知两棵二叉树B1和B2皆为空,或者皆不空且B1的左、右子树和B2的左、右子树分别相似,则称二叉树B1和B2相似。试编写算法,判别给定两棵二叉树是否相似。解答int Bitree_Sim(Bitree B1,Bitree B2)/判断两棵树是否相似的递归算法if(!B1&!B2) return 1;else if(B1&B2&Bitree_Sim(B1-lchild,B2-lchild)&Bitree_Sim(B1-rchild,B2-rchild)return 1;else return 0;/Bitree_Sim 2试利用栈的基本

7、操作写出先序遍历的非递归形式的算法。解答void PreOrder_Nonrecursive(Bitree T)/先序遍历二叉树的非递归算法InitStack(S);Push(S,T); /根指针进栈while(!StackEmpty(S)while(Gettop(S,p)&p)visit(p-data);push(S,p-lchild); /向左走到尽头pop(S,p);if(!StackEmpty(S) pop(S,p); push(S,p-rchild); /向右一步/while/PreOrder_Nonrecursive 3编写递归算法,计算二叉树中叶子结点的数目。解答int Leaf

8、Count_BiTree(Bitree T)/求二叉树中叶子结点的数目if(!T) return 0; /空树没有叶子else if(!T-lchild&!T-rchild) return 1; /叶子结点else return Leaf_Count(T-lchild)+Leaf_Count(T-rchild);/左子树的叶子数加上右子树的叶子数/LeafCount_BiTree 4编写按层次顺序(同一层自左至右)遍历二叉树的算法。解答void LayerOrder(Bitree T)/层序遍历二叉树InitQueue(Q); /建立工作队列EnQueue(Q,T);while(!QueueE

9、mpty(Q)DeQueue(Q,p);visit(p);if(p-lchild) EnQueue(Q,p-lchild);if(p-rchild) EnQueue(Q,p-rchild);/LayerOrder第七章 图一、基础知识题1画出1个顶点、2个顶点、3个顶点、4个顶点和5个顶点的无向完全图。并证明在n个顶点的无向完全图中,边的条数为n(n-1)/2。 解答证明在有n个顶点的无向完全图中,每一个顶点都有一条边与其他某一顶点相连,所以每一个顶点有n-1条边与其他n-1个顶点相连,总计n个顶点有n(n-1)条边。但在无向图中,顶点i到顶点j与顶点j到顶点i是同一条边,所以总共有n(n-1

10、)/2条边。2.右边的有向图是强连通的吗?请列出所有的简单路径。解答判断一个有向图是否强连通,要看从任一顶点出发是否能够回到该顶点。右面的有向图做不到这一点,它不是强连通的有向图。各个顶点自成强连通分量。所谓简单路径是指该路径上没有重复的顶点。从顶点A出发,到其他的各个顶点的简单路径有AB,ADB,ABC,ADBC,AD,ABE,ADE,ADBE,ABCFE,ADBCFE,ABCF,ADBCF。从顶点B出发,到其他各个顶点的简单路径有BC,BCF,BE,BCFE。从顶点C出发,到其他各个顶点的简单路径有CF,CFE。从顶点D出发,到其他各个顶点的简单路径有DB,DBC,DBCF,DE,DBE,

11、DBCFE。从顶点E出发,到其他各个顶点的简单路径无。从顶点F出发,到其他各个顶点的简单路径有FE。3给出右图的邻接矩阵、领接表和领接多重表表示。解答(1)邻接矩阵(2)邻接表0A1B2C3D4E5F12 5443(出边表)140A1B2C3D4E5F0 123(入边表)0135(3)邻接多重表(十字链表)datafinfout0A1B2C3D4E5Fijilinkjlink01(A,B) 03(A,D)(B,C)1214(B,E)(C,F)2531(D,B)(D,E)3454(F,E)4用邻接矩阵表示图时,矩阵元素的个数与顶点个数是否相关?与边的条数是否相关?解答用邻接矩阵表示图,矩阵元素的

12、个数是顶点个数的平方,与边的条数无关。矩阵中非零元素的个数与边的条数有关。5对于有n个顶点的无向图,采用邻接矩阵表示,如何判断以下问题:图中有多少条边?任意两个顶点i和j之间是否有边相连?任意一个顶点的度是多少?解答用邻接矩阵表示无向图时,因为是对称矩阵,对矩阵的上三角部分或下三角部分检测一遍,统计其中的非零元素个数,就是图中的边数。如果邻接矩阵中Aij不为零,说明顶点i和j之间有边相连。此外统计出矩阵第i行或第j列的非零元素个数,就可得到顶点i的度数。6.对于如下图所示的有向图,试写出:(1)从顶点出发进行深度优先搜索所得到的深度优先生成树;(2)从顶点出发进行广度优先搜索所得到的广度优先生

13、成树。解答(1)以顶点为根的深度优先生成树(不唯一):(2)以顶点为根的广度优先生成树:7试对下图所示的AOE网络,解答下列问题。(1)这个工程最早可能在什么时间结束。(2)求每个事件的最早开始时间Vei和最迟允许开始时间Vli。(3)求每个活动的最早开始时间e( )和最迟允许开始时间l( )。(4)确定哪些活动是关键活动。画出由所有关键活动构成的图,指出哪些活动加速可使整个工程提前完成。解答按拓扑有序的顺序计算各个顶点的最早可能开始时间Ve和最迟允许开始时间Vl。然后再计算各个活动的最早可能开始时间e和最迟允许开始时间l,根据le是否等于0来确定关键活动,从而确定关键路径。123456VeV

14、le08l178e-l1700801280 此工程最早完成时间为43。关键路径为8判断题 (1)用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中的顶点个数有关,而与图的边数无关。(2)邻接表只能用于有向图的存储,领接矩阵对于有向图和无向图的存储都适用;(3)邻接矩阵只适用于稠密图(边数接近于顶点数的平方),邻接表适用于稀疏图(边数远小于顶点数的平方);(4)有n(n1)个顶点的无向连通图最少有n-1条边;(5)有n(n1)个顶点的有向强连通图最少有n条边;(6)存储无向图的邻接矩阵是对称的,因此只要存储领接矩阵的下(上)三角部分就可以了;(7)连通分量是无向图中的

15、极小连通子图;(8)强连通分量是有向图中的极大强连通子图;(9)对任何用顶点表示活动的网络(AOV网)进行拓扑排序的结果都是唯一的;(10)有回路的有向图不能完成拓扑排序;(11)在AOE网络中一定只有一条关键路径;(12)关键活动不按期完成就会影响整个工程的完成时间;(13)任何一个关键活动提前完成,那么整个工程将会提前完成;(14)所有的关键活动都提前完成,那么整个工程将会提前完成;(15)任何一个关键活动延迟,那么整个工程将会延迟。解答(1) (2) (3) (4) (5)(6) (7) (8) (9) (10)(11) (12) (13) (14) (15)9填空题(1)在一个无向图中

16、,所有顶点的度数之和等于所有边数的 倍。(2)在一个具有n个顶点的无向完全图中,包含有 条边,在一个具有n个顶点的有向完全图中,包含在 条边。(3)在一个具有n个顶点的无向图中,要连通所有顶点则至少需要 条边。(4)表示图的三种存储结构为 、 和 。(5)对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小为 。(6)对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别为 和 条。(7)在有向图的邻接表和逆领接表表示中,每个顶点的边链表中分别链接着该顶点的所有 和 结点。(8)对于一个具有n个顶点和e条边的有向图和无向图,若采用邻接多重表表示,则存于顶点表中的边

17、链表指针分别有 和 个,所有边结点有 个。(9)对于一个具有n个顶点和e条边的无向图,当分别采用邻接矩阵、邻接表和邻接多重表表示时,求任一顶点度数的时间复杂度依次为 、 和 。(10)假定一个图具有n个顶点和e条边,则采用邻接矩阵、邻接表和邻接多重表表示时,其相应的空间复杂度分别为 、 和 。(11)对用邻接矩阵表示的图进行任一种遍历时,其时间复杂度为 ,对用邻接表表示的图进行任一种遍历时,其时间复杂度为 。(12)对于一个具有n个顶点和e条边的连通图,其生成树中的顶点数和边数分别为 和 。解答(1)2 (2)n(n-1)/2,n(n-1)(3)n-1 (4)邻接矩阵,邻接表,邻接多重表(5)

18、n2 (6)e,2e(7)出边,入边 (8)2n,n,e(9)O(n),O(e/n),O(e) (10)O(n2),O(n+e),O(n+e)(11)O(n2),O(e) (12)n,n-110从供选择的答案中选择与下面有关图的叙述中各括号相匹配的词句,将其编号填入相应的括号内。(1)采用邻接表存储的图的深度优先遍历算法类似于二叉树的( A )。(2)采用邻接表存储的图的广度优先遍历算法类似于二叉树的( B )。(3)对于含有n个顶点和e条边的无向连通图,利用Prim算法产生最小生成树,其时间复杂度为( C ),利用Kruskal算法产生最小生成树,其时间复杂度为(D)。(4)设图中有n个顶点

19、和e条边,进行深度优先搜索的时间复杂度至多为( E ),进行广度优先搜索的时间复杂度至多为( F )。(5)对于一个具有n个顶点和e条边的无向图,进行拓扑排序时,总的时间为(G)。(6)判断有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用(H)。供选择的答案:A,B 中序遍历 前序遍历 后序遍历 按层次遍历C,D O(n2) O(n*e) O(nlog2n) O(elog2e)E,F O(n+e) O(n*e) O(nlog2n) O(elog2e)G n n+1 n-1 n+eH 求关键路径的方法 求最短路径的Dijkstra方法深度优先遍历算法 广度优先遍历算法解答A B C D

20、E F G H11画出下图所示的AOV网的所有拓扑有序序列。 解答共有8种:ADBECF ADBEFC ADEBCF ADEBFCDABECF DABEFC DAEBCF DAEBFC12什么样的图其最小生成树是惟一的?用Prim和Kruskal求最小生成树的时间各为多少?它们分别适合于哪类图?解答若带权图中所有边的权都两两不等,则该图的最小生成树一定是惟一的。普里姆(Prim)算法的时间复杂度是O(n2),适合于稠密图;克鲁斯卡尔(Kruskal)算法的时间复杂度是O(e log2 e),适合于稀疏图。(其中,n和e分别是图的顶点数和边数)。13对下图所示的连通图,请分别用普里姆(Prim)

21、和克鲁斯卡尔(Kruskal)算法构造其最小生成树。解答用普里姆(Prim)算法构造该图最小生成树如下图所示(从顶点h开始):用克鲁斯卡尔(Kruskal)算法构造该图最小生成树如下图所示:14对图所示的有向图,试利用Dijkstra算法求出从源点1到其他各顶点的最短路径,并写出执行算法过程中扩充红点集的每次循环状态(见表7.2)。解答红点集kD1D2D3D4D5D6P1P2P3P4P5P611,31,3,21,3,2,61,3,2,6,41,3,2,6,4,5-32645000000201919191919151515151515292929292929292525252525-1-1-1-

22、1-1-1133333111111-1-1-1666-1-12222-133333从顶点1到其他各顶点的最短路径及距离如下:13(15) 132(19) 1364(29) 1325(29) 136(25)第九章 查找一、单项选择题1在等概率查找的情况下,对n个关键字的线性表进行顺序查找,成功时平均查找长度是 B 。An/2 B(n+1)/2 Cn(n-1)/2 D1/22设顺序存储在线性表中的n个关键字K1,K2,Kn的查找概率依次为P1,P2,Pn,且有P1P2P30)个关键字的有序线性表进行二分法查找,关键字的比较次数最大是。3对有2047个关键字的有序顺序表进行等概率的二分法查找,成功查

23、找的平均查找长度是 20481/2047 。4A,B,C,D四个关键字可以构成 14 个不同的二叉排序树,其中 4 个是平衡二叉树。5中序遍历二叉排序树得到的序列是关键字升序序列 。6在二叉排序树上成功查找一个关键字的时间复杂度是 O(log2n) 。7m阶B_树的每个结点最多包含 m-1 个关键字。8m阶B树中,每个非根结点至少有个关键字。9散列表的成功查找平均查找长度与 装载因子 直接有关。10散列表技术中解决冲突的主要方法有 开放地址法 和 拉链法 。三、求解下列问题1.设有n个关键字K1K2K3Kn,按由小到大的次序存储在一顺序表(R1,R2,RK)内。设被查找的关键字K与Ki相等的概率为Pi(i=1,2,n),KKn的概率为qn,KiKKn,则需要进行1次关键字比较(由于关键字是升序排列,Kn为顺序表内最大的关键字,若待查关键字KKn,则

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

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