利用“数组”作为存储结构方法实现“队列”的基本操作,包括:创建队列、入队列、出队列、队列满、队列空等基本操作。
时间: 2023-12-04 08:05:46 浏览: 16
好的,以下是利用数组实现队列的基本操作的示例代码:
```python
class Queue:
def __init__(self, capacity):
self.capacity = capacity # 队列容量
self.front = 0 # 队头指针
self.rear = 0 # 队尾指针
self.size = 0 # 队列大小
self.items = [None] * capacity # 存储队列元素的数组
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 ValueError("队列已满")
self.items[self.rear] = item
self.rear = (self.rear + 1) % self.capacity # 环形队列
self.size += 1
def dequeue(self):
if self.is_empty():
raise ValueError("队列为空")
item = self.items[self.front]
self.front = (self.front + 1) % self.capacity # 环形队列
self.size -= 1
return item
```
说明:
- `Queue` 类有四个成员变量:队列容量 `capacity`、队头指针 `front`、队尾指针 `rear`、队列大小 `size`,以及一个存储队列元素的数组 `items`。
- `is_empty` 方法判断队列是否为空。
- `is_full` 方法判断队列是否已满。
- `enqueue` 方法将元素入队列,如果队列已满则抛出 `ValueError` 异常。
- `dequeue` 方法将元素出队列,如果队列为空则抛出 `ValueError` 异常。
具体使用方法如下:
```python
q = Queue(5) # 创建容量为5的队列
q.enqueue(1) # 入队列
q.enqueue(2)
q.enqueue(3)
print(q.dequeue()) # 出队列,输出1
print(q.dequeue()) # 出队列,输出2
q.enqueue(4)
q.enqueue(5)
print(q.is_full()) # 输出True
q.enqueue(6) # 队列已满,抛出异常
```