栈操作(验满,验空,删除,添加)

来源:互联网 发布:fuzz直播软件下载 编辑:程序博客网 时间:2024/04/29 08:19
/* 栈操作 */#define MAX_STACK_SIZE 100#define TRUE 1#define FALSE 0#define IS_STACK_EMPTY(top) (top < 0 ? TRUE : FALSE)#define IS_STACK_FULL(top) (top >= MAX_STACK_SIZE - 1 ? TRUE : FALSE)typedef struct st{char *str;/* other fields */}element;element stack[MAX_STACK_SIZE];int top = -1;void stack_add(int *top, element item){if(IS_STACK_FULL){stack_full();return ;}stack[++*top] = item;}void stack_full(void){printf("Stack is full.\n");/* other operation */return ;}element delete(int *top){if(IS_STACK_EMPTY)return stack_empty();return stack[(*top)--];}element stack_empty(){printf("Stack is enpty.\n");/* other operation */return stack[top];}