实现一个顺序存储的队列
时间: 2024-06-11 17:08:00 浏览: 109
队列的顺序存储与实现
以下是使用Python语言实现一个顺序存储的队列的示例代码:
```python
class Queue:
def __init__(self, capacity):
self.capacity = capacity
self.queue = [None] * capacity
self.front = 0
self.rear = -1
self.size = 0
def is_empty(self):
return self.size == 0
def is_full(self):
return self.size == self.capacity
def enqueue(self, item):
if self.is_full():
raise Exception("Queue is full")
else:
self.rear += 1
self.queue[self.rear] = item
self.size += 1
def dequeue(self):
if self.is_empty():
raise Exception("Queue is empty")
else:
item = self.queue[self.front]
self.front += 1
self.size -= 1
return item
def peek(self):
if self.is_empty():
raise Exception("Queue is empty")
else:
return self.queue[self.front]
def print_queue(self):
print(self.queue)
```
在上面的示例代码中,我们定义了一个`Queue`类,它具有以下方法:
- `__init__(self, capacity)`:初始化队列,指定队列的最大容量。
- `is_empty(self)`:检查队列是否为空,如果是返回`True`,否则返回`False`。
- `is_full(self)`:检查队列是否已满,如果是返回`True`,否则返回`False`。
- `enqueue(self, item)`:将一个元素添加到队列的尾部。
- `dequeue(self)`:从队列的头部删除一个元素,并返回删除的元素。
- `peek(self)`:返回队列头部的元素,但不删除它。
- `print_queue(self)`:打印当前队列的元素。
在`__init__`函数中,我们创建一个静态列表,其大小为队列的最大容量。我们还定义了`front`和`rear`两个指针,它们分别指向队列的头部和尾部。在队列为空时,`front`指针指向队列的第一个元素,`rear`指针指向队列的最后一个元素。在队列中添加元素时,我们将`rear`指针向右移动一个位置,并将元素添加到其指向的位置。在从队列中删除元素时,我们将`front`指针向右移动一个位置,并返回其指向的元素。我们还定义了`size`变量来跟踪队列中元素的数量。
阅读全文