在顺序栈的基础上,共享栈将一个连续的数组空间给两个栈共用,一定程度上解决了资源浪费的问题示意图如下!
具体实现代码如下
#include<stdio.h>
#define MaxSize 5
#define ElemType int
typedef struct{
ElemType data[MaxSize];
int top_1,top_2;
}SqDoubleStack;
void init(SqDoubleStack &S);
bool is_empty_1(SqDoubleStack S);
bool is_empty_2(SqDoubleStack S);
bool is_full(SqDoubleStack S);
bool Push(SqDoubleStack & S, ElemType x, int stackNum);
bool Pop(SqDoubleStack &S, ElemType &x, int stackNum);
void Traverse(SqDoubleStack S,int stackNum);
bool Push(SqDoubleStack & S, ElemType x, int stackNum);