数据结构与算法 ~ 图 ~ 最短路径 ~ 迪杰斯特拉算法(图采用邻接矩阵储存)
/*graph---dijkstra*/
#include<stdlib.h>
#include<stdio.h>
#define MAX 10
struct vexnode{
int visited;/*访问标志*/
}vex[MAX];
int array[MAX][MAX];/*存放权值*/
int vexnum=-1;
/*创建图的邻接矩阵*/
void create(){
int source,destination,weight,max;
int i,j;
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
array[i][j]=999;
printf("\n===创建图===\n");
printf("\n请输入弧的信息:起点 终点 权值(退出-1):");
scanf("%d%d%d",&source,&destination,&weight);
while (source!=-1){
array[source][destination]=weight;
max=(source>destination)?source:destination;
if (max>vexnum)
vexnum=max;
printf("\n请输入弧的信息:起点 终点 权值(退出-1):");
scanf("%d%d%d",&source,&destination,&weight);
}/*while*/
printf("\n===图创建结束