一:排序-堆栈基础

问题 : 堆栈基础
题目描述

输入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;
}
 
原文地址:https://www.cnblogs.com/yuming226/p/8146075.html