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

posted @   星空28  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示