HM212 栈接口演练
HM212 栈接口演练
来源: 第 212 集 stack容器-常用接口
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
栈符合先进后出。STL 里使用它要包含头文件 stack。构造只有默认构造和拷贝构造,赋值用 =。数据进出只有栈顶这一端:
push:入栈;top:看栈顶,不删除;pop:去掉栈顶;empty:是否为空;size:元素个数。
查看栈里每一个数时,必须「看一眼 top 再 pop」。这会改容器,因此**不算遍历**。常用写法是:只要 !empty(),就输出 top 再 pop。
请这样做:
- 默认构造
s1,把输入序列依次push进去。 - 拷贝构造
s2(s1),再用s3 = s2赋值。 - 先输出
s1的size以及是否为空(空则YES,否则NO)。 - 用上面的「看顶再弹出」把
s1弹空,按弹出顺序输出。 - 再输出弹空后的
size以及是否为空。 - 对
s2、s3各做一次同样的弹空输出(不必再打印它们弹空后的大小)。
输入格式
第一行一个整数 \(n\)。
第二行 \(n\) 个整数,按顺序入栈。当 \(n=0\) 时本行可以是空行。
输出格式
共五行:
s1弹空前的size与YES/NO,中间一个空格;s1的弹出序列,整数之间一个空格,行末无多余空格;若一开始就空,输出空行;s1弹空后的size与YES/NO;s2的弹出序列(格式同第 2 行);s3的弹出序列(格式同第 2 行)。
样例
输入 #1
4
10 20 30 40
输出 #1
4 NO
40 30 20 10
0 YES
40 30 20 10
40 30 20 10
输入 #2
1
7
输出 #2
1 NO
7
0 YES
7
7
说明
\(0 \le n \le 1000\),元素绝对值不超过 \(10^9\)。
样例 #1 对应四个数依次入栈:弹空前大小为 \(4\);后进的 \(40\) 先出,接着 \(30,20,10\);全部弹出后大小为 \(0\)。拷贝构造和赋值得到的两份栈弹出顺序相同。
信息
- ID
- 1211
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者