栈 及其运用
目录
A. 关于栈
B. 小鱼的记忆
C. 日记账单
D. 计算表达式
E. 车厢调度
F. 音乐会(选做)
G. 上网
H. 表达式的计算(选做)
A. 关于栈
题目描述
栈是一种线性表,只允许从栈的顶部加或者删除数据,满足所谓的“先进后出”的原则。
然后你要实现一个栈,支持如下功能:
1、加一个元素到栈里:push()
2、删除栈顶的元素: pop()
3、读取栈顶部元素的值: top()
4、读取栈中元素的个数:size()
5、判断栈中是否有元素:empty()
这个栈在一开始时是空的,里面没有元素。
输入格式:
第一行有一个整数n,意味着会有n次操作。
在接下来的n行里,每行一个操作。请阅读下面的样例,自己体会具体栈是如何操作的。
输出格式:
一行,从头到尾输出最终的栈里的数据,数据之间用空格隔开。
样例输入:
5
+ 9
-
+ 10
+ -20
-
样例输出:
10
范围: 1s, 256M
N<=1000, 元素不大于 int.
#include
using namespace std;
int n,x;
stack a;
char b;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>b;if(b=='+'){cin>>x;a.push(x);}else if(b=='-'){if(a.empty()==0){a.pop();}}}while(a.empty()!=1){cout<
B. 小鱼的记忆
时间限制:1s 空间限制:250M
题目描述:
小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,长度最多不超过1000000个,数字大小不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。
输入格式:
一行内输入一串整数,以0结束,以空格间隔。
输出格式:
一行内倒着输出这一串整数,以空格间隔。
输入样例
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
