69,382
社区成员
发帖
与我相关
我的任务
分享
#define VEXTYPE int
#define ADJTYPE int
#define MAXLEN 40
#include <stdio.h>
#include<iostream>
using namespace std;
typedef struct {
VEXTYPE vexs[MAXLEN];/*顶点数组*/
ADJTYPE arcs[MAXLEN][MAXLEN];/*边长数组*/
int vexnum,arcnum;
int kind;
}MGRAPH;
MGRAPH create_mgraph(MGRAPH &mg){/*创建图*/
int i, j, k;
mg.kind = 2;/*图的种类*/
printf("\n请输入顶点数和边的条数(以逗号隔开):");
scanf("%d,%d", &i, &j);
fflush(stdin);/*清空输入流*/
mg.vexnum=i;
mg.arcnum=j;
for(i=1; i<=mg.vexnum; i++){
printf("请输入第%d个顶点",i);
scanf("%d", &mg.vexs[i-1]);
fflush(stdin);
}
for(i=0; i<mg.vexnum; i++){
for(j=0; j<mg.vexnum; j++){
mg.arcs[i][j] = 0;
}
}
for(k=1; k<=mg.arcnum; k++){
printf("请输入第%d条边的起始顶点和终止顶点(以逗号隔开)",k);
scanf("%d,%d", &i, &j);
mg.arcs[i-1][j-1]=1;
mg.arcs[j-1][i-1]=1;
}
return mg;
}
void print_mgraph( MGRAPH mg )
{
int i,j;
for(i=0; i<mg.vexnum; i++){
for(j=0; j<mg.vexnum; j++){
printf("(%d,%d)%2d\t", i+1, j+1, mg.arcs[i][j]);
}
printf("\n");
}
}
void main()
{
MGRAPH mg;
mg=create_mgraph(mg);
print_mgraph(mg);
return;
}