:请定义一个顺序队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字母, 队列的最大元素个数为100。
时间: 2024-10-06 17:06:09 浏览: 8
定义一个顺序队列,我们通常会采用数组或者链表作为基础数据结构。这里我们可以选择用Python来演示如何实现这个简单的命令行操作:
```python
class Queue:
def __init__(self, max_size=100):
self.queue = [''] * max_size
self.front = -1
self.rear = -1
# 入队操作,如果队满则不添加
def enqueue(self, item):
if (self.rear + 1) % len(self.queue) == self.front:
print("Queue is full.")
else:
self.rear = (self.rear + 1) % len(self.queue)
self.queue[self.rear] = item
if self.front == -1:
self.front = self.rear
# 出队操作,如果队为空则返回None
def dequeue(self):
if self.front == -1:
return None
else:
item = self.queue[self.front]
self.queue[self.front] = ''
if self.front == self.rear:
self.front = self.rear = -1
else:
self.front = (self.front + 1) % len(self.queue)
return item
# 清空队列
def empty_queue(self):
self.queue = [''] * len(self.queue)
self.front = self.rear = -1
# 获取队首元素
def get_first(self):
return self.queue[self.front]
# 示例命令行交互
queue = Queue()
while True:
command = input("Enter your command (enqueue <element>, dequeue, empty, first): ")
if command == 'exit':
break
elif command.startswith('enqueue'):
_, element = command.split(' ')
queue.enqueue(element)
elif command == 'dequeue':
print(queue.dequeue())
elif command == 'empty':
queue.empty_queue()
print("Queue emptied.")
elif command == 'first':
print("First element:", queue.get_first())
else:
print("Invalid command.")
```
在这个实现中,我们创建了一个名为`Queue`的类,它有四个方法分别对应四种操作:入队、出队、清空和获取队首元素。用户可以通过命令行输入相应的操作和参数来控制队列的行为。