//定义两个空栈及栈顶指针 int stack1[1000]; int stack2[1000]; int top1 = 0, top2 = 0; //入队就是直接将元素压入其中一个栈 void push(int node ) { stack1[top1++] = node; } //出队就是先将其中一个栈的元素逐一转入第二个栈中 //然后再逐一将第二个栈中的元素输出,即出队序列=入队序列 int pop() { int a; if(top2 == 0){ while(top1 != 0){ stack2[++top2] = stack1[--top1]; } } return stack2[top2--]; }其中,这一步
stack2[++top2] = stack1[--top1];
是由这两步合起来的:
a = stack1[--top1]; stack2[++top2] = a;或者说是由这四步合起来的:
top1--; a = stack1[top1]; top2++; stack2[top2] = a;