#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);
}
}
严蔚敏数据结构第二版(p85,3)
最新推荐文章于 2018-12-25 22:01:24 发布