堆栈--顺序存储
/** * 栈--顺序存储 **/ #include <stdlib.h> #include <iostream.h> #define OK 1 #define ERROR 0 //栈的最大数据元素数目 #define MAX_STACK 10 typedef struct stack{ int item[MAX_STACK]; //存放栈中数据元素的存储单元 int top;//栈顶指针 }STACK; //初始化栈S void InItStack(STACK *S) { S->top=-1; } //入栈 void Push(STACK *S,int item) { if (S->top==MAX_STACK-1) exit(0); else S->item[++S->top]=item; } //判断栈S是否为空 int StackEmpty(STACK S) { if(S.top==-1) return 1; else 0; } //出栈 void Pop(STACK *S,int *item) { if (StackEmpty(*S)) exit(0); else *item=S->item[S->top--]; } //获取栈顶元素内容 void GetTop(STACK S,int *item) { if (StackEmpty(S)) exit(0); else *item=S.item[S.top]; }