模拟树遍历

im168517 程序题 共 个子题

二叉树的中序遍历可以借助一个堆栈来用非递归的方式实现。例如,对一棵有 6 个结点的二叉树(结点键值从 1 到 6)进行遍历,堆栈操作为:push(1); push(2); push(3); pop(); push(4); pop(); push(5); push(6); pop() —— 其中 push 为入栈,pop 为出栈。则这套操作对应了一棵唯一的二叉树,如下图所示。

图

你的任务是输出这棵树的后序遍历序列。

输入格式

输入第一行给出一个正整数 N(≤ 30),是二叉树中结点的个数(结点键值从 1 到 N)。随后 2N 行,每行给出一个堆栈操作:Push X 表示将键值为 X 的结点入栈,Pop 表示将一个结点出栈。

输出格式

在一行中输出该树后序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。裁判保证输入数据一定对应了一棵树。

输入样例

6
Push 1
Push 2
Push 3
Pop
Pop
Push 4
Pop
Pop
Push 5
Push 6
Pop
Pop

输出样例

3 4 2 6 5 1

限制

时间限制:1000,内存限制:262144

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