#include
#include
using namespace std ;

#define MUNum 20
#define INFINITY 32767
#define Myprintf cout << "\n\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n" << endl

typedef struct PlaneGraph
{
int PathLength ;
char Pathname[20] ;
}PlaneGraph,PG[MUNum][MUNum] ;

typedef struct
{
char name[20] ;
int num ;
}infor ;

typedef struct
{
infor vexs[MUNum] ;
PG arcs ;
int vexnum ,arcnum ;
}AMGraph ;

void InitGraph(AMGraph &G)
{
int i ,j ;
cout << "\t请输入校园地点的数量、校园小径的个数:" ;
cin >> G.vexnum >> G.arcnum ;//点 边
Myprintf ;

``````for(i=0 ;i<G.vexnum ;i++)
G.vexs[i].num = i ;//为点进行编号

cout << " 输入编号为(0-" << i << ")的校园地点的名称:\n\n" ;//店名称
for(i=0 ;i<G.vexnum ;i++)
{
cout << "\t" ;
cin  >> G.vexs[i].name ;
}

cout << endl ;
Myprintf ;

for(i=0 ;i<G.vexnum ;i++)
for(j=0 ;j<G.vexnum ;j++)
{
G.arcs[i][j].PathLength = INFINITY ;
strcpy(G.arcs[i][j].Pathname,"null");
}

//输入路径信息
int v1,v2,w ;
char wn[20] ;
cout << "输入校园小径首尾地点编号、小径长度及小径名称\n\t(以-1 -1 -1 -1)结束输入:\n\t" << endl ;
cin  >> v1 >> v2 >> w >> wn ;
while(v1!=-1 && v2!=-1 && w!=-1 && strcmp(wn,"-1")!=0)
{
cout << "\t" ;
G.arcs[v1][v2].PathLength = w ;
strcpy(G.arcs[v1][v2].Pathname,wn);
G.arcs[v2][v1].PathLength = w ;
strcpy(G.arcs[v2][v1].Pathname,wn);
cin >> v1 >> v2 >> w >> wn ;
}

Myprintf ;
``````

}

