链队 完成出队入队获取队列长度等操作
时间: 2024-01-22 12:03:21 浏览: 24
链队是一种基于链表结构的队列,它的特点是可以动态增加或缩减队列大小,因此在实际应用中被广泛使用。
下面是链队的出队、入队和获取队列长度等操作的实现:
```python
# 链队节点
class QueueNode:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
# 链队
class LinkedQueue:
def __init__(self):
self.front = None # 队头指针
self.rear = None # 队尾指针
self.length = 0 # 队列长度
# 入队
def enqueue(self, data):
new_node = QueueNode(data)
if self.rear is None:
self.front = new_node
self.rear = new_node
else:
self.rear.next = new_node
self.rear = new_node
self.length += 1
# 出队
def dequeue(self):
if self.front is None:
print("The queue is empty!")
return None
else:
data = self.front.data
self.front = self.front.next
if self.front is None:
self.rear = None
self.length -= 1
return data
# 获取队列长度
def get_length(self):
return self.length
```
其中,`QueueNode`是链队中的节点类,包括数据域和指向下一个节点的指针;`LinkedQueue`是链队类,包括队头指针、队尾指针和队列长度等属性,以及入队、出队和获取队列长度等方法。在入队操作中,我们创建一个新的节点,并将其插入链表的末尾,同时更新队列长度。在出队操作中,我们取出队头节点的数据,将队头指针指向下一个节点,如果队头指针为空,说明队列已经空了,需要将队尾指针也置为空。在获取队列长度操作中,我们直接返回队列长度属性即可。
以上就是链队的出队、入队和获取队列长度等操作的实现。