#include
#include
typedef int VertexType;
typedef int Edgetype;
#define MaxVertexNum 30
typedef struct Graph {
VertexType vertexs[MaxVertexNum];
Edgetype arcs[MaxVertexNum][MaxVertexNum];
int vextexNum ,edgeNum;
}MGraph;
void CreatGraph (MGraph *G)
{
int i,j,k;
scanf("%d,%d",&(G->vextexNum),&(G->edgeNum)); //vertexNum 是顶点数 edgeNum是边数
for (i=0;ivextexNum;i++) //输入顶点信息,建立顶点表
scanf("%c",&(G->vertexs [i]));
for (i=0;ivextexNum;i++)
{
for(j=0;jvextexNum;j++)
G->arcs[i][j]=0;
}
for(k=0;kedgeNum;k++)
{
scanf("%d,%d",&i,&j);
G->arcs[i][j]=1; //若加入G->arcs[j][i]=1;则为无向图
}
}
void PrintGraph(MGraph *G)
{
int i,j;
for (i=0;ivextexNum;i++)
{
printf("%c",G->vertexs[i]);
}
for (i=0;ivextexNum;i++)
{
for(j=0;jvextexNum;j++)
printf("%d",G->arcs[i][j]);
printf("\n");
}
}
void main()
{
MGraph *G;
G=(MGraph*)malloc(sizeof(MGraph));
CreatGraph (G);
PrintGraph(G);
}
