- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]数据结构实训全国交通咨询模拟
??
学生实训报告
?
?
实训名称: 数据结构实训
指导教师:
姓名:
学号:
班级:
日期:
一、实训项目项目名称:
全国交通咨询模拟
二、实训的目的
1.熟悉图数据结构;
2.掌握图的顺序存储结构—邻接表;
3.掌握最短路径算法
4.上机调试程序,掌握查错、排错使程序能正确运行。
三.实训要求
1.每个人独立完成实训项目,相互之间可以交流,不能抄袭
2.实训的成果包括程序代码和报告
3.程序代码要有注释和说明
三、实验的环境:
1.硬件环境: PC机
2.软件环环境:Windows2000 +Visual C++6
四、算法描述:
建立图的数据结构,采用邻接矩阵作为其存储结构。存储以上的全国主要城市的交通信息。通过软件模拟的方法实现:给定出发点和终点,求出它们之间的最短路径,并给出最短路径的线路。
五、源程序清单:
#include stdio.h
#includestring.h
#define VEX_NUM 26
#define MAXINT 1000000
typedef struct graph
{
char city[VEX_NUM][10];
int arcs[VEX_NUM][VEX_NUM];
}Mgraph;
void CreatGraph(Mgraph *G,int e);
void Dijkstra(Mgraph *Gn, int v0,int path[],int dist[]);
void PutPath(Mgraph *g,int v0,int v1,int p[],int d[]);
int index(char s[],Mgraph *g);
void main()
{
Mgraph *g;
int i;
int e;
int v0,v1;
char sr[10],dt[10];
int dist[VEX_NUM];
int path[VEX_NUM];
g=new Mgraph;
CreatGraph(g,30);
printf(输入出发城市和终点城市\n);
getchar();
gets(sr);
v0=index(sr,g);
gets(dt);
v1=index(dt,g);
Dijkstra(g,v0,path,dist);
PutPath(g,v0,v1,path,dist);
}
void CreatGraph(Mgraph *G,int e)
{
int i,j,k,cost;
printf(输入城市名称\n);
for(i=0;iVEX_NUM;++i)
scanf(%s,G-city[i]);
for(i=0;iVEX_NUM;i++)
for(j=0;jVEX_NUM;j++)
G-arcs[i][j]=MAXINT;
printf(输入城市之间的距离\n);
for(k=0;ke;k++)
{
scanf(%d,%d,%d,i,j,cost);
G-arcs[i][j]=cost;
G-arcs[j][i]=cost;
}
}
void Dijkstra(Mgraph *Gn, int v0,int path[],int dist[])
{
int s[VEX_NUM];
int v;
int w;
int i,j,k;
int min;
for(v=0; vVEX_NUM; v++)
{
s[v]=0;
dist[v]=Gn-arcs[v0][v];
if(dist[v]MAXINT)
path[v]=v0;
else path[v]=-1;
}
dist[v0]=0;s[v0]=1;
for(i=1;iVEX_NUM -1;i++)
{
min=MAXINT;
for(w=0;wVEX_NUM;w++)
if(!s[w] dist[w]min)
{
v=w;
min=dist[w];
}
s[v]=1;
for(j=0;jVEX_NUM;j++)
if(!s[j] (min+Gn-arcs[v][j]dist[j]))
{
dist[j]=min+Gn-arcs[v][j];
path[j]=v;
}
}
}
void PutPath(Mgraph *g,int v0,int v1,int p[],int d[])
{
int k;
int next;
int top=0;
int st[20];
if(d[v1]MAXINT v1!=v0)
{
st[top
您可能关注的文档
最近下载
- 中国飞机座舱透明件行业市场占有率及投资前景预测分析报告.pdf VIP
- 静脉用药安全输注药护专家指引.pptx VIP
- 十年(2015-2024)高考英语语法填空真题与模考试卷汇编16-定语从句a原卷版(含答案).pdf VIP
- AQ 2061-2018 金属非金属地下矿山防治水安全技术规范.docx VIP
- (新)预防艾梅乙母婴传播试卷.docx VIP
- 香丽高速公路第八标段弃土场.docx VIP
- CT扫描技术模拟试题及答案、南方医科大学2006级医学影像技术学试卷.pdf VIP
- 运动生理学(全集)PPT(精品PPT).pptx VIP
- 人工智能基础与应用课件.pptx VIP
- GB 14976-2002 流体输送用不锈钢无缝钢管.pdf VIP
文档评论(0)