何为共享栈
两个栈共享一个存储空间。两个栈的指针分别为top1和top2。
左右都相当于一个栈,都可能产生上溢。(栈的插入和删除操作都是在栈顶进行的,只可能发生上溢)
基本功能
1.初始化共享栈
2.判断共享栈是否为空
3.栈1和栈2:进栈、出栈
4.获得栈1和栈2的栈顶元素
代码
#include <iostream>
#include <stdlib.h>
#define MaxSize 10
using namespace std;
typedef int ElemType;
typedef struct{
ElemType data[MaxSize];
int top1;
int top2;
}ShStack;
void InitStack(ShStack &S);//初始化共享栈
bool StackEmpty(ShStack &S);//判栈空
bool Push1(ShStack &S,ElemType x);//栈1:进栈
bool Push2(ShStack &S,ElemType x);//栈2:进栈
bool Pop1(ShStack &S,ElemType &x);//栈1:出栈
bool Pop2(ShStack &S,ElemType &x);//栈2:出栈
bool GetTop1(ShStack S,ElemType &x);//栈1:获得栈顶元素
bool GetTop2(ShStack S