版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构作业 4图 参考答案图非编程作业参考答案:1已知带权无向图如图所示:a(1). 根据普里姆(Prim)算法,求它的从顶点 a出发的最小生成树(写出过程,即添加顶点、边次序);(2). Kruskal树(写出过程,即添加边次序)。2614bd753e普里姆(Prim)算法:aaaaea22221 44b c dc ddd3e3e3克鲁斯卡尔(Kruskal)算法:aab c deaaa2221 41b c d1b c d1b c db c d3e3eee已知带权有向图如图所示:bc(1). 画出该图的邻接矩阵存储结构;(2). 请写出该图的一个拓扑有序序列;(3). 求从顶点 a 到其余
2、各顶点之间的最过程。5291862adeh73fga b c d e f g ha 0 2 6 9 图G的一个拓扑序列:b 0 30 1 abdfecghabdfegchafbdecghafbdegchc 0 5 d 0 2 8 0 7 3 0 24 0 21ef g 0h 数据结构作业 4图 参考答案从a出发到其它顶点的最短路径及其计算过程:编程作业:请编写一个完整的程序,建立有向图的邻接表存储结构,并判断两顶点间是否有路径存在,要求:(1) 主函数功能:从键盘读入有向图的顶点数、有向边数,调用函数CreateAdjList()建立邻接表;在主函数中输出每个顶点的数据域及其所有邻接点;从键盘
3、读入两个顶点()的数据域,调、v v s tst用函数Path()判断其间是否存在路径;(2) CreateAdjList():建立有向图邻接表。功能:从键盘接收各顶点数2,3”代表该边依附的两个顶点在表头数组中的下标为2和3序;(3) Path(): 例:输入:请输入顶点和边的数目:8,9 /(在 main()函数中输入)请输入各顶点数据域:a b c d e f g h/(在 CreateAdjList()中输入)请输入各条边:1,2数据结构作业 4图 参考答案1,32,43,63,74,85,25,86,7输出:图的邻接表为:a 2 3 /(在 main()函数中输出)b 4c 6 7d
4、 8e 2 8f 7gh输入: 请输入要查找是否存在路径的顶点:a,h输出: 顶点 a和 d之间存在路径,路经为:a b d h输入: 请输入要查找是否存在路径的顶点:a,e输出: 顶点 a和 e之间不存在路径参考答案:#include#include#define Max_Vertex_Num 10typedef char VertexType;int visitedMax_Vertex_Num;int visitpathMax_Vertex_Num;int pathvexnum;int flag;/单链表结点(弧结点)typedef struct Arcnodeint adjvex; /该
5、弧所指向顶点(在表头数组中)的位置struct Arcnode *nextarc; /指向依附该顶点下一条边或弧 ArcNode;/头结点typedef struct Vnode VertexType data;/顶点信息数据结构作业 4图 参考答案Arcnode *firstarc; /指向第一条依附该顶点的弧 VNode, AdjListMax_Vertex_Num;/图的定义typedef structAdjListintvertices;/ 表头数组vexnum, arcnum; / 图中顶点及弧的数目 ALGraph;/建立邻接表void CreateAdjList (ALGraph
6、 &G)int k,i,j;ArcNode *p,*q,*s;for(k=1;k=G.vexnum;k+)printf(input data:);fflush(stdin);scanf(%c,&G.verticesk.data);G.verticesk.firstarc=NULL;for(k=0;kadjvex=j;s-nextarc=NULL;q=NULL;p=G.verticesi.firstarc;while(p!=NULL)&(jp-adjvex)q=p; p=p-nextarc;if(p=NULL&q=NULL)G.verticesi.firstarc=s;else if(p=NUL
7、L&q!=NULL)q-nextarc=s;else if(p!=NULL&q=NULL)数据结构作业 4图 参考答案G.verticesi.firstarc=s;s-nextarc=p;elseq-nextarc=s;s-nextarc=p;/按深度优先判断顶点 vx和 vy间是否存在路径void DFSPath(ALGraph G, int v, VertexType vy) ArcNode *w;int i;visitpath+pathvexnum=v;visitedv=1;w=G.verticesv.firstarc;/顶点 v的第一个邻接点while(w!=NULL) /是否存在i=
8、w-adjvex; /邻接点下标if(G.verticesi.data=vy)flag=1;return;else if(flag=0&visitedi=0)DFSPath(G,i,vy);w=w-nextarc; /v的下一个邻接点if(flag=0)pathvexnum-;/从路径上删除 Vvoid Path(ALGraph G, VertexType vx, VertexType vy)int i;数据结构作业 4图 参考答案for(i=1;i=Max_Vertex_Num;i+)visitedi=0;for(i=1;i=G.vexnum;i+)if(G.verticesi.data=v
9、x)break;DFSPath(G,i,vy);if(flag=1)printf(顶点%c到顶点%c之间存在路径,路经为:,vx,vy);for(i=1;i=pathvexnum;i+)printf(%ct,G.verticesvisitpathi.data);printf(%cn,vy);elseprintf(顶点%c到顶点%c之间不存在路径n,vx,vy);void main()ALGraph G;int i;VertexType vx,vy;ArcNode *p;printf(请输入顶点和边的数目:);scanf(%d,%d,&G.vexnum,&G.arcnum);CreateAdjList(G);print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都产业投资集团有限公司2026“蓉漂人才荟”城市行4月社会招聘考试参考题库及答案解析
- 2026山西太原师范学院招聘博士研究生43人考试参考题库及答案解析
- 柏莱士手表鉴定报告
- 小小设计师的魔法花瓶之旅
- 水池清洁护理清洁服务绩效评估
- 2026吉林白山市直事业单位招聘141人(含专项招聘高校毕业生)考试参考题库及答案解析
- 2026广东广州中医药大学科研助理招聘1人(第1批)考试模拟试题及答案解析
- 2026甘肃兰州大学管理人员、其他专业技术人员招聘10人考试模拟试题及答案解析
- 2026西藏那曲聂荣县医疗卫生集团招聘药品管理人员8人笔试备考题库及答案解析
- 2026北京大学材料科学与工程学院招聘1名劳动合同制工作人员考试模拟试题及答案解析
- 星创天地创业辅导制度
- 框架结构住宅楼施工计划
- 2026江苏事业单位统考泰州市靖江市招聘42人考试参考题库及答案解析
- (一模)太原市2026年高三年级模拟考试(一)历史试卷(含官方答案)
- 江苏南京紫金投资集团有限责任公司招聘笔试题库2026
- 游泳馆安全生产制度
- 副流感病毒感染诊疗指南(2025版)
- (2026年)中医护理操作并发症预防及处理课件
- 企业信息资产管理清单模板
- 中医医疗技术相关性感染预防与控制指南(试行)
- 工程项目进度-成本-质量多目标协同优化模型构建与应用研究
评论
0/150
提交评论