python进阶笔记(4)——双端队列

tech2025-11-18  2

python进阶笔记(4)——双端队列

概念常用方法实现代码示例

概念

双端队列(dequeue,全名 double-ended queue),队列的进阶版,一种具有队列和栈的性质的数据结构。

双端队列可以从两端弹出元素(出队)或插入元素(入队),但也仅限于两端,与队列和栈相同。

常用方法

dequeue() 创建一个空的双端队列is_empty() 判断队列是否为空add_front(item) 从队头添加一个新的元素itemadd_rear(item) 从队尾添加一个新的元素itemremove_front() 从队头删除一个元素remove_rear() 从队尾删除一个元素size() 返回队列的大小

实现代码示例

class Dequeue(): """双端队列""" def __init__(self): self.items = [] def is_empty(self): """判断是否为空""" return self.items == [] def add_front(self,item): """头部添加""" self.items.insert(0,item) def add_rear(self,item): """尾部添加""" self.items.append(item) def remove_front(self): """头部删除""" return self.items.pop(0) def remove_rear(self): """尾部删除""" return self.items.pop() def size(self): """列表大小""" return len(self.items) if __name__ == '__main__': d = Dequeue() d.add_front(3) d.add_front(2) d.add_front(1) d.add_rear('a') d.add_rear('b') d.add_rear('c') print(d.size()) print(d.remove_front()) print(d.remove_front()) print(d.remove_front()) print(d.remove_rear()) print(d.remove_rear()) print(d.remove_rear())
最新回复(0)