#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(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;
}
转载请注明原文地址:https://blackberry.8miu.com/read-43628.html