C1104 - 我是一棵树

题目描述

小明最近刚学习了树的表示和存储,他想实现对一棵树进行深度优先遍历(先根遍历、后根遍历)、层次遍历,同时他还想求出这棵树的高度和这棵树的度,请你写个程序来帮他实现下

树的度:树中节点的最大度数

1.png

树中每个节点的值是一个字符,存储一个大写字母或者小写字母或者一个数字字符(0 - 9),同时每个节点的值域是不重复的

该树的图示对应于第一个样例输入

输入格式

输入的第一行包含一个整数 n,表示树的节点数。

接下来的 n 行中,每行提供一个节点 u 的信息,格式如下:

data k c1 c2 ... ck

其中 data 是节点 u 的 值域,k 是 u 的度,c1 ... ck 是 u 的第 1 到第 k 个子节点的值域。如果节点没有子节点,则 k 为 0。

注意输入的第1行不一定就是根节点

输出格式

第1行,树的先根遍历结果

第2行,树的后根遍历结果

第3行,树的层次遍历结果

第4行,树的高度(根节点的高度为1)

第5行,树的度(如果树只有一个根节点,则树的度为0)

输入输出样例

输入样例 输出样例
10
A 3 B C D
B 2 E F
C 1 G
D 2 H I
E 0
F 0
G 1 J
H 0
I 0
J 0
ABEFCGJDHI
EFBJGCHIDA
ABCDEFGHIJ
4
3
4
2 0
3 0
4 0
1 3 2 3 4
1234
2341
1234
2
3

数据范围与提示

100%的数据:$1 \le n \le 62$

测试点数目

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

时间与内存限制

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

输入输出模式

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

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