#include <stdio.h>
#include <stdlib.h>
#define maxsize 1024
typedef char datatype;
typedef struct
{
datatype data[maxsize];
int top;
}seqstack;
void setnull(seqstack *s)
{
s->top=-1;
}
int empty(seqstack *s) //判空栈
{
if(s->top==-1) //返回1则说明为空栈
return 1;
else
return 0; //返回0则说明不为空栈
}
void push(seqstack *s,char ch) //进栈
{
if(s->top==maxsize-1)
{
printf("overflow!\n");
}
else
{
s->top++;
s->data[s->top]=ch;
}
}
datatype pop(seqstack *s) //出栈
{
if(empty(s)==1)
{
printf("underflow!\n");
}
else
{
s->top--;
}
return (s->data[s->top+1]);
}
datatype top(seqstack *s) //取栈顶
{
if(empty(s)==1)
{
printf("stack is empty!\n");
return 0;
}
else return (s->data[s->top]);
}
int main()
{
char x;
seqstack *s;
setnull(s);
system("color e1");
system("cls");
push(s,'a');
x=top(s);
printf("%5c",x);
push(s,'b');
x=top(s);
printf("%5c",x);
push(s,'c');
x=top(s);
printf("%5c",x);
return 0;
}
怎么改呢?
追答seqstack a;这么改动小。。。。
追问没错了,不好意思,我有点不明白这么改的原因是什么?