#STACK001. 栈的逆序输出
栈的逆序输出
栈的逆序输出
题目背景
栈是一种遵循“后进先出”(LIFO)原则的数据结构。元素只能从栈顶进入,也只能从栈顶离开。
本题用于练习 C++ STL 中 stack 的基本操作:
push():把元素压入栈顶;top():读取栈顶元素;pop():删除栈顶元素;empty():判断栈是否为空。
题目描述
给定 个整数,请将它们依次压入栈中,然后按照出栈顺序输出所有整数。
也就是说,你需要将输入的 个整数逆序输出。
例如,依次输入:
10 20 30
三个数字依次入栈后, 位于栈顶,因此出栈顺序为:
30 20 10
输入格式
第一行输入一个整数 ,表示整数的数量。
第二行输入 个整数 。
输出格式
输出一行,共 个整数,表示这些整数的逆序结果。
相邻两个整数之间用一个空格分隔,行末可以有多余空格。
输入输出样例
样例 1
5
1 2 3 4 5
5 4 3 2 1
样例 2
6
10 8 10 3 7 2
2 7 3 10 8 10
数据范围
对于全部测试数据:
- ;
- 。
提示
可以按照下面的步骤完成:
- 定义一个
stack<int>; - 使用
push()将所有整数依次压入栈中; - 当栈不为空时,先使用
top()输出栈顶元素,再使用pop()删除栈顶元素。
请注意,pop() 只负责删除栈顶元素,不会返回被删除的值。
错误写法:
int x = s.pop();
正确写法:
int x = s.top();
s.pop();
来源
数据结构课堂练习——栈的基本操作
粤公网安备44195502000195号