Python基于列表模拟堆栈和队列功能示例


Posted in Python onJanuary 05, 2018

本文实例讲述了Python基于列表模拟堆栈和队列功能。分享给大家供大家参考,具体如下:

之前的文章https://3water.com/article/59897.htm介绍了堆栈与队列的Python实现方法,这里使用列表来模拟一下堆栈与队列的简单操作。

一、队列特点:先进先出、后进后出

用列表insert、pop模拟进队出队:

>>> l = []
>>> l.insert(0,'p1')
>>> l.insert(0,'p2')
>>> l.insert(0,'p3')
>>> l
['p3', 'p2', 'p1']
>>> l.pop()
'p1'
>>> l.pop()
'p2'
>>> l.pop()
'p3'

用列表append、pop模拟进队出队:

>>> l = []
>>> l.append('p1')
>>> l.append('p2')
>>> l.append('p3')
>>> l
['p1', 'p2', 'p3']
>>> l.pop(0)
'p1'
>>> l.pop(0)
'p2'
>>> l.pop(0)
'p3'

二、堆栈特点:先进后出、后进先出

用列表insert、pop方法模拟进栈出栈:

>>> l = []
>>> l.insert(0,'a1')
>>> l.insert(0,'a2')
>>> l.insert(0,'a3')
>>> l
['a3', 'a2', 'a1']
>>> l.pop(0)
'a3'
>>> l.pop(0)
'a2'
>>> l.pop(0)
'a1'

用列表append、pop方法模式进栈出栈:

>>> l = []
>>> l.append('a1')
>>> l.append('a2')
>>> l.append('a3')
>>> l
['a1', 'a2', 'a3']
>>> l.pop()
'a3'
>>> l.pop()
'a2'
>>> l.pop()
'a1'

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
python实现网站的模拟登录
Jan 04 Python
python音频处理用到的操作的示例代码
Oct 27 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
python如何实现反向迭代
Mar 20 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
django为Form生成的label标签添加class方式
May 20 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 Python
Django 2.0版本的新特性抢先看!
Jan 05 #Python
微信跳一跳游戏python脚本
Apr 01 #Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 #Python
django 2.0更新的10条注意事项总结
Jan 05 #Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 #Python
python with提前退出遇到的坑与解决方案
Jan 05 #Python
微信跳一跳小游戏python脚本
Jan 05 #Python
You might like
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php商品对比功能代码分享
2015/09/24 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
python 利用jinja2模板生成html代码实例
2019/10/10 Python
python配置文件写入过程详解
2019/10/19 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
kfc实习自我鉴定
2013/12/14 职场文书
医药代表个人求职信范本
2013/12/19 职场文书
蔬菜基地的创业计划书
2014/01/06 职场文书
心理健康课教学反思
2014/02/13 职场文书
2019个人半年工作总结
2019/06/21 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
Redis读写分离搭建的完整步骤
2021/09/14 Redis