编写一个程序实现顺序队列的各种基本操作,并在此基础之上设计一个主程序,完成如下功能:初始化、入队、出队、取对头等操作。
时间: 2024-11-13 19:18:32 浏览: 3
顺序队列是一种基于数组实现的数据结构,它通过索引来存储元素并支持队头和队尾的操作。以下是使用Python编写的一个简单的顺序队列实现,包含初始化、入队(enqueue)、出队(dequeue)和取队头(peek)的基本操作:
```python
class Queue:
def __init__(self, capacity=10):
self.capacity = capacity
self.queue = [None] * self.capacity
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) % self.capacity == self.front
def enqueue(self, item):
if self.is_full():
print("Queue is full")
return
if self.is_empty():
self.front = 0
self.rear = 0
else:
self.rear = (self.rear + 1) % self.capacity
self.queue[self.rear] = item
def dequeue(self):
if self.is_empty():
print("Queue is empty")
return None
removed_item = self.queue[self.front]
if self.front == self.rear:
self.front = -1
self.rear = -1
else:
self.front = (self.front + 1) % self.capacity
return removed_item
def peek(self):
if self.is_empty():
print("Queue is empty")
return None
return self.queue[self.front]
# 主程序示例
def main():
q = Queue()
# 初始化
print("Enter 'end' to quit:")
while True:
action = input("Choose an operation: 'enqueue', 'dequeue', 'peek', or 'exit': ")
if action.lower() == 'exit':
break
if action.lower() == 'enqueue':
data = int(input("Enter a value to enqueue: "))
q.enqueue(data)
elif action.lower() == 'dequeue':
print("Dequeued:", q.dequeue(), "if not empty")
elif action.lower() == 'peek':
print("Peeked:", q.peek(), "if not empty")
else:
print("Invalid operation.")
if __name__ == "__main__":
main()
```
在这个例子中,主程序会提示用户选择操作,然后根据用户的输入执行相应的函数。如果队列为空,某些操作会显示相应的错误消息。
阅读全文