如需转发,请注明出处:小婷儿的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 数据结构 - 栈的更多相关文章

  1. Python数据结构———栈

    线性数据结构 当添加一个项目时,它就被放在这样一个位置:在之前存在的项与后来要加入的项之间.像这样的数据集合常被称为线性数据结构. 栈 栈是一个项的有序集合.添加项和移除项都发生在同一“端”,这一端通 ...

  2. Python数据结构——栈

    栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶.栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构. 由于栈具有后入先出的特点,所以任何不在栈顶的元素 ...

  3. Python数据结构——栈的链表实现

    自定义链表实现栈的数据结构,代码如下: class Stack: def __init__(self): self._first = None def push(self,item): self._f ...

  4. Python数据结构——栈的列表实现

    用Python内置的列表(list)实现栈,代码如下: import os os.chdir("E:\\Python_temp") class Stack: def __init_ ...

  5. Python数据结构——栈、队列的实现(二)

    1. 一个列表实现两个栈 class Twostacks(object): def __init__(self): self.stack=[] self.a_size=0 self.b_size=0 ...

  6. Python数据结构——栈、队列的实现(一)

    1. 栈 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top).栈的基本操作有PUSH(入栈)和POP(出栈).栈又被称为LIFO(后入先出)表. 1.1 ...

  7. python数据结构之栈与队列

    python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...

  8. python数据结构-数组/列表/栈/队列及实现

    首先 我们要分清楚一些概念和他们之间的关系 数组(array)  表(list)  链表(linked list)  数组链表(array list)   队列(queue)  栈(stack) li ...

  9. [adt]python实现栈-体验数据结构

    经常使用py的一些数据结构,如list,及list的一些方法. 还有hash表等. 各类数据结构方法用的很6,然而不知道是底层是怎么实现的. 基于此,就开始研究一下py实现一些数据结构, 以便于对计算 ...

随机推荐

  1. jQuery性能优化的一些参考建议

    JQ3.1 文档下载地址:https://pan.baidu.com/s/1c2vMQdy 一.注意定义jQuery变量的时候添加var关键字 这个不仅仅是JQ,在JS中都是必须的 二.如果有多个变量 ...

  2. Python十讲 - 第二讲:变量和基础数据类型

    本讲主要内容 变量 字符串 数字和运算符 数据类型转换 2.1 变量 1. 变量是什么? 变量,是指把程序运行的中间结果临时的存在内存里,以便后续的代码调用,其值可以修改. 在python中,当变量被 ...

  3. MySQL chartset

    -- # https://dev.mysql.com/doc/refman/8.0/en/charset-database.html -- create database aixinyz; -- 默認 ...

  4. 【读书笔记】iOS-设置应用的硬件需求

    如果你的应用需要一些特定的硬件设备才能运行,你可以在应用的Info.plist文件中添加应用运行所需的硬件列表.如果设备上没有这些硬件的话,你的应用将不会启动. 如图,找到Info.Plist---& ...

  5. Spark机器学习——模型选择与参数调优之交叉验证

    spark 模型选择与超参调优 机器学习可以简单的归纳为 通过数据训练y = f(x) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...

  6. 转发:tomcat的acess_log打印post请求参数,分析日志

    转载自:https://blog.csdn.net/qq_30121245/article/details/52861935 1) 在项目中加入相应的包和类,加载那里无所谓,只要web.xml配置正确 ...

  7. 【转】解决configure: error: C++ compiler cannot create executables问题

    转自:http://www.coderbolg.com/content/83.html 啊……天啊,./configure时报错:configure: error: C++ compiler cann ...

  8. Linux 学习笔记之超详细基础linux命令 Part 7

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 6----------------- ...

  9. c++面向对象学习计划

    面向对象自学计划 视频学习计划 计划:每天观看至少两个视频,到开学时差不多完成视频的学习. 进度:已学习12个视频. C的强化与补漏 C语言不熟悉的知识点:数组,结构体,链表,文件 -----已重新学 ...

  10. centos6启动服务说明

    centos6启动服务说明 阅读目录 centos6.9最小化安装下的启动服务 其他服务(仅供参考,持续更新) 此表转自:参考1.参考2.另有多处补充及纠正. 1. centos6.9最小化安装下的启 ...