数据结构必会|栈的思想及实现(Python)

1. 栈是什么

​ 首先举个生活中的例子:盛菜时使用的盘子叠在一起摆放时就是一种栈的结构,使用盘子的时候只能拿走最上面的那个,摆放时会把先洗好的那个放在最下面,这也就构成一种先放后拿的思想,也就是我们栈的思想。

在这里插入图片描述

​ 栈是一个有序的集合,它的添加和移除操作总发生在“顶端”(另一端称为底端),栈中的元素离底端越近,代表其在栈中的时间越长,栈的排序原则被称作LIFO(last-in first-out),具体的实现方式如下图所示:

在这里插入图片描述

2. 栈的实现

​ 在使用Python实现栈的时候,可以借助Python中列表(list)的特性来实现,列表中的append()函数可以实现在末尾追加元素(后进操作),pop()函数可以实现推出末尾元素(先出操作),具体的实现方法如下:

# 创建class Stack
class Stack:
    # 初始化栈
    def __init__(self):
        self.items = []

    # 判断栈是否为空
    def isEmpty(self):
        return self.items == []

    # 入栈
    def push(self, item):
        self.items.append(item)

    # 出栈
    def pop(self):
        self.items.pop()

    # 返回栈顶的元素
    def peek(self):
        return self.items[len(self.items) - 1]

    # 返回栈中元素的数目
    def size(self):
        return len(self.items)

​ 测试结果如下:

# 测试代码
s = Stack()
s.isEmpty()

# 输出
True

# 测试代码
s.push('I')
s.push('like')
s.push('python')
s.pop()
s.peek()
s.size()

# 输出
2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值