HM212 栈接口演练

HM212 栈接口演练

HM212 栈接口演练

来源: 第 212 集 stack容器-常用接口

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

栈符合先进后出。STL 里使用它要包含头文件 stack。构造只有默认构造和拷贝构造,赋值用 =。数据进出只有栈顶这一端:

  • push:入栈;
  • top:看栈顶,不删除;
  • pop:去掉栈顶;
  • empty:是否为空;
  • size:元素个数。

查看栈里每一个数时,必须「看一眼 toppop」。这会改容器,因此**不算遍历**。常用写法是:只要 !empty(),就输出 toppop

请这样做:

  1. 默认构造 s1,把输入序列依次 push 进去。
  2. 拷贝构造 s2(s1),再用 s3 = s2 赋值。
  3. 先输出 s1size 以及是否为空(空则 YES,否则 NO)。
  4. 用上面的「看顶再弹出」把 s1 弹空,按弹出顺序输出。
  5. 再输出弹空后的 size 以及是否为空。
  6. s2s3 各做一次同样的弹空输出(不必再打印它们弹空后的大小)。

输入格式

第一行一个整数 \(n\)。

第二行 \(n\) 个整数,按顺序入栈。当 \(n=0\) 时本行可以是空行。

输出格式

共五行:

  1. s1 弹空前的 sizeYES/NO,中间一个空格;
  2. s1 的弹出序列,整数之间一个空格,行末无多余空格;若一开始就空,输出空行;
  3. s1 弹空后的 sizeYES/NO
  4. s2 的弹出序列(格式同第 2 行);
  5. 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
通过率
?
上传者