循环队列判断队空队满的代码
时间: 2024-09-26 14:13:29 浏览: 38
C语言数据结构之判断循环链表空与满
循环队列(Circular Queue)是一种特殊的线性表,它在队列的一端添加元素,在另一端删除元素,当队尾到达数组的末尾时,队列会开始从数组的第一个位置继续存储新元素,形成一个圆环。以下是使用Python实现循环队列,以及判断队列是否为空或满的基本代码:
```python
class CircularQueue:
def __init__(self, k):
self.queue = [None] * k
self.front = -1 # 表示头节点的位置,初始为空
self.rear = -1 # 表示尾节点的位置,初始为空
def is_empty(self):
return self.front == -1
def is_full(self):
if (self.rear + 1) % len(self.queue) == self.front: # 使用模运算处理循环
return True
else:
return False
def enqueue(self, data):
if self.is_full():
print("Queue is full.")
else:
if self.front == -1:
self.front = 0
self.rear = (self.rear + 1) % len(self.queue)
self.queue[self.rear] = data
def dequeue(self):
if self.is_empty():
print("Queue is empty.")
else:
removed_data = self.queue[self.front]
if self.front == self.rear:
self.front = self.rear = -1
else:
self.front = (self.front + 1) % len(self.queue)
return removed_data
```
在这个实现中,`is_empty()`检查front是否等于-1,`is_full()`则计算rear加一除以队列长度的余数是否等于front,如果是,则说明队列满了。
阅读全文