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是一个空栈,实现将队列中的所有元素逆置的主要内容,如果未能解决你的问题,请参考以下文章

两个栈模拟一个队列的行为

Wannafly挑战赛19 A-队列Q

单调队列的实现

栈队列

C中的非繁忙阻塞队列实现

二级公共基础 - 栈循环队列二叉树计算题