




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机系数据结构实验报告(6)实验目的:图是应用极为广泛的数据结构,也是这门课程的重点,继续使学生更了解数据结构加操作的程序设计观点。问题描述:给出一张某公园的导游图,游客通过终端询问可知:a)从某一景点到另一个景点的最短路径。b)游客从公园大门进入,选一条最佳路线,使游客可以不重复的游览各景点,最后回到出口。实验要求:文法是一个四元1、将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离,选择适当的数据结构。2、为游客提供图中任意景点相关信息的查询;3、为游客提供任意两个景点之间的一条最短的简单路径。4、为游客选择最佳游览路径。 算法分析:1、设计公园平面图,选择适当的数据结构;2、设计图的最短路径算法,如果有几条路径长度相同,选择途径景点较少的路径给游客;3、设计图的深度优先搜索算法,如果有多种路径可选,则选带权路径最短的路线给游客;实验内容和过程:源程序:#includeusing namespace std;#include#define INFINITY INT_MAX#define MAX_VERTEX_NUM 20#define VRType int#define InfoType int#define VertexType char#define MAX 10#define FALSE 0#define TRUE 1typedef enumDG,DN,UDG,UDNGraphKind;typedef struct ArcCellVRType adj;InfoType *info; ArcCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef struct VertexType vexsMAX_VERTEX_NUM;AdjMatrix arcs;int vexnum,arcnum;GraphKind kind;MGraph;void DFS(MGraph G,int v);void VisitFunc(MGraph G,int v);int FirstAdjVex(MGraph G,int v);int NextAdjVex(MGraph G,int v,int w);VertexType OutVex(MGraph G,int m);typedef int PathMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef int ShortPathTableMAX_VERTEX_NUM;int LocateVex(MGraph G,VertexType v)int i=0;for(i=0;G.vexsi!=v;+i);return i;VertexType OutVex(MGraph G,int m)return G.vexsm;bool CreateUDN(MGraph &G)int i,j,k;char v1,v2;int w;G.kind=UDN;coutG.vexnumG.arcnum;cout输入各个景点:;for(i=0;iG.vexsi;for(i=0;iG.vexnum;+i)for(j=0;jG.vexnum;+j) G.arcsij.adj=INFINITY; G.=NULL; cout输入每条道路依附的景点和道路长度:endl;for(k=0;kv1v2w;i=LocateVex(G,v1); j=LocateVex(G,v2);G.arcsij.adj=w;G.arcsji=G.arcsij;return true;bool visitedMAX;void DFSTraverse(MGraph G)int v;for(v=0;vG.vexnum;+v)visitedv=false;for(v=0;v=0;w=NextAdjVex(G,v,w)if(!visitedw) DFS(G,w);int FirstAdjVex(MGraph G,int v) int i ; for(i = 0; iG.vexnum; i+) if( G.arcsvi.adj!=INFINITY ) return i; if(i = (G.vexnum-1) return -1; return -1; int NextAdjVex(MGraph G,int v,int w) int i; for( i = w+1; iG.vexnum; i+)/+1 if(G.arcsvi.adj!=INFINITY) return i; if(i = (G.vexnum-1) return -1; return -1;void VisitFunc(MGraph G,int v)coutG.vexsv ;void Shortestpath_DIJ(MGraph G, int v0, PathMatrix *p, ShortPathTable *D)int v, w, i, j, min;int finalMAX_VERTEX_NUM;for (v = 0; v G.vexnum; v+)finalv = FALSE; (*D)v = G.arcsv0v.adj;for (w = 0; w G.vexnum; w+) (*p)vw = FALSE;if (*D)v INFINITY)(*p)vv0 = TRUE;(*p)vv = TRUE;(*D)v0 = 0;finalv0 = TRUE;for (i = 1; i G.vexnum; i+)min = INFINITY;for (w = 0; w G.vexnum; w+)if (!finalw)if (*D)w min)v = w;min = (*D)w;finalv = TRUE;for (w = 0; w G.vexnum; w+)if (!finalw & min INFINITY &G.arcsvw.adj INFINITY & (min + G.arcsvw.adj (*D)w)(*D)w = min + G.arcsvw.adj;for (j = 0; j G.vexnum; j+)(*p)wj = (*p)vj;(*p)ww = TRUE;coutOutVex(G,v) ;int main()PathMatrix p;ShortPathTable d;char n1,n2;int m,i,j;MGraph G;CreateUDN(G);cout1,最佳游览路径n2,任意两景点最短路径n3,退出m;if(m=1)DFSTraverse(G);else if(m=2)coutn1n2;cout两个景点之间最短的简单路径为:;coutn1 ;Shortestpath_DIJ(G,Loc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级数学(上)计算题专项练习附答案
- 企业年度项目评审标准模板
- 化学灌浆堵漏施工技术操作规范
- 小学语文《太阳》课教学设计与反思
- 饭店厨房卫生管理规范及检查要点
- 2022届云南省师范大学附属中学高三高考适应性月考卷(六)理科综合化学试题(含解析)
- 法律应用课程教学设计方案
- 基于区块链的数据安全审计-洞察及研究
- 在线维修品牌用户体验优化-洞察及研究
- 区块链在时尚产品生命周期管理中的应用-洞察及研究
- 灌溉水量平衡分析报告
- 2025年中国铁塔校园招聘笔试备考题库(带答案详解)
- 急诊科岗位职责
- 中国服用过兴奋剂运动员名单 兴奋剂真的是毒品吗
- 小学英语语法时态讲解与归纳
- 《生存与修炼》熊厚音讲《道德经》教学文案
- 淘宝新店运营计划书文献
- 产教融合校企合作[可修改版ppt]课件
- ICH Q6B 生物技术产品和生物制品的检验方法和可接受标准
- 12贮水花盆案例总结-2015天津中心修改43
- (精心整理)六方最密堆积空间利用率和密度的计算
评论
0/150
提交评论