Python数据结构之栈类实现
1、栈
Python栈,栈是含有一组对象的容器,支持快速后进先出(LIFO)的插入和删除操作。与列表或数组不同,栈通常不允许随机访问所包含的对象。插入和删除操作通常称为入栈(push)和出栈(pop)。
2、栈的操作
- Stack()创建一个新的空栈
- push(item)添加一个新的元素item到栈顶
- pop()弹出栈顶元素
- peek()返回栈顶元素
- is_full栈是否已满
- is_empty()判断栈是否为空
- size()返回栈的元素个数
3、代码示例
class Stack():
def __init__(self, size):
self.size = size # 栈可容纳的数量
self.stack = []
self.top = -1
def push(self, ele): # 入栈之前检查栈是否已满
if self.isfull():
raise Exception("out of range")
else:
self.stack.append(ele)
self.top = self.top + 1
def pop(self): # 出栈之前检查栈是否为空
if self.isempty():
raise Exception("stack is empty")
else:
self.top = self.top - 1
return self.stack.pop()
def peek(self):
"""返回栈顶元素"""
return self.items[len(self.items)-1]
def is_full(self):
return self.top + 1 == self.size
def is_empty(self):
return self.top == -1
参考:
https://blog.csdn.net/m0_46204224/article/details/107774211
https://www.cainiaoya.com/python/python-ds-stack.html
合集:
Python数据结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具