数据结构——邻接矩阵的创建(C语言)

    科技2026-01-15  15

    #include<stdio.h> #include<stdlib.h> #define MaxVertexNum 100 #define ElemType int #define VertexType int typedef struct{//邻接矩阵存储 ElemType Vertices[MaxVertexNum]; //顶点信息的数组 ElemType Edge[MaxVertexNum][MaxVertexNum]; //边信息的数组 ElemType vexnum; //顶点数 ElemType arcnum;//边数 }NMGraph; void CreateNMGraph(NMGraph &graph){ int vnum,anum; printf("输入顶点数和边数:"); scanf("%d%d",&vnum,&anum); graph.vexnum=vnum; graph.arcnum=anum; printf("\n图的初始化\n"); for(int i=0;i<vnum;i++){//图的初始化 for(int j=0;j<vnum;j++){ graph.Edge[i][j]=0; } }//for for(int i=0;i<vnum;i++){//存储顶点信息 printf("输入第%d个顶点的信息:",(i+1)); scanf("%d",&(graph.Vertices[i])); } printf("\n"); for(int i=0;i<anum;i++){//存储边表信息 printf("输入边的信息,格式为(v1 v2 w):"); int v1,v2,w; scanf("%d%d%d",&v1,&v2,&w); //无向图 graph.Edge[v1-1][v2-1]=w; graph.Edge[v2-1][v1-1]=w; } } //打印邻接矩阵的方法 void display2(NMGraph &graph){ printf(" "); for(int i=0;i<(graph.vexnum);i++){ printf("%d ",graph.Vertices[i]); } printf("\n"); for(int i=0;i<(graph.vexnum);i++){//顶点 printf("%d ",graph.Vertices[i]); for(int j=0;j<(graph.vexnum);j++){//边 printf("%d ",graph.Edge[i][j]); } printf("\n"); } printf("\n"); } int main(){ NMGraph graph; printf("邻接矩阵创建图\n"); CreateNMGraph(graph); printf("NMGraph邻接矩阵为\n"); display2(graph); return 0; }

    Processed: 0.014, SQL: 9