C1112 - 图的表示和遍历

题目描述

小明最近学习到了图这个复杂又有趣的数据结构,他学到了图的邻接矩阵的表示方法、图的深度优先遍历、图的广度优先遍历

现在给出一个无向图的描述信息,请你写个程序帮他构建出这个无向图,然后输出这个图的邻接矩阵数据并对这个图进行深度优先遍历和广度优先遍历

图中有n个顶点,每个顶点的值为0 - (n - 1),这里给定的是一个连通图(即从每个顶点出发都可以到达其他的顶点),比如下面这个有5个顶点的图:

1.png

该图对应第1组的样例输入

输入格式

第1行,一个正整数n,代表无向图的顶点的个数

接下来n行,代表每个顶点的信息,格式为:u k v1 v2 v3 ... vk

其中u为顶点的编号,k为与顶点u存在边的顶点数目,v1 v2 v3... vk代表与顶点u相邻的顶点编号

输出格式

前n行n列,代表该图的邻接矩阵数据,每个元素使用1个空格分隔

接下来1行为该图的深度优先遍历的结果,深度优先遍历时从编号为0的顶点开始,同时遍历时以大编号的节点优先(也就是先遍历大编号的顶点再小编号的顶点)

接下来1行为该图的广度优先遍历的结果,广度优先遍历时从编号为0的顶点开始,同时遍历时以大编号的节点优先(也就是先遍历大编号的顶点再小编号的顶点)

输入输出样例

输入样例 输出样例
5
0 3 1 2 4
1 2 3 0
2 2 0 3
3 2 1 2
4 1 0
0 1 1 0 1
1 0 0 1 0
1 0 0 1 0
0 1 1 0 0
1 0 0 0 0
0 4 2 3 1
0 4 2 1 3

数据范围与提示

对于100%的数据满足:$3 \le n \le 20$

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1112.in,输出文件名为:C1112.out