#include<stdio.h>
#define MAXSIZE 100
typedef struct{
int data[MAXSIZE];
int top;
}Stack;
//初始化栈
void InitStack(Stack *s);
//判栈是否为空
int Empty(Stack *s);
//返回栈顶元素
int Top(Stack *s);
//删除栈顶
void Pop(Stack *s);
//入栈
void Push(Stack *s, int e);
//清空栈
void Clear(Stack *s);
void InitStack(Stack *s){
s->top = -1;
}
int Empty(Stack *s){
if (s->top == -1){
return 0;
}
return 1;
}
int Top(Stack *s){
if (Empty(s) == 1){
return s->data[s->top];
}
return -1;
}
void Pop(Stack *s){
if (Empty(s) == 1){
s->top--;
}
}
void Push(Stack *s, int e){
s->data[++s->top] = e;
}
void Clear(Stack *s){
s->top = -1;
}
int main()
{
Stack s;
InitStack(&s);
if(Empty(&s) == 1)
{
printf("栈有值\n");
} else{
printf("栈 空\n");
}
for (int i=0; i<10; i++)
{
Push(&s, i);
}
Pop(&s);
printf("栈顶元素为:%d",Top(&s));
Clear(&s);
return 0;
}