青岛大学王卓老师数据结构-C++实现顺序栈
废话不多说 直接上代码
下面展示 代码
。
#include <iostream>
using namespace std;
#define MAXSIZE 100
typedef int SElemType;
//定义栈的顺序表示
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
//顺序栈的初始化
int InitStack(SqStack &S) {
S.base = new SElemType;
if (!S.base)
return -1;
S.top = S.base;
S.stacksize = MAXSIZE;
}
//判断栈是否为空
bool StackEmpty(SqStack &S)
{
if (S.base == S.top)
{
return true;
}
else
{
return false;
}
}
//清空顺序栈
void StackClear(SqStack &S)
{
if (S.base)
{
S.base == S.top;
}
}
//销毁顺序栈
void DestroyStack(SqStack &S)
{
if (S.base)
{
delete S.base;
S.stacksize = 0;
S.top = S.base = NULL;
}
}
//顺序栈入栈
int EnStack(SqStack &S, SElemType e)
{
if (S.top - S.base == S.stacksize)
return -2;
S.top++;
*S.top = e;
return 0;
}
//顺序栈出栈
int DeStack(SqStack &S, SElemType &e)
{
if (S.base == S.top)return -3;
e = *S.top;
S.top--;
return 0;
}
int main()
{
system("pause");
}
最后感谢青岛大学王卓老师的细心讲解!