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);		//再入队
			}			
}

你可能感兴趣的:(数据结构)