栈 及其运用

目录

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结束,以空格间隔。

输出格式:

一行内倒着输出这一串整数,以空格间隔。

输入样例


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部