创建一个空循环队列,实现入队、出队、返回队列长度、返回队列队头元素、遍历队列等基本算法。
时间: 2023-10-04 07:07:36 浏览: 51
以下为Python代码实现:
```python
class Queue:
def __init__(self, capacity):
self.capacity = capacity # 队列容量
self.front = 0 # 队头指针
self.rear = 0 # 队尾指针
self.count = 0 # 队列元素个数
self.data = [None] * capacity # 队列数据
def is_empty(self):
return self.count == 0
def is_full(self):
return self.count == self.capacity
def enqueue(self, item):
if self.is_full():
return False
self.data[self.rear] = item
self.rear = (self.rear + 1) % self.capacity
self.count += 1
return True
def dequeue(self):
if self.is_empty():
return None
item = self.data[self.front]
self.front = (self.front + 1) % self.capacity
self.count -= 1
return item
def length(self):
return self.count
def peek(self):
if self.is_empty():
return None
return self.data[self.front]
def traverse(self):
if self.is_empty():
print("Empty Queue")
return
i = self.front
while i != self.rear:
print(self.data[i], end=" ")
i = (i + 1) % self.capacity
print()
```
使用示例:
```python
q = Queue(5)
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
q.enqueue(5)
print("Length:", q.length()) # Length: 5
print("Peek:", q.peek()) # Peek: 1
q.traverse() # 1 2 3 4 5
q.dequeue()
q.traverse() # 2 3 4 5
q.enqueue(6)
q.traverse() # 2 3 4 5 6
```