实现循环队列; 2.用几组实验数据
时间: 2024-11-26 16:21:41 浏览: 11
实现循环队列,通常使用数组作为存储结构,因为数组提供了一种连续的内存空间,适合用于队列这种后进先出(LIFO)的数据结构。在循环队列中,队尾元素的下一个位置就是队头元素的位置,当队尾达到数组的末尾时,就从数组的第一个位置开始,形成一个循环。
以下是使用Python语言简化的循环队列实现:
```python
class CircularQueue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = -1
self.rear = -1
def is_empty(self):
return self.front == -1 and self.rear == -1
def is_full(self):
if (self.rear + 1) % self.capacity == self.front:
return True
else:
return False
def enqueue(self, item):
if self.is_full():
print("Queue is full.")
return
if self.is_empty():
self.front = 0
self.rear = 0
else:
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = item
def dequeue(self):
if self.is_empty():
print("Queue is empty.")
return None
removed_item = self.queue[self.front]
if self.front == self.rear:
self.front = -1
self.rear = -1
else:
self.front = (self.front + 1) % self.capacity
return removed_item
# 示例数据
queue = CircularQueue(5)
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
queue.enqueue(4)
queue.dequeue() # 输出 1
queue.dequeue() # 输出 2
```
关于实验数据,这里有一些示例:
1. 队列初始为空,尝试添加元素,观察`enqueue()`操作是否有效。
2. 当队列满时,尝试添加更多元素,查看是否会提示"Queue is full."。
3. 从空队列中删除元素,查看`dequeue()`操作及其结果。
4. 先满后清空队列,再次尝试插入元素并删除,验证队列的循环特性。
阅读全文