用长度为10的数组实现队列思路
时间: 2024-02-11 17:07:19 浏览: 17
使用一个长度为10的数组来实现队列,可以定义两个指针 front 和 rear 分别指向队列的头和尾。初始时,front 和 rear 都指向数组的第一个位置。队列的长度为0。
当有元素入队时,将元素插入到 rear 指向的位置,并将 rear 向后移动一个位置。如果 rear 超出了数组的范围,那么队列就满了,不能再插入元素了。
当有元素出队时,将 front 指向的元素弹出,并将 front 向后移动一个位置。如果 front 超出了数组的范围,那么队列就为空,不能再弹出元素了。
具体实现细节可以参考下面的代码:
```python
class Queue:
def __init__(self):
self.array = [None] * 10
self.front = 0
self.rear = 0
def is_empty(self):
return self.front == self.rear
def is_full(self):
return (self.rear + 1) % len(self.array) == self.front
def enqueue(self, element):
if self.is_full():
raise Exception('Queue is full')
self.array[self.rear] = element
self.rear = (self.rear + 1) % len(self.array)
def dequeue(self):
if self.is_empty():
raise Exception('Queue is empty')
element = self.array[self.front]
self.front = (self.front + 1) % len(self.array)
return element
```
在这个实现中,我们使用取模运算来实现循环队列。当 rear 超出数组的范围时,将 rear 的值重新赋为 0,表示下一个元素将插入到数组的第一个位置。同理,当 front 超出数组的范围时,将 front 的值重新赋为 0,表示下一个元素将弹出数组的第一个位置。