//Floyd
void ShortestPath(AMGraph G)
{
int v,u,i,j,w,k,flag=1;
int p[MUNum][MUNum][MUNum],D[MUNum][MUNum];
for(v=0 ; v for(w=0 ;w {
D[v][w] = G.arcs[v][w].PathLength;
for(u=0;u p[v][w][u] = 0 ;//
if(D[v][w] p[v][w][v] = p[v][w][w] = 1;//
}
for(u=0 ;u for(v=0 ;v for(w=0 ;w if(D[v][u]+D[u][w] {
D[v][w] = D[v][u]+D[u][w];
for(i=0;i p[v][w][i] = p[v][u][i] || p[u][w][i];//
}
while(flag)
{
cout cin >> k >> j ;
if(k=G.vexnum || j=G.vexnum )
{
cout << "该地点不存在!请重新输入!" << endl ;
Myprintf ;
}
else if(k == j )
{
cout << "始点和终点相同!请重新输入!" << endl ;

Myprintf ;
}
else
flag = 0 ;
}

``````    //输出信息
int L[MUNum];
L[0] = k;
int l = 1 ;

cout << "\t总路线长:" << D[k][j] << endl ;

cout << G.vexs[k].name ;
for(u=0 ;u<G.vexnum ;u++)
if(p[k][j][u] && k!=u && j!=u)
{
cout << " ——> " << G.vexs[u].name ;
L[l] = u ;
l++ ;
}

cout << " ——> " << G.vexs[j].name ;
L[l] = j ;
cout << endl ;

cout << "\t路线:" ;
for(u=0 ;u<l ;u++)
{
cout << G.arcs[L[u]] [L[u+1]].Pathname ;
if(u != l-1)
cout << " ——> " ;
}
cout << endl ;
Myprintf ;
``````

}

int main()
{
cout << "\n----------------------------------校园导航----------------------------------" << endl << endl ;
AMGraph G ;
InitGraph(G) ;
char k[10] ;
strcpy(k,"Yes");
while(strcmp(k,"Yes")==0)
{
ShortestPath(G);
cout << "请问是否继续?Yes or No?" << endl ;
cin >> k ;
if(strcmp(k,"Yes") != 0 )
cout << "\n----------------------------------停止查询----------------------------------" << endl ;
}
return 0 ;
}

10 10

0 1 10 逸夫路
1 3 15 敬文路
4 3 70 达夫路
1 2 20 朝阳路
3 7 77 富康路
4 5 12 人民路
5 6 19 孚玉路
6 7 56 龙门路
8 9 73 纬七路
8 7 8 九江路
-1 -1 -1 -1

2个回答

http://blog.csdn.net/hackerain/article/details/6055946
#define MAX_VERTEX_NUM 20
#define MAX 1000000000
typedef struct
{
std::string vexs[MAX_VERTEX_NUM];
int edges[MAX_VERTEX_NUM][MAX_VERTEX_NUM];......

----------------------你好，人类，我是来自CSDN星球的问答机器人小C，以上是依据我对问题的理解给出的答案，如果解决了你的问题，望采纳。

【JSON解析】浅谈JSONObject的使用

python自动下载图片

【前言】 　　收到一封来信，赶上各种事情拖了几日，利用今天要放下工作的时机，做个回复。 　　2020年到了，就以这一封信，作为开年标志吧。 【正文】 　　您好，我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。 　　先说一下我的基本情况，高考失利，不想复读，来到广州一所大专读计算机应用技术专业。学校是偏艺术类的，计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...

Java 14 都快来了，为什么还有这么多人固守Java 8？

【CSDN编者按】1月2日，阿里巴巴发布《达摩院2020十大科技趋势》，十大科技趋势分别是：人工智能从感知智能向认知智能演进；计算存储一体化突破AI算力瓶颈；工业互联网的超融合；机器间大规模协作成为可能；模块化降低芯片设计门槛；规模化生产级区块链应用将走入大众；量子计算进入攻坚期；新材料推动半导体器件革新；保护数据隐私的AI技术将加速落地；云成为IT技术创新的中心 。 新的画卷，正在徐徐展开。...

Python+OpenCV实时图像处理

2020年一线城市程序员工资大调查

python爬取百部电影数据，我分析出了一个残酷的真相
2019年就这么匆匆过去了，就在前几天国家电影局发布了2019年中国电影市场数据，数据显示去年总票房为642.66亿元，同比增长5.4%；国产电影总票房411.75亿元，同比增长8.65%，市场占比 64.07%；城市院线观影人次17.27亿，同比增长0.64%。 看上去似乎是一片大好对不对？不过作为一名严谨求实的数据分析师，我从官方数据中看出了一点端倪：国产票房增幅都已经高达8.65%了，为什...

Windows可谓是大多数人的生产力工具，集娱乐办公于一体，虽然在程序员这个群体中都说苹果是信仰，但是大部分不都是从Windows过来的，而且现在依然有很多的程序员用Windows。 所以，今天我就把我私藏的Windows必装的软件分享给大家，如果有一个你没有用过甚至没有听过，那你就赚了????，这可都是提升你幸福感的高效率生产力工具哦！ 走起！???? NO、1 ScreenToGif 屏幕，摄像头和白板...

【程序人生】程序员接私活常用平台汇总
00. 目录 文章目录00. 目录01. 前言02. 程序员客栈03. 码市04. 猪八戒网05. 开源众包06. 智城外包网07. 实现网08. 猿急送09. 人人开发10. 开发邦11. 电鸭社区12. 快码13. 英选14. Upwork15. Freelancer16. Dribbble17. Remoteok18. Toptal19. AngelList20. Topcoder21. ...

Idea 中最常用的10款插件（提高开发效率），一定要学会使用！

AI 没让人类失业，搞 AI 的人先失业了

2020年，冯唐49岁：我给20、30岁IT职场年轻人的建议

B站是个宝，谁用谁知道???? 作为一名大学生，你必须掌握的一项能力就是自学能力，很多看起来很牛X的人，你可以了解下，人家私底下一定是花大量的时间自学的，你可能会说，我也想学习啊，可是嘞，该学习啥嘞，不怕告诉你，互联网时代，最不缺的就是学习资源，最宝贵的是啥？ 你可能会说是时间，不，不是时间，而是你的注意力，懂了吧！ 那么，你说学习资源多，我咋不知道，那今天我就告诉你一个你必须知道的学习的地方，人称...

【蘑菇街技术部年会】程序员与女神共舞，鼻血再次没止住。（文末内推）

Java校招入职华为，半年后我跑路了

​两年前不知如何编写代码的我，现在是一名人工智能工程师

loonggg读完需要5分钟速读仅需 2 分钟大家好，我是你们的校长。我知道大家在家里都憋坏了，大家可能相对于封闭在家里“坐月子”，更希望能够早日上班。今天我带着大家换个思路来聊一个问题...

&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta http-equiv="X...
Spring框架|JdbcTemplate介绍