前言

Python本身已有顺序表(List、Tupple)的实现,所以这里从栈开始。

什么是栈

想象一摞被堆起来的书,这就是栈。这堆书的特点是,最后被堆进去的书,永远在最上面。从这堆书里面取一本书出来,取哪本书最方便?肯定是最上面那本。栈这种数据结构的特点就是如此:后进先出(Last In First Out - LIFO),即最后被堆进去的数据,最先被拿出来。

栈的Python实现

栈可以用顺序表方式实现,也可以用链表方式实现。我大Python的内建数据结构太强大,可以用list直接实现栈,简单快捷。人生苦短,我用Python。代码如下:

Tips:

看完上面的代码,聪明的同学一定知道了,Python里面实现栈,就是把list包装成一个类,再添加一些方法作为栈的基本操作。其他的数据结构在Python中也是以类似的方式实现的。

那么,这里有一些有的没的要说一下~

如果希望items[]是Stack类私有的属性,这样做就好了:

没错,就是在items前面加两个下划线__,在Python中,类的私有成员就是这样定义哒~

如果希望限定Stack类的成员只有items,不要其他的怪蜀黍乱加成员,那么这样做就好了:

这样就安全多啦~

Python并没有Java里的public/private/protected这样的修饰符,因为Python的设计者认为,“大家都是成年人了”~

总结

以上所述是小编给大家介绍的Python实现的栈(Stack),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://blog.csdn.net/xuqiang20121991/article/details/54139431

python实现栈的操作入站出站查找元素等_Python实现的栈(Stack)相关推荐

  1. 数据结构与算法--举例分析法- 栈的压入弹出序列

    举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...

  2. Netty核心组件 ChannelPipeline和ChannelHandler与ChannelHandler的入站出站规则

    概述 Netty中ChannelPipeline与Channel的对应关系是一一对应,也就是每个Channel中有且仅有一个ChannelPipeline,可以通过Channel获取唯一的Channe ...

  3. 【剑指offer-Java版】22栈的压入弹出序列

    栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...

  4. 算法笔记--简单实现栈的先入后出(FILO,First In Last Out)功能

    算法笔记–简单实现栈的先入后出(FILO,First In Last Out)功能 stack 栈,是一个 先入后出(FILO,First In Last Out)的 有序列表,可以形象地理解为手枪的 ...

  5. python 栈的压入弹出序列

    | 栈的压入和弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等. 例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序 ...

  6. [九度][何海涛] 栈的压入压出

    题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...

  7. 剑指offer-21.栈的压入弹出序列

    1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  8. 栈的思想解决火车出站问题

    问题1:来自算法竞赛入门6.1 某城市有一个火车站,铁轨铺设如图6-1所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是让它们按照某种特定的顺序进入B方向的铁轨并驶出车站.为了重组车 ...

  9. 如何用python画折线图的时候标出阴影柱状背景_python绘图的图线阴影添加的几种方法介绍...

    方法一:标准方法 主要是利用了位移函数matpltlib.transforms.ScaledTransformation(xtr,ytr,figure.dpi_scale_trans).这个只是写明了 ...

最新文章

  1. 【c语言】蓝桥杯算法训练 4-2找公倍数
  2. lnmp安装博客系统WordPress
  3. python 查看字符编码,[Python]判断系统编码和字符编码chardet
  4. [简单题]自定义取余(三种解法)C++实现
  5. A Convolutional Neural Network for Modelling Sentences阅读笔记
  6. 互联网产品设计常用文档类型-BRD、MRD、PRD、FSD
  7. C语言存储为2进制,浮点数的二进制存储形式及c语言验证
  8. mysql 将时间戳_mysql 将时间戳直接转换成日期时间
  9. 新版仿小刀资源网模板—木鱼cms
  10. Servlet Session 跟踪
  11. redis集群如何解决重启不了的问题
  12. mysql之解决查询表时区分大小写的问题
  13. python findall函数_Python正则表达式
  14. 已安装jre1.7的情况下安装jdk1.6
  15. tp框架-----Model模型层
  16. YouTube深度学习视频推荐系统
  17. uni-app uni.request简单封装(请求头配置及response处理)
  18. aot慈善币跑路了_慈善币AOT:用公益收割“韭菜”
  19. 作为Gatekeeper,请守好交付质量关口(Quality Gate)
  20. c语言的变量和指针,怎么理解?

热门文章

  1. .net pdf转图片_pdf2image类库实现批量pdf转图片
  2. 写接口是什么意思啊_科普贴:果汁包装上写NFC到底是什么意思?
  3. css英文左右对齐,中文英文左右padding一致两端对齐实现_js
  4. Ubuntu16.04直接修改root密码
  5. 怎么在linux下使用ftp服务器,怎么在Linux下建立安全的FTP服务器?
  6. Solr Facet技术的应用与研究
  7. 【深度揭秘】百度、阿里、腾讯内部岗位级别和薪资结构,附带求职建议!
  8. 蚂蚁中间件团队Java面试题:Netty+Redis+Kafka+MongoDB+分布式
  9. 会议交流 | 如何将图谱实体与关系更好的向量化,并基于推理扩充知识边界?——DataFun Summit2022知识图谱在线峰会...
  10. 综述 | 事件抽取及推理 (上)