#include<stdio.h>
#include<malloc.h>
#define maxsize 100
typedef int dataType;
typedef struct{
dataType data[maxsize];
int top;
}Seqstack;
//创建顺序栈
Seqstack *CreateStack(){
Seqstack *t = (Seqstack*)malloc(sizeof(Seqstack));
t->top = -1; //初始化一个空的顺序栈
return t;
}
//判断栈是否为空
int Empty(Seqstack *s){
return s->top == -1;
}
//判断栈是否满
int Full(Seqstack *s){
return s->top == maxsize - 1;
}
//元素x进栈
void push(Seqstack *s,dataType x){
if(Full(s)) exit(1);
s->data[++s->top] = x;
}
//出栈
void pop(Seqstack *s){
if(Empty(s)) exit(1);
s->top--;
}
//取栈顶元素
dataType top(Seqstack *s){
if(Empty(s)) exit(1);
return s->data[s->top];
}
//求栈的个数
int size(Seqstack *s){
return s->top + 1;
}
int main()
{
Seqstack *s = CreateStack();
push(s,80);
push(s,90);
pop(s);
printf("栈有%d个元素,栈顶元素为:%d\n",size(s),top(s));
}
实验结果如下: