main.c
#include"matrixGragh.h"
#include
int main(int argc, char *argv[]) {
MGragh *gragh = createGragh();
printGragh(gragh);
return 0;
}
matrixGragh.h
#ifndef MATRIXGRAGH_H
#define MATRIXGRAGH_H
#include
#include
typedef struct MGragh {
int vNum;
int eNum;
int ver[100];
int enge[100][100];
}MGragh;
MGragh* createGragh();
void printGragh(MGragh *gragh);
#endif
matrixGragh.c
#include"matrixGragh.h"
MGragh* createGragh() {
MGragh *gragh = (MGragh*)malloc(sizeof(MGragh));
gragh->eNum = 0;
puts("请输入顶点数目:");
scanf("%d",&gragh->vNum);
for(int i=0;i<gragh->vNum;i++) {
puts("请输入顶点名称");
scanf("%d",&gragh->ver[i]);
}
int x, y, res;
puts("请输入边(v1 v2),输入q终止输入");
res = scanf("%d%d",&x,&y);
while(res == 2) {
int row, col;
for(int i=0;i<gragh->vNum;i++) {
if(gragh->ver[i] == x) {
row = i;
break;
}
}
for(int i=0;i<gragh->vNum;i++) {
if(gragh->ver[i] == y) {
col = i;
break;
}
}
gragh->enge[row][col] = 1;
gragh->eNum++;
puts("请输入边(v1 v2),输入q终止输入");
res = scanf("%d%d",&x,&y);
}
return gragh;
}
void printGragh(MGragh *gragh) {
for(int i=0;i<gragh->vNum;i++) {
for(int j=0;j<gragh->vNum;j++) {
printf("%d ",gragh->enge[i][j]);
}
puts("");
}
}