c++ 栈的基本应用
题目描述
小哼和小哈是一对兄妹,爸妈不在家的时候,小哼自然而然就担负起了照顾妹妹的责任。可别看小哼年纪小,他哄妹妹可有一手呢。今天,小哼就发明了一个小游戏来和小哈玩:
家里有一个长长的网球筒,还有一堆的网球,网球筒的直径很小,每次只能放进一个网球。小哼把每个网球都编了号(所有网球编号不一样),小哼有两种选择:第一种,拿一个小球放进球筒里;第二种,小哼会从球筒里拿出一个网球。而小哈要做的,就是每次小哼从球筒里拿出网球之前,凭记忆力猜出拿出来的网球编号是多少。
输入
输入包括多行,每行描述一条操作信息:
1.输入字母’I’,后面紧跟着一个整数x(1<=x<=100),表示当前要在球筒中放入编号为x的球;
2.输入字母’O’,表示当前要从球筒里拿出一个球。
输出
输出拿出网球的顺序,每个编号占一行,如果在取球的时候,球筒中已经没有球,请输出” Empty!”。
样例输入
O I 6 I 4 O I 7 I 1 O I 8 O O O O
样例输出
Empty! 4 1 8 7 6 Empty!
提示
代码
#include <bits/stdc++.h> using namespace std; long long q[10000000]; char tmp[10]; int f; int main() { memset(q,sizeof(q)); char c; while (scanf("%c",&c) != EOF) { long long x; if (c == 'I') { printf("输入 : "); cin >> x; f ++;//f是栈里球的个数 q[f] = x; } else { if (f != 0) { printf("输出 : "); printf("%lld\n",q[f]); f --;//拿出最后放入的那个球 } else { printf("输出 : "); printf("Empty!\n"); } } gets(tmp); } }