顺序栈顺序栈比较好写,因此我使用它作为我的算法模板顺序栈的类型描述1234567#define MaxSize 50typedef int ElemType;typedef struct{ ElemType data[MaxSize]; // 存放栈中元素 int top; // 栈顶指针} SqStack;初始化1234// 初始化栈void InitStack(SqStack & s){ s.top = -1; // 初始化栈顶指针}判断栈空12345// 判断栈空bool StackEmpty(SqStack s){ if(s.top == -1) return true; else return false;}入栈12345678// 入栈bool Push(SqStack & s, ElemType x){ // 看栈是否已满,报错 if(s.top == MaxSize - 1) return false; // 入栈 s.data[++s.top] = x; return true; // 成功}出栈12345678// 出栈bool Pop(SqStack & s, ElemType & x){ // 判断栈是否为空 if(StackEmpty(s)) return false; // 先出栈,再减 x = s.data[s.top--]; return true;}获得栈顶元素12345678// 获得栈顶元素bool GetTop(SqStack s, ElemType & x){ // 空栈,报错 if(StackEmpty(s)) return false; // 获取栈顶元素 x = s.data[s.top]; return true;}