提供一个简单的环形队列,一个read函数读取buffer的内容,write函数写入buffer,buffer长度为100
时间: 2024-11-22 15:44:27 浏览: 5
环形队列是一种特殊的线性队列结构,它通过将队列的两端相连,实现了“循环”的效果,可以避免创建新的数组来处理元素溢出的问题。当队列满时,新插入的元素会覆盖掉最早插入的元素;同样,当队列为空时,尝试读取的位置相当于队列满了。
以下是环形队列的一个简单实现:
```python
class CircularQueue:
def __init__(self, capacity=100):
self.buffer = [None] * capacity
self.head = -1
self.tail = -1
# 插入元素到队尾
def enqueue(self, item):
if (self.tail + 1) % len(self.buffer) == self.head:
print("Queue is full")
else:
self.tail = (self.tail + 1) % len(self.buffer)
self.buffer[self.tail] = item
# 从队头读取并移除元素
def dequeue(self):
if self.is_empty():
print("Queue is empty")
else:
self.head = (self.head + 1) % len(self.buffer)
return self.buffer.pop(self.head)
# 检查队列是否为空
def is_empty(self):
return self.head == -1 and self.tail == -1
# 读取队首元素(模拟 read 函数)
def read(self):
if self.is_empty():
print("Queue is empty")
else:
return self.buffer[self.head]
# 写入元素(模拟 write 函数)
def write(self, item):
self.enqueue(item)
# 使用示例
queue = CircularQueue()
queue.write(1) # 写入元素
print(queue.read()) # 读取元素
```
阅读全文