#S6R01P01. 【例题】二叉树的两种遍历

【例题】二叉树的两种遍历

二叉树的两种遍历

难度:T2

【知识点:树表示与遍历】

前置知识:二叉树、编号数组、孩子兄弟和递归遍历。

题目描述

给出一棵非空二叉树,结点身份编号1到n,指定根r。每个结点给出左、右孩子编号,0表示没有。按先根左后右得到前序,按先左后右最后根得到后序,输出两种序列。

输入格式

第一行n r;随后n行,第i行左孩子编号和右孩子编号。保证全部结点恰好构成题意所述合法树。

输出格式

两行,第一行前序,第二行后序,编号间以空格分隔。

样例输入

4 1
2 3
0 4
0 0
0 0

样例输出

1 2 4 3
4 2 3 1

样例解释

先访问1,再2及其右4,最后3;后序把每个根放在子树之后。

数据范围

1≤n≤20。普通结点编号在1..n,空孩子/兄弟记0。