利用链队列将一组整数逆置
时间: 2024-05-15 16:12:11 浏览: 110
下面是利用链队列实现将一组整数逆置的代码:
```python
class QueueNode:
def __init__(self, val=None):
self.val = val
self.next = None
class Queue:
def __init__(self):
self.head = None
self.tail = None
def is_empty(self):
return self.head is None
def enqueue(self, val):
node = QueueNode(val)
if self.is_empty():
self.head = node
self.tail = node
else:
self.tail.next = node
self.tail = node
def dequeue(self):
if self.is_empty():
return None
val = self.head.val
self.head = self.head.next
if not self.head:
self.tail = None
return val
def reverse(self):
if self.is_empty():
return
prev = None
curr = self.head
self.tail = curr
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
self.head = prev
```
其中,QueueNode 类表示链队列的节点,Queue 类表示链队列本身。is_empty 方法用于判断链队列是否为空,enqueue 方法用于入队,dequeue 方法用于出队,reverse 方法用于逆置链队列。
下面是如何利用该链队列实现将一组整数逆置的代码:
```python
q = Queue()
nums = [1, 2, 3, 4, 5]
for num in nums:
q.enqueue(num)
q.reverse()
while not q.is_empty():
print(q.dequeue())
```
首先,创建一个空的链队列 q。然后,将整数序列 [1, 2, 3, 4, 5] 入队。接着,调用 reverse 方法将链队列逆置。最后,依次出队并打印元素,就可以得到逆置后的整数序列 [5, 4, 3, 2, 1]。
阅读全文