1683: 图-建立无向图的邻接矩阵
金币值:2
定数:10
时间限制:1.000 s
内存限制:128 M
正确:64
提交:124
正确率:51.61% 命题人:
题目描述
从键盘输入一个无向图中的顶点信息和边信息建立对应的邻接矩阵。
测试代码 复制
#include <stdio.h>
#define MAXVEX 100
typedef char VertexType;
typedef int EdgeType;
typedef struct {
VertexType vexs[MAXVEX];
EdgeType arc[MAXVEX][MAXVEX];
int numNodes;
int numEdges;
} MGraph;
void PrintMGraph(MGraph G);
void CreateMGraph(MGraph &G);
int main(void) {
MGraph G;
CreateMGraph(G);
PrintMGraph(G);
return 0;
}
void PrintMGraph(MGraph G) {
int i,j;
for(i = 0; i <G.numNodes; i++) {
printf("%c\n",G.vexs[i]);
}
for(i = 0; i <G.numNodes; i++) {
for(j = 0; j <G.numNodes; j++)
printf("%10d",G.arc[i][j]);
printf("\n");
}
}
void CreateMGraph(MGraph &G){
}
输入格式
第 $1$ 行输入两个整数,分别表示图中的顶点数 $n$ 和边数 $m$;
第 $2$ 行输入 $n$ 个字符分别表示 $n$ 个顶点信息;
第 $3$ 到 $m+2$ 行每行输入 $2$ 个值,分别表示顶点 $u$ 和顶点 $v$ 的下标值($u,v$之间有一条边)。
第 $2$ 行输入 $n$ 个字符分别表示 $n$ 个顶点信息;
第 $3$ 到 $m+2$ 行每行输入 $2$ 个值,分别表示顶点 $u$ 和顶点 $v$ 的下标值($u,v$之间有一条边)。
输出格式
第 $1-n$ 行每行输出一个字符分别表示图中的顶点信息;
第 $n+1-2n$ 行每行输出 $n$ 个整数分别表示邻接矩阵中的每行信息。
第 $n+1-2n$ 行每行输出 $n$ 个整数分别表示邻接矩阵中的每行信息。
输入样例 复制
3 2
ABC
0 1
1 2
输出样例 复制
A
B
C
0 1 0
1 0 1
0 1 0
提示
本题既有数值型数据输入,又有字符型数据输入,因此需要特别注意如何输入数据。
温馨提示:别忘了每输入一行后过滤掉 $\backslash n$.用 $getchar()$ 过滤,避免部分字符读不进去哦~
参考代码:(可能不止一种写法,详见测试代码)