Python实现栈、队列、双端队列
栈的实现
class Stack(): def __init__(self): self.items = [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def isEmpty(self): return len(self.items) == 0 def size(self): return len(self.items) stack=Stack() stack.push(1) stack.push(2) stack.push(3) print(stack.peek()) print(stack.pop()) print(stack.pop()) print(stack.pop())
队列的实现
#coding:utf8 class Queue(): def __init__(self): self.items = [] def enqueue(self, item): self.items.insert(0, item) def dequeue(self): return self.items.pop() def isEmpty(self): return len(self.items) == 0 def size(self): return len(self.items) # queue = Queue() # queue.enqueue(1) # queue.enqueue(2) # queue.enqueue(3) # print(queue.size()) # print(queue.dequeue()) # print(queue.dequeue()) # print(queue.dequeue())
队列算法之烫手的山芋
kids = ["A", "B", "C", "D", "E", "F"] # 参加游戏的孩子 queue = Queue() for kid in kids: queue.enqueue(kid) while queue.size() > 1: for i in range(6): queue.enqueue(queue.dequeue()) queue.dequeue() print(queue.dequeue())
双端队列的实现
# coding:utf8 # 队列 :尾部--->首部 class Deque(): def __init__(self): self.items = [] def addFront(self, item): self.items.append(item) def addRear(self, item): return self.items.insert(0, item) def removeFront(self): return self.items.pop() def removeRear(self): return self.items.pop(0) def isEmpty(self): return len(self.items) == 0 def size(self): return len(self.items)
双端队列算法之回文检测
# 实现回文检查 def isHuiWen(_str): flag = True deque = Deque() for i in _str: deque.addFront(i) while deque.size() > 1: if deque.removeFront() != deque.removeRear(): flag = False break return flag print(isHuiWen("hooh")) print(isHuiWen("hoioh")) print(isHuiWen("hoijoh"))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~