赞
踩
队列(Queue)是一种抽象数据类型,用于按特定顺序存储和管理元素。它是一种线性数据结构,遵循先进先出(FIFO,First In First Out)的原则。这意味着最早添加的元素最早被移除。
队列在很多场景中都有应用,包括:
队列可以使用多种数据结构来实现,包括数组、链表和双端队列(deque)。
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) else: raise IndexError("dequeue from empty queue") def front(self): if not self.is_empty(): return self.queue[0] else: raise IndexError("front from empty queue") def is_empty(self): return len(self.queue) == 0 def size(self): return len(self.queue) # 示例使用 q = Queue() q.enqueue(1) q.enqueue(2) q.enqueue(3) print(q.dequeue()) # 输出: 1 print(q.front()) # 输出: 2 print(q.is_empty()) # 输出: False print(q.size()) # 输出: 2
双端队列(Deque,Double-ended Queue)是队列的一种变体,它允许在队列的两端进行插入和删除操作。Python 提供了 collections.deque
类,用于高效地实现双端队列。
from collections import deque # 创建一个双端队列 dq = deque() # 在右侧添加元素 dq.append(1) dq.append(2) dq.append(3) # 在左侧添加元素 dq.appendleft(0) # 在右侧移除元素 print(dq.pop()) # 输出: 3 # 在左侧移除元素 print(dq.popleft()) # 输出: 0 # 获取队列前端的元素 print(dq[0]) # 输出: 1 # 获取队列大小 print(len(dq)) # 输出: 2
collections.deque
提供了高效的双端队列实现。通过以上示例和解释,你应该对队列有一个基本的了解,并知道如何在 Python 中使用队列和双端队列。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。