#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()读取换行符或者空格以保证入栈的都是输入的字符。
EOJ 3174 入栈出栈
最新推荐文章于 2021-09-29 17:36:23 发布