#D1188. 队列和栈
队列和栈
题目描述
队列和栈是两种重要的数据结构,它们具有 push k
和 pop
操作。push k
是将数字 加入到队列或栈中,pop
则是从队列和栈取一个数出来。队列和栈的区别在于取数的位置是不同的。
队列是先进先出的:把队列看成横向的一个通道,则 push k
是将 放到队列的最右边,而 pop
则是从队列的最左边取出一个数。
栈是后进先出的:把栈也看成横向的一个通道,则 push k
是将 放到栈的最右边,而 pop
也是从栈的最右边取出一个数。
假设队列和栈当前从左至右都含有 和 两个数,则执行 push 5
和 pop
操作示例图如下:
push 5 pop
队列 1 2 -------> 1 2 5 ------> 2 5
push 5 pop
栈 1 2 -------> 1 2 5 ------> 1 2
现在,假设队列和栈都是空的。给定一系列 push k
和 pop
操作之后,输出队列和栈中存的数字。若队列或栈已经空了,仍然接收到 pop
操作,则输出 error
。
输入格式
第一行为 ,表示有 组测试输入,。
每组第一行为 ,表示下列有 行 push k
或 pop
操作,。
接下来 行,每行是 push k
或者 pop
,其中 是一个整数。
输入保证同时在队列或栈中的数不会超过 个。
输出格式
对每组测试数据输出两行,正常情况下,第一行是队列中从左到右存的数字,第二行是栈中从左到右存的数字。
若操作过程中队列或栈已空仍然收到 pop
,则在一行中输出 error
。输出应该共 行。
2
4
push 1
push 3
pop
push 5
1
pop
3 5
1 5
error
error