循环队列队空队满条件
时间: 2023-12-16 22:26:59 浏览: 98
用标志域表示队空队满状态的循环队列的综合操作
循环队列的队空和队满条件如下:
- 队空条件:front == rear
- 队满条件:(rear + 1) % capacity == front
其中,front表示队头指针,rear表示队尾指针,capacity表示队列容量。
为了避免队满时产生队空的判断或者相反,可以将队列容量减1,即实际可用空间为capacity - 1,这样队列就不会满到最后一个位置,而是留下一个空位,用于区分队空和队满。
下面是一个示例代码,演示了如何判断循环队列的队空和队满条件:
```python
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = 0
self.rear = 0
def is_empty(self):
return self.front == self.rear
def is_full(self):
return (self.rear + 1) % self.capacity == self.front
def enqueue(self, item):
if self.is_full():
print("Queue is full")
return False
else:
self.queue[self.rear] = item
self.rear = (self.rear + 1) % self.capacity
return True
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
else:
item = self.queue[self.front]
self.front = (self.front + 1) % self.capacity
return item
```
阅读全文