#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;
}
线性表-顺序栈
最新推荐文章于 2021-04-15 23:03:00 发布