stack or queue
栈和队列都是常用的线性结构,它们都提供两个操作:
Push
:加入一个元素。
Pop
:弹出一个元素。
不同的是,栈是
”
先进后出
”
,而队列则是
”
先进先出
”
。
给出一个线性结构的进出顺序,判定这个结构是栈还是队列。
时间限制:
1000
内存限制:
65535
输入
第一行输入一个整数
t
,代表有
t
组测试数据 对于每组测试数据,第一行输入一个整数
n
,代表操作的次数。 随后输入
n
行,每行包含两个整数
type val
。 当
type = 1
时,表示该次操作为
push
操作,
val
表示进入的数字。当
type=2
时,表示该次操作为
pop
操作,
val
代表出来的数字。
3<=n<=2000
输出
每组测试数据输出一行。 输出该组数据对应的线性结构,
”
Stack
”
或者
“
Queue
”
。 题目保证是栈或者队列的一种。
样例输入
2
6
1 1
1 2
1 3
2 3
2 2
2 1
4
1 1
1 2
2 1
2 2
样例输出
Stack
Queue
栈的基本操作
栈是一种重要的数据结构,它具有
push k
和
pop
操作。
push k
是将数字
k
加入到栈中,
pop
则是从栈中取一个数出来。
栈是后进先出的:把栈也看成横向的一个通道,则
push k
是将
k
放到栈的最右边,而
pop
也是从栈的最右边取出一个数。
假设栈当前从左至右含有
1
和
2
两个数,则执行
push 5
和
pop
操作示例图如下:
push 5 pop
栈
1 2 -------> 1 2 5 ------> 1 2
现在,假设栈是空的。给定一系列
push k
和
pop
操作之后,输出栈中存储的数字。若栈已经空了,仍然接收到
pop
操作,
则输出
error
。
时间限制:
1000
内存限制:
65536
输入
第一行为
m
,表示有
m
组测试输入,
m<100
。 每组第一行为
n
,表示下列有
n
行
push k
或
pop
操作。(
n<150
) 接下来
n
行,每行是
push k
或者
pop
,其中
k
是一个整数。 (输入保证同时在栈中的数不会超过
100
个)
输出
对每组测试数据输出一行。该行内容在正常情况下,是栈中从左到右存储的数字,数字直接以一个空格分隔,如果栈空,则不作输出;但若操作过程中出现栈已空仍然收到
pop
,则输出
error
。
样例输入
2
4
push 1
push 3
pop
push 5
1
pop
样例输出
1 5
error
发型糟糕的一天
农夫
John
的
N(1
≤
N
≤
80,000)
只奶牛中,有一些也许正在经历发型糟糕的一天。每只奶牛对自己乱糟糟的发型都有自知之明,农夫
John
想知道所有奶牛能看到其他奶牛头顶的数量之和。
任意奶牛
i
身高记为
hi (1
≤
hi
≤
1,000,000,000)
,所有奶牛面向东方(本题示意
C语言六级,少儿编程题库,C语言编程真题,电子学会真题,2022年9月电子学会C语言编程等级考试一级真题试卷