// Filename : stack.c
// Author : LupingChen
// Date : 2015.5.26
// Content : empty.full .push.pop
#include <stdio.h>
#include <stdlib.h>
//声明堆栈结构体数据类型
typedef struct {
int* arr[];
int len;
int top;
} Stack;
//判断站满
int full(Stack* ps);
//判断栈空
int empty(Stack* ps);
//入栈操作
void push(Stack* ps, int data);
//出栈操作
int pop(Stack* ps);
int main(void)
{
return 0;
}
//判断栈满
int full(Stack* ps)
{
return ps->top == ps->len;
}
//判断栈空
int empty(Stack* ps)
{
return 0 == ps->top;
}
//入栈操作
void push(Stack* ps, int data)
{
//栈满
if (full(ps))
{
printf("栈满,入栈失败");
return -1;
}
//数据压栈
ps->arr[ps->top] = data;
ps->top++;
}
//出栈操作
int pop(Stack* ps)
{
//栈空
if (empty)
{
printf("栈空,出栈失败");
return -1; //栈空报错
}
//数据弹出
return ps->arr[--ps->top];
}