全文预览

交通咨询系统设计

上传者:qnrdwb |  格式:doc  |  页数:12 |  大小:125KB

文档介绍
idCreateMGraph(MGraph*G,intn,inte){//采用邻接矩阵表示法构造有向图G,n,e表示图的当前顶点数和边数?inti,j,k,w;?for(i=1;i<=n;i++)//输入顶点信息 G->vexs[i]=(char)i;?for(i=1;i<=n;i++) for(j=1;j<=n;j++) G->arcs[i][j]=Maxint;//初始化邻接矩阵?printf("输入%d条边的i,j以及w:\n",e);?for(k=1;k<=e;k++){//读入e条边,建立邻接矩阵 scanf("%d,%d,%d",&i,&j,&w); G->arcs[i][j]=w;?}?printf("有向图的存储结构建立完毕!\n");}voidDijkstra(MGraph*G,intv1,intn){//用Dijkstra算法求有向图G的v1顶点到其他顶点v的最短路径P[v]及其权D[v]//设G是有向图的邻接矩阵,若边<i,j>不存在,则G[i][j]=Maxint//S[v]为真当且仅当v属于s,即已求得从v1到v得最短路径?intD2[MVNum],P2[MVNum];?intv,i,w,min;?enumbooleanS[MVNum];?for(v=1;v<=n;v++){//初始化S和D S[v]=FALSE;//置空最短路径终点集 D2[v]=G->arcs[v1][v];//置初始的最短路径值 if(D2[v]<Maxint) P2[v]=v1;//v1是v的前驱(双亲) else P2[v]=0;//v无前驱?}//endfor?D2[v1]=0;S[v1]=TRUE;?for(i=2;i<n;i++){ min=Maxint; for(w=1;w<=n;w++) if(!S[w]&&D2[w]<min) {v=w;min=D2[w];}

收藏

分享

举报
下载此文档