关闭

EOJ 3174 入栈出栈

51人阅读 评论(0) 收藏 举报
分类:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char stack[1500];//栈数组
int top=0;//栈顶
int push(char x)
{
    if(top>=1025)//栈满,入栈失败
        return 1;
    stack[top++]=x;//否则入栈,先入栈后top加一
    return 0;
}
int pop()
{
    if(top>=2)//出栈,当不是最后一个元素时候打印加空格
        printf("%c ",stack[--top]);
    else if(top==1)//最后一个元素出栈加换行符
        printf("%c\n",stack[--top]);
    return 0;
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        memset(stack,0,sizeof(stack));//初始化栈数组
        top=0;
        getchar();//读入换行符
        int i;
        char x;
        for(i=0;i<n;i++)
        {
            scanf("%c",&x);//每次输入后都读入换行符
            getchar();
            push(x);//入栈
        }
        while(top!=0)
            pop();//非空时,出栈
    }
    return 0;
}
注意输入时输入的是字符,所以要用getchar()读取换行符或者空格以保证入栈的都是输入的字符。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2504次
    • 积分:317
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论