问题 : 堆栈基础
题目描述
输入n个数据(n<=10000),在这组数据中:0表示入栈,1表示出栈(注意:入栈的数据是0后面的数据。如:0 3 0 5是将3 和5入栈)。以-1为结尾,最后输出堆栈里剩下的数据。
输入
一组数,以-1结尾
输出
堆栈里剩下的数
样例输入
0 1 0 2 0 3 0 8 1 -1
样例输出
3 2 1
#include<stdio.h> int main(){ int n; int a[10000]; int b[10000]; int i=0,l,p=0,j; while(1){ scanf("%d",&n); if(n==-1){ break; }else a[i++]=n; } for(j=0;j<i;j++){ if(a[j]==0){ b[p++]=a[j+1]; j++; }else if(a[j]==1){ p--; } } for(j=p-1;j>=0;j--) printf("%d ",b[j]); return 0; }