题目描述
栈是计算机中经典的数据结构,简单的说,栈就是限制在一段进行插入删除操作的线性表,栈有两种最终要的操作pop(从栈顶弹出一个元素)和push(将一个元素进栈);
栈的重要性不言自明,任何一门数据结构的课程都会介绍栈.
现在就要求你模拟栈的pop和push操作
输入
第一行给定一个n(1
接下来的n行对于每一行对应一种操作
总共有两种操作:
pop 输出栈顶元素,并执行出栈
push x(1<=x<=1e9)将x入栈
保证在栈空的时候不会执行pop操作
输出
对于每一次pop操作都输出对应元素,
如果n次操作结束后,栈内还有元素,执行pop操作并输出,直到栈空
对于每个结果占一行
样例输入
3
push 2
push 3
pop
样例输出
3
2
AC代码:
#include <stdio.h>
#include <stdlib.h>
int a[100000], t = 0;
void pop() {
t--;
printf("%d\n", a[t]);
}
void push() {
scanf("%d", &a[t]);
t++;
}
int main() {
int n,i, x;
scanf("%d", &n);
for (i = 0; i < n; i++) {
char c[10];
scanf("%s", c);
if (c[1] == 'o')
pop();
else if (c[1] == 'u')
push();
}
while (i == n && t != 0)
pop();
return 0;
}
注:这道题通过查阅资料完成,由于对栈不熟悉,无法独立完成