欢迎来到天天文库
浏览记录
ID:11762209
大小:27.50 KB
页数:6页
时间:2018-07-13
《校园导游图源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include#include#include#defineMax100#defineN9//景点个数。typedefintAdjMatrix[Max][Max];typedefstruct{ intvexs[Max]; AdjMatrixarcs;}Matrix_Graph;//图的矩阵表示法。voidmenu();//景点名、操作提示。voidcreat(Matrix_Graph*G);//图的建立。void
2、path(Matrix_GraphG,ints,inte);//两景点之间最短的路径,s表示起始景点,e//最终到达景点。#defineMax100#defineN9 voidmenu(){ printf("1---南大门"); printf("2---老师办公室"); printf("3---图书馆"); printf("4---一号教学楼"); printf("5---宿舍"); printf("6---食堂"); printf("7---北大门"); printf("8---44号教学楼"
3、); printf("9---学校广场"); printf("菜单:"); printf("请选择位置对应数字项目:"); printf("1----介绍"); printf("2----路径"); printf("0----退出");} voidcreat(Matrix_Graph*G){ inti,j; for(i=1;i<=N;i++)G->vexs[i]=i;//初始化,0号位不用。 for(i=1;i<=N;i++) for(j=1;j<=N;j++)G->arcs[i][j]=0;//初始值为0。
4、G->arcs[1][2]=2;//表示景点一到景点二的距离是2。 G->arcs[2][1]=2;G->arcs[2][3]=7;G->arcs[2][4]=4; G->arcs[3][2]=7;G->arcs[3][9]=5; G->arcs[4][2]=4;G->arcs[4][5]=5;G->arcs[4][9]=7; G->arcs[5][4]=5;G->arcs[5][6]=6;G->arcs[5][8]=8; G->arcs[6][5]=6;G->arcs[6][7]=5; G->arcs[7][6]=5;G->arcs[7][
5、8]=6; G->arcs[8][5]=8;G->arcs[8][7]=6;G->arcs[8][9]=10; G->arcs[9][3]=5;G->arcs[9][4]=7;G->arcs[9][8]=10; for(i=1;i<=N;i++) for(j=1;j<=N;j++) if(G->arcs[i][j]==0)G->arcs[i][j]=Max;//没有被重新赋值的,表示两景点之间 //没有路,用Max表示无穷大。} voidpath(Matrix_GraphG,ints,inte){ inti,j,u,c=1,t,v;
6、intr[N+1][N+1];//用来存放路径上的景点。 intT[N],flag[N],d[N]; for(i=0;i<=N;i++) for(j=0;j<=N;j++)r[i][j]=0;//初始值为0。 for(i=1;i<=N;i++) { T[i]=-1;//初始值为-1。 flag[i]=1;//初始值为1。 d[i]=Max;//路径长度初始值为无穷大,用Max表示。 } flag[s]=0;//修改标识。 while(c<=N) { t=Max; for(i=1;i<=N;i++) if(flag[i]
7、&&G.arcs[s][i]8、]=r[T[i]][u];u++;} } r[v][u]=v; } r[v][0]=-1; T[c]=v; flag[
8、]=r[T[i]][u];u++;} } r[v][u]=v; } r[v][0]=-1; T[c]=v; flag[
此文档下载收益归作者所有