数据结构第九次作业..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第九次作业.

第九次作业 一、选择题 1、设图有n个顶点和e条边,当用邻接矩阵表示该图时,则求解最短路径的Floyd算法的时间复杂度为 D 。 A. O(n) B. O(n+e) C. O(n2) D. O(n3) 2、分别以下列序列构造二叉排序数(二叉查找树),与用其他3个序列所构造的结果不同的是 C : A. (100, 80, 90, 60, 120, 110, 130) B. (100, 120, 110, 130, 80, 60, 90) C. (100, 60, 80, 90, 120, 110, 130) D. (100, 80, 60, 90, 120, 130, 110) 3、在二叉平衡树中插入一个结点造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应作 C 型调整使其平衡。 A. LL B. LR C. RL D. RR 二、填空题 1、具有n个顶点的有向图,如果采用邻接矩阵表示该图,则求某顶点到其他各顶点的最短路径的Dijkstra算法的时间复杂度是 O(n^2) ;如果采用邻接表表示该图,则时间复杂度为 O(e) 。 2、在用Dijkstra算法求单源最短路径的过程中,将顶点集合V划分为两个集合S和V-S,其中S中的点为 最短路径已经确定的顶点集合 ,V-S中的点为 最短路径尚未确定的顶点集合 。 3、求每一对顶点之间的最短路径,可以用两种方法,一种是分别对每个顶点采用 Dijkstra 算法,另一种方法是 Floyd算法 。 4、假设有向图的邻接矩阵C的传递闭包为A,A[i][j]=1表示有且仅有一条路径从i到j 。 5、有向图的中心点是指 具有最小偏心度的顶点 。 6、一个无序序列可以通过构造一棵 二叉查找 树而变为一个有序序列,构造树的过程即对无序序列进行排序的过程。 7、对于一棵二叉排序树,按 中根遍历 方法遍历得出的结点序列是从小到大排列的。 三、如下图所示的有向网络,利用Dijkstra算法求从顶点v1到其他各顶点的最短路径(要求写出如教材P155表4-2所示的Dijkstra算法的执行过程),并编程验证。 #includeiostream #includestring using namespace std; #define MaxValue 100 enum BOOLEAN{FALSE, TRUE}; #define NumEdges 50 //边数 #define NumVertices 6 //顶点个数 typedef char VertexData; //顶点数据类型 typedef int EdgeData; //边上权值类型 typedef struct{ VertexData vexlist[NumVertices]; //顶点表 EdgeData edge[NumVertices][NumVertices]; //邻接矩阵—边表, 可视为边之间的关系 int n; //图中当前的顶点个数 int e; //图中当前的边数 } MTGraph; void IniMGraph_directed(MTGraph *G) { for(int i=0; iNumVertices; i++) for(int j=0; jNumVertices; j++) G-edge[i][j]=MaxValue; G-n=0; G-e=0; } void CreateMGraph_directed(MTGraph *G, VertexData V[], EdgeData E[][NumVertices], int n) { int i, j; G-n=n; for (i=0; in; i++) //2.读入顶点信息,建立顶点表 G-vexlist[i]=V[i]; for (i=0; iG-n; i++) for (j=0;jG-n;j++) G-edge[i][j]=MaxValue; //3.邻接矩阵初始化 for(i=0; in; i++) //4.读入e条边建立邻接矩阵 for(j=0; jn; j++) { if(E[i][j]!=0) { G- ed

文档评论(0)

stzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档