图的邻接矩阵表示
#include <stdio.h>
#include <string.h>
//#define INT_MAX 0XFFFFFF
#define INFINIFY INT_MAX
#define MAX_VERTEX_NUM 100
typedef struct Graph
{
int vexs[MAX_VERTEX_NUM+1];
int AdjMatrix[MAX_VERTEX_NUM+1][MAX_VERTEX_NUM+1];
int vexnum, edgenum;
}Graph;
void CreatGraph(Graph &g)
{
int i,j;
printf("Please input vertex and edges number: ");
scanf("%d %d", &g.vexnum, &g.edgenum);
for(i=0; i<g.vexnum; i++)
{
scanf("%d",&g.vexs[i]);
for(j=0; j<g.vexnum; j++)
g.AdjMatrix[i][j] = 0;
}
int a, b, w;
for(i=0; i<g.edgenum; i++)
{
printf("Input edge a->b and its weight: ");
scanf("%d %d %d", &a, &b, &w);
g.AdjMatrix[a][b] = g.AdjMatrix[b][a] = w;
}
}
void PrintGraph(Graph g)
{
int i, j;
for(i=0; i<g.vexnum; i++)
{
for(j=0; j<g.vexnum-1; j++)
printf("%d ", g.AdjMatrix[i][j]);
printf("%d\n", g.AdjMatrix[i][j]);
}
}
int main()
{
Graph G;
CreatGraph(G);
PrintGraph(G);
return 0;
}