已知q是一个非空队列,s是一个空栈,用数据结构代码将队列中的元素逆置
时间: 2024-11-09 12:24:25 浏览: 11
为了将队列(Queue)中的元素逆置到一个空栈(Stack)中,我们可以采用迭代的方式,依次从队列中取出元素,并压入栈中。以下是Python语言的数据结构代码示例:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
# 假设 `queue` 是一个双端队列(deque),因为 deque 的 pop(0) 操作效率更高
from collections import deque
def reverse_queue_to_stack(queue):
# 初始化栈顶指针
stack_top = None
# 遍历队列,每次取出第一个元素并压入栈
while queue:
top_element = queue.popleft() # 队首出队
if stack_top is None:
stack_top = Node(top_element)
else:
current_node = stack_top
while current_node.next:
current_node = current_node.next
current_node.next = Node(top_element)
return stack_top # 返回逆序后的栈顶节点
# 使用示例
queue = deque([1, 2, 3, 4, 5])
stack_top = reverse_queue_to_stack(queue)
```
阅读全文