首页 > 试题广场 >

非递归方式遍历二叉树

[编程题]非递归方式遍历二叉树
  • 热度指数:93 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
用非递归方式编码对一个二叉树的前、中、后、层次遍历。

输入描述:
第一行一个正整数n(1<=n<=100),表示二叉树有n个结点。

接下来n行,第i行两个整数li,ri (0<=li,ri<=n) ,分别表示第i个结点的左儿子和右儿子,为0代表空。

保证根为1,保证输入为合法二叉树。


输出描述:
输出四行。

第一行为二叉树的前序遍历;

第二行为中序遍历;

第三行为后序遍历;

第四行为层次遍历。

每一行输出n个数,代表该方式遍历的结点的顺序,相邻两个数之间用一个空格相隔。
示例1

输入

5
3 2
0 5
0 4
0 0
0 0

输出

1 3 4 2 5
3 4 1 2 5
4 3 5 2 1
1 3 2 4 5