邻接矩阵实现代码

邻接矩阵,是用来存储图的,也是对称矩阵,通过邻接矩阵,可以很容易的知道图中的信息。下面给出邻接矩阵的创建代码。

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;inumVertexes;i++)
{
scanf("%s\n",&L->vexs[i]);
}

for(i=0;inumVertexes;i++)

for(j=0;jnumVertexes;j++)
{
L->arc[i][j]=INFINITY;//初始化

}

for(k=0;knumEdges;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];/*邻接矩阵的对称性*/
}

}


你可能感兴趣的:(c)