- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公园景点导游问题Dijkstra求最短路径
公园主要游览景点导游问题。
问题描述:对某公园主要游览景点导游。
功能需求:要求完成以下功能:
1.将公园内各景点输出。
2.将公园内每两个位置(若两个位置之间有直接路径)的距离输出。
3.修改:修改两个位置(若两个位置之间有直接路径)的距离,并重新输出每两个位置(若两个位置之间有直接路径)的距离;
4.求最短路径:输出给定两点之间的最短路径的长度及途经的地点,输出任意一点与其他各点的最短路径;
5.删除:删除任意一条边。
6.插入:插入任意一条边。
代码
#include stdio.h
#include iostream.h
#includestdlib.h
#includeconio.h
#include malloc.h
#includestring.h
#define MAX 1000
#define LENGTH 6
#define value int
typedef struct
{
char name[30];
int num;
}VEXTYPE;
typedef struct
{
VEXTYPE vexs[LENGTH];
value arcs[LENGTH][LENGTH];
int vexnum,arcnum ;
}MGraph;
MGraph b;
MGraph InitGraph()
{
int i, j;
MGraph G;
G.vexnum =6; //初始景点数为6,即图的顶点数
G.arcnum =15; //初始景点最大路径数为15 ,即图的最大边数
for(i=0;iG.vexnum;i++)
G.vexs[i].num=i;
strcpy(G.vexs[0].name,景点A); //景点A
strcpy(G.vexs[1].name,景点B); //景点B
strcpy(G.vexs[2].name,景点C); //景点C
strcpy(G.vexs[3].name,景点D); //景点D
strcpy(G.vexs[4].name,景点E); //景点E
strcpy(G.vexs[5].name,景点F); //景点F
for(i=0;iG.vexnum;i++)
for(j=0;jG.vexnum;j++)
G.arcs[i][j]=MAX;
G.arcs[0][1]=50; //景点A与景点B的距离为 50
G.arcs[0][2]=20; //景点A与景点C的距离为 20
G.arcs[0][3]=30; //景点A与景点D的距离为 30
G.arcs[1][2]=10; //景点B与景点C的距离为 10
G.arcs[1][4]=70; //景点B与景点E的距离为 70
G.arcs[2][5]=90; //景点C与景点F的距离为 90
G.arcs[3][5]=40; //景点D与景点F的距离为 40
G.arcs[4][5]=50; //景点E与景点F的距离为 50
for(i=0;iG.vexnum;i++)
for(j=0;jG.vexnum;j++)
G.arcs[j][i]=G.arcs[i][j];
return G;
}
void Menu() //功能需求选项菜单
{
cout*********功能需求选项菜单*********\n;
cout 1---输出公园内景点\n;
cout 2---输出每两个直接相连景点的距离\n;
cout 3---修改两个景点距离\n;
cout 4---两景点之间最短路径\n;
cout 5---删除某条边(两个直接相连景点的连线)\n;
cout 6---插入某条边\n;
cout 0---退出\n;
cout*******某公园主要游览景点导游*******\n;
}
void PutOutVex(MGraph *G) //功能 1 输出公园内景点
{
cout公园内各景点endl;
for(int i=0;iG-vexnum;i++)
coutG-vexs[i].name endl;
}
void PutOutArc(MGraph *G) //功能 2 输出公园内每两个直接相连景
文档评论(0)