python数据结构类-栈

class Stack(object):
    def __init__(self, limit=10):
        self.stack = []  # 存放元素
        self.limit = limit  # 栈容量极限

    def push(self, data):
        # 判断栈是否溢出
        if len(self.stack) >= self.limit:
            raise IndexError('超出栈容量极限')
        self.stack.append(data)

    def pop(self):
        if self.stack:
            return self.stack.pop()
        else:
            # 空栈不能被弹出元素
            raise IndexError('pop from an empty stack')

    def peek(self):
        # 查看栈的栈顶元素(最上面的元素)
        if self.stack:
            return self.stack[-1]

    def is_empty(self):
        # 查看堆栈的最上面的元素
        return not bool(self.stack判断栈是否溢)

    def size(self):
        # 返回栈的大小
        return len(self.stack)

栈使用有序集合-列表来实现。栈顶即为列表尾。栈容量即为列表的容量。

  • 入栈时,首先判断栈满否,然后使用列表的append,向列表尾添加元素。
  • 出栈时,只能从栈顶出栈,判断栈存在if list:,使用pop函数删除并返回列表尾的元素。空栈则报错。
  • 查看栈顶的元素,判断栈存在if list:,返回list【-1】
  • 查看栈的长度,不用判断栈空不空,直接使用len(list)函数。
  • 判断栈是否为空,使用not bool(list)。为空则返回Ture。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值