编写程序,实现队列的基本运算:入队、出队、输出队、取队头、取队尾、求队长、清空队、要求采用顺序循环队实现
时间: 2023-10-04 11:07:40 浏览: 99
以下是使用 Python 语言实现顺序循环队列的基本运算:
```python
class Queue:
def __init__(self, capacity):
self.capacity = capacity
self.front = 0
self.rear = 0
self.size = 0
self.data = [None] * capacity
def is_empty(self):
return self.size == 0
def is_full(self):
return self.size == self.capacity
def enqueue(self, element):
if self.is_full():
raise Exception("Queue is full")
self.data[self.rear] = element
self.rear = (self.rear + 1) % self.capacity
self.size += 1
def dequeue(self):
if self.is_empty():
raise Exception("Queue is empty")
element = self.data[self.front]
self.front = (self.front + 1) % self.capacity
self.size -= 1
return element
def output(self):
if self.is_empty():
print("Queue is empty")
else:
for i in range(self.size):
index = (self.front + i) % self.capacity
print(self.data[index], end=" ")
print()
def get_front(self):
if self.is_empty():
raise Exception("Queue is empty")
return self.data[self.front]
def get_rear(self):
if self.is_empty():
raise Exception("Queue is empty")
return self.data[(self.rear - 1 + self.capacity) % self.capacity]
def get_size(self):
return self.size
def clear(self):
self.front = 0
self.rear = 0
self.size = 0
self.data = [None] * self.capacity
```
在上述代码中,我们定义了一个 `Queue` 类,它包含以下成员函数:
- `__init__(self, capacity)`:构造函数,创建具有指定容量的顺序循环队列。
- `is_empty(self)`:判断队列是否为空。
- `is_full(self)`:判断队列是否已满。
- `enqueue(self, element)`:将元素插入队列尾部。
- `dequeue(self)`:将队列头部元素出队。
- `output(self)`:输出队列中的所有元素。
- `get_front(self)`:获取队头元素。
- `get_rear(self)`:获取队尾元素。
- `get_size(self)`:获取队列长度。
- `clear(self)`:清空队列。
使用示例:
```python
q = Queue(5)
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
q.enqueue(5)
q.output() # 1 2 3 4 5
q.dequeue()
q.dequeue()
q.output() # 3 4 5
print(q.get_front()) # 3
print(q.get_rear()) # 5
print(q.get_size()) # 3
q.clear()
q.output() # Queue is empty
```
阅读全文