#include <iostream>#include <string>#include <vector>#define MAXSIZE 100/* 习题3 */using namespace std;typedef struct { int *base; int *top; int size;}SqStack;//初始化 int init(SqStack &S){ S.base = new int[MAXSIZE]; if(!S.base) { cout<<"init err:-1"<<endl; return -1; } S.top = S.base; S.size = MAXSIZE; return 1;}//入栈int push(SqStack &S,int e){ if(S.top-S.base == MAXSIZE) { cout<<"push err:-1"<<endl; return -1; } *S.top++ = e; return 1; } //出栈 int pop(SqStack &S) { if(S.base == S.top) { cout<<"pop err:-1"<<endl; return -1; } *--S.top; return 1; } //取栈顶 int getTop(SqStack S) { if(S.top!=S.base) { return *(S.top-1); } } int main(){ SqStack stack; init(stack); int a; cout<<"请输入a的值:"; cin>>a; while(a!=-1) { cout<<"请输入a的值:"; push(stack,a); cin>>a; } if(a==-1) { cout<<"栈顶元素为:"<<getTop(stack)<<endl; pop(stack); }}
新闻热点
疑难解答