Dotcpp  >  编程题库  >  图的基本存储
题目 3307:

图的基本存储

时间限制: 2s 内存限制: 192MB 提交: 35 解决: 16

题目描述

给定一张有n个点(n<300),m条边的图(保证联通),每个点依次编号为1,2,3...,n,请你使用两种不同的存储方式来存储这张图(邻接矩阵和邻接表)并输出。

输入格式

第一行两个整数n和m,含义和题干一致,

接下来m行,每行两个整数u和v,代表点u和点v之间有边相连。

输出格式

输出包括两部分;

第一部分:

输出使用邻接表存储的图,按照编号从小到大的顺序,依次输出n行,每行输出一个整数i,代表当前点编号,然后输出一个整数s,代表当前点与多少个有边直接相连,之后从大到小输出s个数,代表与i相连的点的编号。

第二部分:

输出使用邻接矩阵存储的图,输出一个n行n列的矩阵,从上往下的第i行,从左往右的第j列的元素为1则表示点i和点j之间有边直接相连,为0则表示没有。

样例输入

4 4
1 2
1 4
1 3
2 3

样例输出

1 3 4 3 2
2 2 3 1
3 2 2 1
4 1 1
0 1 1 1
1 0 1 0
1 1 0 0
1 0 0 0

提示

零基础的同学可以先学习基础,教程见:  C语言教程C++教程编译器教程数据结构教程Python教程单片机教程

视频教学见视频网课

标签