#include <iostream> #include <string> #include <vector> #include <algorithm> #define MAXSIZE 100 using namespace std;/*顺序栈 */typedef struct{ int *base;//栈底指针 int *top;//栈顶指针 int stacksize;//最大容量 }SqStack;//初始化int InitStack(SqStack &S){ S.base = new int[MAXSIZE]; if(!S.base) { cout<<"method InitStack() err:内存申请error!"<<endl; return 0; } S.top = S.base; S.stacksize = MAXSIZE; } //入栈 int push(SqStack &S,int e) { if(S.top-S.base==MAXSIZE) { cout<<"method push() err:栈满error!"<<endl; return 0; } *(S.top++) = e; return 1; } //取栈顶元素 int getTop(SqStack S) { if(S.top!=S.base) { return *(S.top-1); } else return -1; } //出栈 int pop(SqStack &S) { if(S.top==S.base) { cout<<"method pop() err:栈空error"<<endl; return 0; } int e = *(--S.top); return 1; } int main(){ SqStack stack; InitStack(stack); push(stack,1); push(stack,2); push(stack,3); push(stack,4); push(stack,5); pop(stack); cout<<getTop(stack)<<endl;}
新闻热点
疑难解答