Q是一个队列,S是一个栈,实现将队列中的元素逆置的算法
时间: 2024-10-15 15:23:50 浏览: 32
C++编程资源
你可以使用两个栈来实现这个逆置队列的操作。以下是Python的一个简单示例:
```python
def reverseQueue(Q):
stack1 = []
stack2 = []
# 将队列Q的所有元素压入stack1
while not Q.empty():
stack1.append(Q.pop())
# 从stack1弹出元素并放入队列Q,实现了逆序
while stack1:
Q.append(stack1.pop())
return Q
# 示例:
# 假设Q = [1, 2, 3, 4, 5]
q = [] # 初始化队列
for i in range(1, 6):
q.append(i)
print("Original Queue:", q)
reversed_q = reverseQueue(q)
print("Reversed Queue:", reversed_q)
```
在这个算法中,我们首先将队列的所有元素逐一移出并压入第一个栈`stack1`。然后,我们将`stack1`中的所有元素逐个弹出并压回原队列`Q`,这就完成了队列内容的逆置。
阅读全文