使用python deque实现一个队列
from collections import deque class Queue: def __init__(self): self.queue = deque() def enqueue(self, item): self.queue.append(item) def dequeue(self): if not self.is_empty(): return self.queue.popleft() def is_empty(self): return len(self.queue) == 0 def size(self): return len(self.queue) def peek(self): if not self.is_empty(): return self.queue[0] def __str__(self): return str(self.queue) if __name__ == '__main__': queue = Queue() queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) print(queue) # deque([1, 2, 3]) print(queue.peek()) # 输出 1 queue.dequeue() print(queue.peek()) # 输出 2 print(queue.dequeue()) # 输出 2 print(queue.dequeue()) # 输出 3 print(queue.is_empty()) # 输出 True
这个实现中,我们首先导入了deque,然后定义了一个名为Queue的类。类中包含以下方法:
__init__(self)
:初始化一个空的双向队列。enqueue(self, item)
:向队列的右端添加一个元素。dequeue(self)
:从队列的左端删除一个元素并返回它。如果队列为空,返回None。is_empty(self)
:检查队列是否为空。如果队列为空,返回True;否则返回False。size(self)
:返回队列中的元素数量。peek(self)
:返回队列中的第一个元素但不删除它。如果队列为空,返回None。__str__(self)
:将队列转换为字符串以便于调试。
使用这个实现,我们可以创建一个新的队列对象并使用enqueue()方法向其中添加元素。当我们想要访问队列的第一个元素时,可以使用peek()方法。要删除队列的第一个元素,可以使用dequeue()方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)