栈---结构

本文介绍了Python中的栈数据结构,包括栈的概念、栈的特点(先进先出),以及如何使用`Stack`类进行操作,如push、pop、is_empty和len。通过实例演示了栈在递归和函数调用中的作用,以及栈帧的概念。
摘要由CSDN通过智能技术生成

栈是一个线性表,是一个特殊的数组。特点:先进先出。

计算机系统结构中常用的存储数据的模块。常常和堆并列提及。

栈顶,栈底指针指向数据。

对于递归,则需要联系栈帧,和栈顶指针。

栈帧:一个函数调用部门信息存储

常用方法:

  • Push : 将一个元素添加到栈顶
  • Pop : 从栈顶移除一个元素
  • IsEmpty : 检查堆栈是否为空
  • IsFull : 检查堆栈是否已满
  • Peek:获取顶部元素的值而不删除它

第一版

# 栈,先进先出

# 属性
# 栈顶,栈底
# top
# 方法
# pop
# push
# is_empty
# len


class Stack(object):
    def __init__(self):
        self._top = 0
        self._stack = []

    def len(self):
        return len(self._stack)

    def pop(self):
        if not self.is_empty():
            res = self._stack.pop()
            self._top -= 1
            return res
        raise "empty stack ,can not pop"

    def push(self, data):
        self._stack.append(data)
        self._top += 1

    def is_empty(self):
        return self.len() == 0


if __name__ == "__main__":
    s = Stack()
    s.push("a")
    s.push("b")
    print(s._stack)
    print(s.pop())
    s.pop()
    s.pop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值