编写一个程序实现链队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能: 初始化链队列;入队;出队;判断队列是否为空
时间: 2023-06-24 16:06:24 浏览: 46
下面是使用Python语言实现链队列的基本运算代码:
```python
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class LinkedQueue:
def __init__(self):
self.front = None
self.rear = None
def is_empty(self):
return self.front == None
def enqueue(self, data):
new_node = Node(data)
if self.rear == None:
self.front = new_node
self.rear = new_node
else:
self.rear.next = new_node
self.rear = new_node
def dequeue(self):
if self.front == None:
return None
data = self.front.data
if self.front == self.rear:
self.front = None
self.rear = None
else:
self.front = self.front.next
return data
```
在上面的代码中,我们定义了一个Node类和一个LinkedQueue类。Node类表示链队列中的节点,包含数据data和指向下一个节点的指针next。LinkedQueue类包含了链队列的基本运算,包括初始化链队列、判断队列是否为空、入队和出队。
主程序如下:
```python
queue = LinkedQueue()
print(queue.is_empty()) # True
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
print(queue.is_empty()) # False
print(queue.dequeue()) # 1
print(queue.dequeue()) # 2
print(queue.is_empty()) # False
print(queue.dequeue()) # 3
print(queue.is_empty()) # True
```
在主程序中,我们首先创建了一个空的链队列,并使用is_empty方法判断队列是否为空。然后,我们依次将数据1、2、3入队,并再次使用is_empty方法判断队列是否为空。接着,我们依次出队,并使用is_empty方法判断队列是否为空。最后,我们可以看到队列已经为空。