P1106 - 查找树中的节点

题目描述

给定一棵树,树中的节点是一个字符,由大写字母字符组成的,树的节点数据可以重复出现,比如下面的一棵树:

1.png

现在请你编写个程序去输出这棵树的先根遍历、后根遍历、树的高度、以及查找出树中指定的元素x出现的次数和第一次出现的位置

输入样例的数据对应的就是图示中的树

输入格式

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

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

seq data parent

其中 seq 是节点 u 的 序号(序号从1开始,从上往下,从左往右依次编号,每个节点的seq唯一不变)

data 是节点 u 的值域

parent为节点 u 的父节点的seq序号

接下来一行,待查找的字符x

注意:输入的第1个节点不一定是树的根节点信息

输出格式

第1行,树的先根遍历结果,每个值域使用一个空格分隔

第2行,树的后根遍历结果,每个值域使用一个空格分隔

第3行,树的高度(根节点的高度、层次号为1)

第4行,待查找的字符x在这棵树中出现的总次数

第5行,待查找的字符x在这棵树中第一次出现的位置信息:该节点的的序号和该节点所在的层次号,使用空格分隔,如果找不到,输出-1 -1

节点在树中第一次出现的定义:从上往下,从左往右第一次找到的该节点

根节点的高度、层次号为1

输入输出样例

输入样例 输出样例
10
1 A -1
2 B 1
3 C 1
4 B 1
5 A 2
6 F 2
7 B 3
8 C 4
9 I 4
10 J 7
B
A B A F C B J B C I
A F B J B C C I B A
4
3
2 2
10
5 A 2
2 B 1
3 C 1
4 B 1
6 F 2
7 B 3
8 C 4
10 J 7
1 A -1
9 I 4
J
A B A F C B J B C I
A F B J B C C I B A
4
1
10 4

数据范围与提示

100%的数据:$1 \le n \le 20$,树的节点中的值域为大写字母

测试点数目

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

时间与内存限制

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

输入输出模式

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

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