储存结构,结构体的定义:(权值w用于表示两点间路径的花费)
typedef int Status;
typedef struct ENode//图的邻接表定义
{
int adjVex;//任意顶点u相邻接的顶点
int w;//边的权值
struct ENode* nextArc;//指向下一个边结点
}ENode;
typedef struct LGraph
{
int n;//图的当前顶点数
int e;//图的当前边数
ENode **a;//指向一维指针数组
}LGraph;
迪杰斯特拉算法:
int Choose(int *d, int *s,int n) //每次选择一个为加入数组s【】的具有最小权值的结点
{
int i,minpos,min;
min=INFTY;
minpos=-1;
for(i=0;i<n;i++)
{
if(d[i]<min&&!s[i])
{
min=d[i]