邻接矩阵,是用来存储图的,也是对称矩阵,通过邻接矩阵,可以很容易的知道图中的信息。下面给出邻接矩阵的创建代码。
typedef char VertexType; /*顶点类型,可以自定义*/
typedef int EdgeType; /*边权值类型*/
#define MAXVEX 100 /*最大定点数*/
#define INFINITY 65535 /*无穷大*/
typedef struct
{
VertexType vexs[MAXVEX]; /*顶点表*/
EdgeType arc[MAXVEX][MAXVEX]; /*邻接矩阵,可以看做边表*/
int numVertexes,numEdges; /*顶点和边数*/
}MGraph;
/*具体实现函数*/
void CreatGraph(MGraph*L)
{
int i,j,k ,w;
printf("输入顶点和边数:\n ");
scanf("%d,%d\n",&L->numVertexes,&L->numEdges); /*输入顶点和边数*/
for(i=0;i<L->numVertexes;i++)
{
scanf("%s\n",&L->vexs[i]);
}
for(i=0;i<L->numVertexes;i++)
for(j=0;j<L->numVertexes;j++)
{
L->arc[i][j]=INFINITY;//初始化
}
for(k=0;k<L->numEdges;k++)
{
printf("输入(vi,vj)下标和权值w:\n");
scanf("%d,%d,%d\n",&i&j&w);
L->arc[i][j]=w;
L->arc[j][i]=L->arc[i][j];/*邻接矩阵的对称性*/
}
}