定义一个栈,将5个整数依次入栈,然后依次弹出栈顶元素直至栈为空,并输出出栈元素。

2025-04-28 06:49:06
推荐回答(1个)
回答1:

#include
#include

#define MaxSize 1024//设空栈的最大长度为1024,可根据实际情况进行修改
typedef struct node
{
int data[MaxSize];
int top;
}SeqStack;

SeqStack* Init()
{
SeqStack *s;
s=(SeqStack *)malloc(sizeof(SeqStack));
s->top =-1;
return s;
}

void push(SeqStack *s,int x)
{
if(s->top ==MaxSize-1) return;
else
{
s->top ++;
s->data [s->top ]=x;
}
}

int pop(SeqStack *s)
{
if(s->top ==-1) return 0;
else
return s->data [s->top--];
}

void main()
{
SeqStack *s;
int t;
s=Init();

printf("请输入5入栈数字:\n");
for(int i=0;i<5;i++)
{
scanf("%d",&t);
push(s,t);
}

printf("出栈顺序\n");
while(s->top !=-1)
{
t=pop(s);
printf("%5d",t);
}
printf("\n");
}