编写一个队列实现队列的入队,出队,取对首元素并判断队列是否为空
时间: 2023-09-01 14:11:01 浏览: 102
队列的创建,入队,出队
3星 · 编辑精心推荐
队列是一种线性数据结构,遵循先进先出(FIFO)的原则。队列有两个基本操作:入队(enqueue)和出队(dequeue)。队列的入队操作将新元素添加到队列的末尾,而出队操作则从队列的头部删除元素。此外,队列还有一个取对首元素的操作(peek),该操作返回队列的头部元素,但不删除它。
下面是一个简单的队列实现,包括入队、出队、peek和判断队列是否为空的操作。
```python
class Queue:
def __init__(self):
self.queue = []
def enqueue(self, item):
self.queue.append(item)
def dequeue(self):
if not self.is_empty():
return self.queue.pop(0)
def peek(self):
if not self.is_empty():
return self.queue[0]
def is_empty(self):
return len(self.queue) == 0
```
在上面的实现中,我们使用Python的列表来实现队列。我们在__init__方法中初始化队列为空列表。enqueue方法将元素添加到队列的末尾,使用列表的append方法实现。dequeue方法从队列的头部删除元素,使用列表的pop方法实现。peek方法返回队列的头部元素,但不删除它,使用列表的索引操作实现。is_empty方法用来判断队列是否为空,如果队列的长度为0,则为空。
我们可以使用以下代码测试我们的队列实现:
```python
q = Queue()
q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
print(q.peek()) # 输出1
print(q.dequeue()) # 输出1
print(q.dequeue()) # 输出2
print(q.is_empty()) # 输出False
print(q.dequeue()) # 输出3
print(q.is_empty()) # 输出True
print(q.dequeue()) # 输出None,因为队列已经为空
```
输出结果如下:
```
1
1
2
False
3
True
None
```
我们可以看到,我们的队列实现成功地完成了入队、出队、peek和判断队列是否为空的操作。
阅读全文