数据结构问题,如何用两个队列实现栈操作!求大神!
栈是先进后出,而队列是先进先出,不知如何用队列实现栈的操作,求各位解答![](images/smilies/emot/em01.gif)
void pop(Stack *S, ElemType *e) { ElemType tmp; if (StackEmpty(*S)) return; if (QueueEmpty(S->queue1)) { while (1 < QueueCount(S->queue2)) { DeQueue(&S->queue2, &tmp); EnQueue(&S->queue1, tmp); } DeQueue(&S->queue2, e); } else { while (1 < QueueCount(S->queue1)) { DeQueue(&S->queue1, &tmp); EnQueue(&S->queue2, tmp); } DeQueue(&S->queue1, e); } } void push(Stack *S, ElemType e) { if (StackFill(*S)) return; if (QueueEmpty(S->queue1)) { EnQueue(&S->queue2, e); } else { EnQueue(&S->queue1, e); } }