# include <stdio.h>
# define MAX 20
int creat_cost(int cost[][MAX]) //cost 用来表示图的邻接矩阵
{
int arcnum,vexnum,v1,v2,w;
printf ("请输入顶点个数和弧数\n"); //输入图的顶点数和弧数
scanf ("%d %d",&vexnum,&arcnum);
for (int i=1; i<=vexnum; ++i)
{
for (int j=1; j<=vexnum; ++j)
{
cost[i][j] = 9999; //假设9999为无限大
}
}
for (int k=1; k<=arcnum; ++k)
{
printf ("请输入两个顶点以及之间的距离\n")
printf ("v1,v2,w = "); //输入所有边的一对顶点v1,v2,以及弧长
scanf (" %d %d %d",&v1,&v2,&w); //并且根据输入数据建立邻接矩阵
cost[v1][v2] = w;
}
return vexnum;
}
void dijkstra(int cost[][MAX],int vexnum) //dijkstra算法 求最短路径
{
int path[MAX],s[MAX],dist[MAX],i,j,n,w,v,sum,min,v1;/* s数组记录顶点v是否已经确定了最短路径
s[v]=1, 顶点v已经确定了最短路径
s[v]=0,顶点v还没有确定最短路径
dist数组表示当前求出的从v1到v2的最短路径
path是路径数组,path[