栈的顺序实现
#include<stdio.h>
#include<iostream>
#include<cstdlib>
using namespace std;
#define MaxSize 100
typedef int ElemType;
typedef struct{
ElemType *base;
ElemType *top;
int stacksize;
}SqStack;
void InitStack(SqStack &S)
{
S.base=new ElemType[MaxSize];
S.top=S.base;
S.stacksize=MaxSize;
}
int StackEmpty(SqStack S)
{
if(S.top==S.base)
return 1;
else
return 0;
}
int StackLength(SqStack S)
{
return (S.top-S.base);
}
void ClearStack(SqStack S)
{
if(S.base)
S.top=S.base;
}
void Push (SqStack &S,ElemType e)
{
if(S.top-S.base==S.stacksize)
cout <<"堆栈满";
else
{
*S.top=e;
S.top