数据结构图的应用

问题描述:n个村庄之间的无向图,边上的权值w(i,j)表示村庄ij之间道路长度.现要从这n个村庄中选择一个村庄新建一所医院,使离医院最远的村庄到医院的路程最短.设计一程序求解此问题.             

基本要求:

用邻接矩阵表示无向网,应显示所选中的村庄到各村庄的最短距离。

万一你要用的话 改改函数名 变量名吧 。。。不然老师一看都一样。。。

 

 #include using namespace std; #define INF 32767 #define MaxVex 20 typedef enum {DG,DN,UDG,UDN}GraphKind; bool path[MaxVex][MaxVex]={}; bool final[MaxVex]; int D[MaxVex]={0}; int d[MaxVex]={0}; struct ArcCell{ int adj; int *info; }; struct Graph{ int vexs[MaxVex]; ArcCell arcs[MaxVex][MaxVex]; int vexnum,arcnum; GraphKind kind; }; int getmax(int *d,Graph a) { int result=0; for(int i=0;id[i]){result=d[i];j=i;} return j; } void input(Graph *graph) { int n; cout<<"请输入顶点个数"; cin>>n; graph->vexnum=n; cout<arcs[j][i].adj>0&&graph->arcs[j][i].adj<=INF){graph->arcs[i][j].adj=graph->arcs[j][i].adj;cout<arcs[j][i].adj;} else {cout<>graph->arcs[i][j].adj;} if(graph->arcs[i][j].adj==-1)graph->arcs[i][j].adj=INF; */ } } void Dijkstra(Graph G,int v0) { int min,v,w; for(v=0;v1)cout<<"->"; cout<

你可能感兴趣的:(学习笔记,C++)