python数据结构第二天(栈)

1、栈:

要弄明白什么是栈,我们需要先举一个生活中的例子。

假如有一个又细又长的圆筒,圆筒一端封闭,另一端开口。往圆筒里放入乒乓球,先放入 的靠近圆筒底部,后放入的靠近圆筒入口。
在这里插入图片描述
那么,要想取出这些乒乓球,则只能按照和放入顺序相反的顺序来取,先取出后放入的, 再取出先放入的,而不可能把最里面最先放入的乒乓球优先取出
在这里插入图片描述
栈(stack)是一种线性数据结构,它就像一个上图所示的放乒乓球的圆筒容器,栈中的元 素只能先入后出(First In Last Out,简称FILO)。最早进入的元素存放的位置叫作栈底(bottom),最后进入的元素存放的位置叫作栈顶(top) 栈这种数据结构既可以用数组来实现,也可以用链表来实现。

栈的数组实现如下:

在这里插入图片描述

栈的链表实现如下:

在这里插入图片描述

1.1栈的基本操作:

入栈操作(push)就是把新元素放入栈中,只允许从栈顶一侧放入元素,新元素的位置将 会成为新的栈顶。

出栈操作(pop)就是把元素从栈中弹出,只有栈顶元素才允许出栈,出栈元素的前一个 元素将会成为新的栈顶。

判空操作(isEmpty() )测试栈是否为空。不需要参数,并返回布尔值

在Python语言中,列表很好地实现了栈的功能,append方法相当于入楊pop方法相当于出栈。栈操作的代码实现相对简单。

class Stack:
     def __init__(self):
         self.items = []

     def isEmpty(self):
         return self.items == []

     def push(self, item):
         self.items.append(item)

     def pop(self):
         return self.items.pop()

     def peek(self):
         return self.items[len(self.items)-1]

     def size(self):
         return len(self.items)

以上是python栈的内容。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LZXLZX233

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

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

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

打赏作者

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

抵扣说明:

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

余额充值