1.初始化
//初始化
void InutStack(DqStack *S){
S->top[0]=-1;
S->top[M-1]=M;
}
2.进栈
//进栈
int Push(DqStack *S,int x,int i){
if(S->top[0]+1==S->top[1])
return 0;//栈满
switch(i){
case 0:
S->top[0]++;
S->elem[S->top[0]]=x;
break;
case 1:
S->top[1]--;
S->elem[S->top[1]]=x;
break;
default: retuen 0;
}
return 1;
}
3.出栈
//出栈
int Pop(DqStack *S,int *x int i){
switch(i){
case 0:
if(S->top[0]==-1)
return 0;//栈空
*x=S->elem[top[0]];
S->top--;
break;
case 1:
if(S->top[1]==M)
return 0;//栈空
*x=S->elem[top[1]];
S->top++;
break;
default: return 0;
}
return 1;
}