Python实现数据结构——队列 Python
队列(Queue)
队列是一种 先进先出(FIFO,First In First Out) 的线性结构。元素从队尾入队,从队首出队。
1. 使用 collections.deque(高效)
from collections import deque
# 创建空队列
q = deque()
# 入队
q.append(1) # 队尾添加
q.append(2)
q.append(3)
# 出队
front = q.popleft()
print(front) # 1
# 查看队首元素(不弹出)
print(q[0]) # 2
2. 定义队列类(基于列表,注意性能)
class Queue:
"""队列的实现(列表模拟)"""
def __init__(self):
self.items = []
def enqueue(self, item):
"""入队(从队尾添加)"""
self.items.append(item)
def dequeue(self):
"""出队(从队首移除)"""
if self.is_empty():
raise IndexError("队列为空,无法出队")
return self.items.pop(0) # pop(0) 效率较低,教学用
def front(self):
"""查看队首元素"""
if self.is_empty():
return None
return self.items[0]
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
# 实例演示
q = Queue()
q.enqueue('A')
q.enqueue('B')
q.enqueue('C')
print(q.dequeue()) # A
print(q.front()) # B
print(q.size()) # 2
提示:实际开发中推荐 collections.deque,其 popleft() 是 O(1) 操作。
---
评论 (0)
登录后可以发表评论
立即登录还没有评论,快来发表第一条评论吧!