python栈是什么意思_Python算法之栈(stack)的实现
本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值。具体内容如下:
1.栈stack通常的操作:
Stack() 建立一个空的栈对象
push() 把一个元素添加到栈的最顶层
pop() 删除栈最顶层的元素,并返回这个元素
peek() 返回最顶层的元素,并不删除它
isEmpty() 判断栈是否为空
size() 返回栈中元素的个数
2.简单案例以及操作结果:
Stack Operation Stack Contents Return Value
s.isEmpty() [] True
s.push(4) [4]
s.push('dog') [4,'dog']
s.peek() [4,'dog'] 'dog'
s.push(True) [4,'dog',True]
s.size() [4,'dog',True] 3
s.isEmpty() [4,'dog',True] False
s.push(8.4) [4,'dog',True,8.4]
s.pop() [4,'dog',True] 8.4
s.pop() [4,'dog'] True
s.size() [4,'dog'] 2
这里使用python的list对象模拟栈的实现,具体代码如下:
#coding:utf8
class Stack:
"""模拟栈"""
def __init__(self):
self.items = []
def isEmpty(self):
return len(self.items)==0
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
if not self.isEmpty():
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
s=Stack()
print(s.isEmpty())
s.push(4)
s.push('dog')
print(s.peek())
s.push(True)
print(s.size())
print(s.isEmpty())
s.push(8.4)
print(s.pop())
print(s.pop())
print(s.size())
感兴趣的读者可以动手测试一下本文所述实例代码,相信会对大家学习Python能有一定的收获。
python栈是什么意思_Python算法之栈(stack)的实现相关推荐
- python的栈在哪个库_Python算法实战系列之栈
栈(stack)又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作. 如下图所示 例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最后一 ...
- stack在python中是什么意思_python中的栈指的是什么
栈(stack)是一个项的有序集合,其中添加移除新项总发生在同一端.这一端通常称为"顶部".与顶部对应的端称为"底部". 就像图片所描述的,栈s=(a1,a2, ...
- python栈是什么意思_Python实现的栈(Stack)
前言 Python本身已有顺序表(List.Tupple)的实现,所以这里从栈开始. 什么是栈 想象一摞被堆起来的书,这就是栈.这堆书的特点是,最后被堆进去的书,永远在最上面.从这堆书里面取一本书出来 ...
- python的数据结构包括那些_python算法与数据结构-什么是数据结构
一.什么是数据结构 数据结构,直白地理解,就是研究数据的存储方式. 我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的值 ...
- c语言怎样计算栈的长度,数据结构与算法:栈 C语言实现
栈是仅在表尾进行插入.删除操作的线性表.即栈 S= (a1, a2, a3, ---,an-1, an),其中表尾称为栈顶 /top,表头称为栈底/base. 由于只能在表尾进行操作,因此栈的运算规则 ...
- python 从大到小循环_python算法(3) 插入排序
python算法(3) 插入排序 算法分析 给出一个乱序的数列,将这个数列按从小大到(从大到小)重新排列 插入排序的的逻辑是从选这个数列,一个一个的插入一到一个新的数列中 如下: 初始数列: 5 1 ...
- python中if的效率_Python算法效率和增长量级,经典题目回顾
小tips 做这样的分析可以把代码拷贝到记事本,然后在后面写步数,比手写快得多 image.png 第一题 def program1(L): multiples = [] for x in L: fo ...
- python实现杨辉三角_Python算法之六:杨辉三角
关注微信公众号"酸痛鱼",获得更多最新最全的文章. 本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的. 建议您在PC浏览器中阅读本文,以获得更好的 ...
- python算法详解脚本之家_Python算法应用实战之栈详解
栈(stack) 栈又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作. 如下图所示 例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最 ...
最新文章
- NCBI中SRA数据库简介
- 在Flash中利用PCRE正则式漏洞CVE-2015-0318的方法
- Linux开发中 MD5值的计算
- Spring Boot——[Disconnected from the target VM, address: IP:端口, transport: #39socket#39]解决方案
- Cisco packet tracer6.0下的网络工程实训
- python测试udp端口_怎样测试UDP端口
- TestNg的IReporter接口的使用
- 红旗系统 oracle,红旗linux的Asianux 3.0安装oracle10.2
- 校园二手交易系统设计与实现
- 阿里云分布式架构云平台解决方案
- 浅析VO、DTO、DO、BO的概念、区别和用处
- iview可编辑表格组件封装
- 校验两个时间段是否重合
- nginx反向代理,隐藏服务IP
- 华硕主板电脑开机后一直反复进入BIOS界面解决办法(其中之一)
- MySql中增加注释、追加注释、修改注释、查看注释
- 基于PHP的篮球宝篮球娱乐网站
- mysql eof_EOF随记
- java利用循环打印AVA_ava.util.ArrayList在foreach循环遍历时可以删除元素
- Matlab安装bav-io插件时报错:Either you are offline, a firewall is blocking EEGLAB from accessing itsplugin s
热门文章
- 易买网更多新闻代码_《女神异闻录5》新网站源代码内藏玄机 4月25日有更多情报...
- Mac 重置 idea
- 华为路由交换学习篇-路由
- Android 微软雅黑、仿宋、黑体的使用
- STM32-USB学习系列(一) :USB与USB库的介绍
- KPI关键绩效指标(Key Performance Indicator)
- https利用360cdn实现网站加速
- VMWARE虚拟机网络环境配置
- YY创始人携手极客公园调坎QQ企鹅
- 实验室服务器机器学习环境搭建(远程连接服务器 anaconda和tensor flow)