1. 编写程序,实现循环队列; 2.用几组实验数据,测试程序的输出是否正确。 具体要求:假设循环队列的最大长度为 7,现在依次将以下数据入队列:(7,5,3,9, 4);接着进行 3 次出队列的操作,
时间: 2024-11-25 19:13:28 浏览: 20
1. 要编写一个循环队列,首先需要创建一个名为`CircularQueue`的类,它包含两个数组`data`和`front`以及`rear`来表示队列的数据区域和指针。这里是一个简单的Python实现:
```python
class CircularQueue:
def __init__(self, max_size=7):
self.data = [None] * max_size
self.front = -1
self.rear = -1
def is_empty(self):
return self.front == -1 and self.rear == -1
def is_full(self):
return (self.rear + 1) % len(self.data) == self.front
def enqueue(self, value):
if self.is_full():
print("Queue is full")
return
if self.is_empty():
self.front = 0
else:
self.rear = (self.rear + 1) % len(self.data)
self.data[self.rear] = value
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
removed_value = self.data[self.front]
if self.front == self.rear:
self.front = self.rear = -1
else:
self.front = (self.front + 1) % len(self.data)
return removed_value
# 使用示例
queue = CircularQueue()
data_to_enqueue = [7, 5, 3, 9, 4]
for num in data_to_enqueue:
queue.enqueue(num)
# 出队操作
num_of_dequeues = 3
for _ in range(num_of_dequeues):
print(queue.dequeue())
```
2. 测试循环队列的方法通常是通过运行一系列预期的输入和输出来验证其功能。对于这个例子,可以设计以下几组实验数据来进行测试:
- **测试1**: 队列空时,尝试出队,期望输出“Queue is empty”,并保持队列为空。
- **测试2**: 入队满容量数据后,尝试再入队,期望输出“Queue is full”并检查队列是否只包含前几个插入的元素。
- **测试3**: 先入队再出队,验证队列内容是否按顺序减少,例如:先出队7,然后出队5,最后出队应得到3。
请按照以上步骤执行测试,如果每一步的结果都符合预期,那么程序就实现了正确的循环队列功能。
阅读全文