SHAOXIAOJ正在加载中...

1683: 图-建立无向图的邻接矩阵

金币值:2 定数:10 时间限制:1.000 s 内存限制:128 M
正确:64 提交:124 正确率:51.61% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-图

题目描述

从键盘输入一个无向图中的顶点信息和边信息建立对应的邻接矩阵。

测试代码   复制

#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$之间有一条边)。

输出格式

第 $1-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()$ 过滤,避免部分字符读不进去哦~

参考代码:(可能不止一种写法,详见测试代码)