1.定义
主要利用了栈“栈底位置不变,而栈顶位置动态变化”的特性。首先为两个栈申请一个共享的一维数组空间S[M],将两个栈的栈底分别放在一维数组的两端,分别是0,M-1。
共享栈的空间示意为:top[0]和top[1]分别为两个栈顶指示器 。
数据结构定义:
#define M 100
typedef int StackElementType;
typedef struct DqStack
{
StackElementType Stack[M];
StackElementType top[2]; /*top[0]和top[1]分别为两个栈顶指示器*/
}DqStack;
2.基本操作
1.初始化
//初始化
DqStack *InitStack(DqStack *S)
{
S=(DqStack*)malloc(sizeof(DqStack));
S->top[0]=-1;
S->top[1]=M;
printf("初始化成功。\n");
return S;
}
2.进栈
//进栈
int