python 数据结构 - 栈
如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10293388.html
欢迎关注小婷儿的博客:
有问题请在博客下留言或加作者微信:tinghai87605025 或 QQ :87605025
python QQ交流群:py_data 483766429
博客园:http://www.cnblogs.com/xxtalhr/
csdn:https://blog.csdn.net/u010986753
一、概念
栈(stack),有些地方称为堆栈,是一种后入先出(LIFO,last-in-first-out)的数据结构,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在一端进行加入数据和输出数据操作。
栈可以使用顺序存储结构的内存空间实现,其内存空间分布如下:
二、应用
根据栈的特点,列表可以作为栈使用。
append相当于入栈、pop相当于出栈;
xxt = [1,2,3,'a','b','c'] xxt.append(6) #入栈 [1, 2, 3, 'a', 'b', 'c', 6] xxt.pop() #出栈 [1, 2, 3, 'a', 'b', 'c']
class Stack:
def __init__(self):
self.xxt = [] def push(self, info):
'''入栈'''
self.xxt.append(info)
return self.xxt def pop(self):
'''出栈'''
return self.xxt.pop() def isEmpty(self):
'''判断栈中是否有元素'''
return len(self.xxt) == 0 def size(self):
'''获取栈中元素个数'''
return len(self.xxt) if __name__ == '__main__':
xxt = [1, 2, 3, 'a', 'b', 'c']
xxt.append(6) # [1, 2, 3, 'a', 'b', 'c', 6]
xxt.pop() # [1, 2, 3, 'a', 'b', 'c'] stack = Stack()
print('stack.push66:', stack.push(66))
print('stack.push13:', stack.push(13))
print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))
print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))
# print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt)) #IndexError: pop from empty list '''结果
stack.push66: [66]
stack.push13: [66, 13]
stack.pop:13,xxt:[1, 2, 3, 'a', 'b', 'c']
stack.pop:66,xxt:[1, 2, 3, 'a', 'b', 'c']
'''
三、栈的相关概念:
栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。
压栈:栈的插入操作,叫做进栈,也称压栈、入栈,通常命名为push。
弹栈:栈的删除操作,也叫做出栈,通常命名为pop。
OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA
OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA
小婷儿的python正在成长中,其中还有很多不足之处,随着学习和工作的深入,会对以往的博客内容逐步改进和完善哒。
重要的事多做几遍。。。。。。
python 数据结构 - 栈的更多相关文章
- Python数据结构———栈
线性数据结构 当添加一个项目时,它就被放在这样一个位置:在之前存在的项与后来要加入的项之间.像这样的数据集合常被称为线性数据结构. 栈 栈是一个项的有序集合.添加项和移除项都发生在同一“端”,这一端通 ...
- Python数据结构——栈
栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶.栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构. 由于栈具有后入先出的特点,所以任何不在栈顶的元素 ...
- Python数据结构——栈的链表实现
自定义链表实现栈的数据结构,代码如下: class Stack: def __init__(self): self._first = None def push(self,item): self._f ...
- Python数据结构——栈的列表实现
用Python内置的列表(list)实现栈,代码如下: import os os.chdir("E:\\Python_temp") class Stack: def __init_ ...
- Python数据结构——栈、队列的实现(二)
1. 一个列表实现两个栈 class Twostacks(object): def __init__(self): self.stack=[] self.a_size=0 self.b_size=0 ...
- Python数据结构——栈、队列的实现(一)
1. 栈 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top).栈的基本操作有PUSH(入栈)和POP(出栈).栈又被称为LIFO(后入先出)表. 1.1 ...
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
- python数据结构-数组/列表/栈/队列及实现
首先 我们要分清楚一些概念和他们之间的关系 数组(array) 表(list) 链表(linked list) 数组链表(array list) 队列(queue) 栈(stack) li ...
- [adt]python实现栈-体验数据结构
经常使用py的一些数据结构,如list,及list的一些方法. 还有hash表等. 各类数据结构方法用的很6,然而不知道是底层是怎么实现的. 基于此,就开始研究一下py实现一些数据结构, 以便于对计算 ...
随机推荐
- @RequestBody发送请求报400错误
参数不使用@RequestBody 在使用Postman进行Post请求时,通常做法是填入key和value的值即可. 参数使用@RequestBody 使用@RequestBody注解时,在发送请求 ...
- MathJax: 让前端支持数学公式
文章图片存储在GitHub,网速不佳的朋友,请看<MathJax:让前端支持数学公式> 或者 来我的技术小站 godbmw.com 1. 必须要说 1.1 开发背景 博主使用Vue开发的个 ...
- Python全栈学习_day003知识点
今日大纲: . 基础数据类型 总览 . int . bool . str . for循环 1. 基础数据类型 总览 int: 用于计算,计数等 str:'这些内容',用户少量数据的存储,便于操作 bo ...
- Push notification - Caused by java.io.IOException toDerInputStream rejects tag
苹果推送 : 文件不是P12文件当生成一个P12,需要选择两个,在钥匙串访问的私钥和证书.
- 教你读懂vue源码技术教程
由于 Vue 的源码采用 ES6,所以你至少应该掌握 ES6 才能看得懂,其次你最好对 package.json 中的字段的作用有所了解.由于 Vue 使用 Rollup 构建,所以你不了解 Roll ...
- Application.Current的使用
来源 http://www.cnblogs.com/symons/archive/2010/03/15/1686200.html Application.Current的使用 WPF程序对应一个App ...
- Python:GUI之tkinter学习笔记3事件绑定
相关内容: command bind protocol 首发时间:2018-03-04 19:26 command: command是控件中的一个参数,如果使得command=函数,那么点击控件的时候 ...
- nginx的ngx_http_realip_module模块和http头X-Forwarded-For、X-Real-IP
ngx_http_realip_module模块 realip模块作用:当本机的nginx处于反向代理的后端时可以获取到用户的真实ip.可以让accesslog记录用户真实IP地址. set_real ...
- VS发布web应用程序报:无法识别的特性“xmlns:xdt”。请注意特性名称区分大小写 或 未能将文件obj\...复制到obj\...未能找到路径
问题1:无法识别的特性“xmlns:xdt”.请注意特性名称区分大小写 问题2:未能将文件obj\...复制到obj\...未能找到路径 解决办法:将web项目文件下的obj文件夹从项目中排除,然后再 ...
- Python和Lua的默认作用域以及闭包
默认作用域 前段时间学了下Lua,发现Lua的默认作用域和Python是相反的.Lua定义变量时默认变量的作用域是全局(global,这样说不是很准确,Lua在执行x = 1这样的语句时会从当前环境开 ...