数据结构c语言版 邻接矩阵

2025-06-27 20:40:37
推荐回答(1个)
回答1:

#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);
}