Q是一个队列,S是一个空栈,实现将队列中的所有元素逆置
Posted 黄 坤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Q是一个队列,S是一个空栈,实现将队列中的所有元素逆置相关的知识,希望对你有一定的参考价值。
题目:Q是一个队列,S是一个空栈,实现将队列中的所有元素逆置
解题思想:由于对队列的一系列操作不可能将其中的元素逆置,而栈可以将入栈的元素逆序提取出来,因此我们可以让队列中的元素逐个地出队列,入栈:全部入栈后在逐个出栈,入队列。
算法如下:
void Inverser(Stack S,Queue Q)
//本算法实现将队列中的元素逆置
while(!QueueEmpty(Q))
x=DeQueue(Q); //队列中全部元素依次出队
Push(S,x); //元素依次入栈
while(!StackEmpty(S))
Pop(S,x); //栈中全部元素依次出栈
EnQueue(Q,x); //再入队
以上是关于Q是一个队列,S是一个空栈,实现将队列中的所有元素逆置的主要内容,如果未能解决你的问题,请参考以下文章