数据结构问题,如何用两个队列实现栈操作!求大神!
栈是先进后出,而队列是先进先出,不知如何用队列实现栈的操作,求各位解答
程序代码: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);
}
}
