欢迎来到天天文库
浏览记录
ID:48212550
大小:109.00 KB
页数:14页
时间:2020-01-22
《北邮数据结构实验 第二次实验 图.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构实验报告1.实验要求(1)实验目的通过选择下面5个题目之一进行实现,掌握如下内容:Ø掌握图基本操作的实现方法Ø了解最小生成树的思想和相关概念Ø了解最短路径的思想和相关概念Ø学习使用图解决实际问题的能力(2)实验内容根据图的抽象数据类型的定义,使用邻接矩阵或邻接表实现一个图。图的基本功能:1、图的建立2、图的销毁3、深度优先遍历图4、广度优先遍历图5、使用普里姆算法生成最小生成树6、使用克鲁斯卡尔算法生成最小生成树7、求指定顶点到其他各顶点的最短路径8、其他:比如连通性判断等自定义操作编写测试main()函数测试图的正确性2.程序分析2.1存储结构图:(1)带权值的
2、无向图V096V12V2(2)带权值的有向图V06394V12V22.2关键算法分析(1)深度优先遍历intvisited[MAXSIZE]={false};templatevoidMGraph::DFS(intv){cout<3、;queue[++r]=v;while(f!=r){v=queue[++f];for(intj=0;jintmininum(MGraphG,inta[]){intmin=MAX;intk=0;for(inti=0;i4、i++){if(a[i]!=0&&a[i]voidMGraph::Prim(MGraphG){for(inti=0;i5、->V"<voidGenSortEdge(MGraphG,VEdgeE[])//获取EdgeList{intk=0,i,j;for(i=0;i6、i][j]!=MAX){E[k].fromV=i;E[k].endV=j;E[k].weight=G.arcs[i][j];k++;}for(i=0;iE[j].weight){VEdget=E[i];E[i]=E[j];E[j]=t;}}}constintMAX_VERTEXT=20;templatevoidMGraph::Kruskal(VEdgeE[],intn,inte){intvset[MAX_VERTEXT];for(inti7、=0;iV"<
3、;queue[++r]=v;while(f!=r){v=queue[++f];for(intj=0;jintmininum(MGraphG,inta[]){intmin=MAX;intk=0;for(inti=0;i4、i++){if(a[i]!=0&&a[i]voidMGraph::Prim(MGraphG){for(inti=0;i5、->V"<voidGenSortEdge(MGraphG,VEdgeE[])//获取EdgeList{intk=0,i,j;for(i=0;i6、i][j]!=MAX){E[k].fromV=i;E[k].endV=j;E[k].weight=G.arcs[i][j];k++;}for(i=0;iE[j].weight){VEdget=E[i];E[i]=E[j];E[j]=t;}}}constintMAX_VERTEXT=20;templatevoidMGraph::Kruskal(VEdgeE[],intn,inte){intvset[MAX_VERTEXT];for(inti7、=0;iV"<
4、i++){if(a[i]!=0&&a[i]voidMGraph::Prim(MGraphG){for(inti=0;i5、->V"<voidGenSortEdge(MGraphG,VEdgeE[])//获取EdgeList{intk=0,i,j;for(i=0;i6、i][j]!=MAX){E[k].fromV=i;E[k].endV=j;E[k].weight=G.arcs[i][j];k++;}for(i=0;iE[j].weight){VEdget=E[i];E[i]=E[j];E[j]=t;}}}constintMAX_VERTEXT=20;templatevoidMGraph::Kruskal(VEdgeE[],intn,inte){intvset[MAX_VERTEXT];for(inti7、=0;iV"<
5、->V"<voidGenSortEdge(MGraphG,VEdgeE[])//获取EdgeList{intk=0,i,j;for(i=0;i6、i][j]!=MAX){E[k].fromV=i;E[k].endV=j;E[k].weight=G.arcs[i][j];k++;}for(i=0;iE[j].weight){VEdget=E[i];E[i]=E[j];E[j]=t;}}}constintMAX_VERTEXT=20;templatevoidMGraph::Kruskal(VEdgeE[],intn,inte){intvset[MAX_VERTEXT];for(inti7、=0;iV"<
6、i][j]!=MAX){E[k].fromV=i;E[k].endV=j;E[k].weight=G.arcs[i][j];k++;}for(i=0;iE[j].weight){VEdget=E[i];E[i]=E[j];E[j]=t;}}}constintMAX_VERTEXT=20;templatevoidMGraph::Kruskal(VEdgeE[],intn,inte){intvset[MAX_VERTEXT];for(inti
7、=0;iV"<
此文档下载收益归作者所有