关于迪杰斯特拉算法的实现
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define Max 20
#define INFINITY 65535
typedef char Onechange;
typedef struct Three {
Onechange ver[Max+1];
int edg[Max][Max];
}Three;
void Twochange( Three *g )
{
int i = 0;
int j = 0;
int Num;
Onechange Ver;
printf("输入图的顶点:\n");
while( '\n' != (Ver=getchar()) )
g->ver[i++] = Ver;
g->ver[i] = '\0';
Num = strlen(g->ver);
printf("请输入顶点相应的的邻接矩阵:\n");
for( i=0; i<Num; i++ )
for( j=0; j<Num; j++ )
scanf("%d", &g->edg[i][j]);
}
void PrintThree( Three g )
{
int i, j;
int Num = strlen(g.ver);
printf("图的顶点为:\n");
for( i=0; i<Num; i++ )
printf("%c ", g.ver[i]);
printf("\n");
printf("图的邻接矩阵为:\n");
for( i=0; i<Num; i++ ) {
for( j=0; j<Num; j++ )
printf("%d ", g.edg[i][j]);
printf("\n");
}
}
int Cal