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的七种经典排序算法(推荐)
Dec 08 Python
python实现上传下载文件功能
Nov 19 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
windows下python和pip安装教程
May 25 Python
在python中安装basemap的教程
Sep 20 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
django settings.py 配置文件及介绍
Jul 15 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
Python如何对XML 解析
Jun 28 Python
django数据模型中null和blank的区别说明
Sep 02 Python
matplotlib交互式数据光标mpldatacursor的实现
Feb 03 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
javascript每日必学之继承
2016/02/23 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
python基础梳理(一)(推荐)
2019/04/06 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
八项规定整改方案
2014/02/21 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
无犯罪记录证明
2014/09/19 职场文书
2014年卫生工作总结
2014/11/27 职场文书
使用Ajax实现进度条的绘制
2022/04/07 Javascript