Python 如何用列表实现栈和队列
来源:互联网 发布:java性能优化 编辑:程序博客网 时间:2024/05/16 05:51
前面学习了列表的基础知识,本着学以致用的原则,就想着如何通过列表来实现数据结构栈和队列。
1.栈结构,其实就是一个后进先出的一个线性表,只能在栈顶压入或弹出元素。用列表表示栈,则向栈中压入元素,可以用列表的append()方法来实现,弹出栈顶元素可以用列表的pop()方法实现。
>>> x=[] #创建一个空列表,此处表示栈>>> x[]>>> x.append('a') #压入元素'a'>>> x['a']>>> x.append('b') #压入元素'b'>>> x['a', 'b']>>> x.pop() #弹出栈顶元素'b''b'>>> x['a']>>> x.pop() #弹出栈顶元素'a''a'>>> x[]>>> x.pop() #试图对一个空栈做弹出操作,会报异常Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: pop from empty list2.队列,其实就是一个先进先出的线性表,只能在队首执行删除操作,在队尾执行插入操作。用列表表示队列,可以用append()方法实现在队尾插入元素,用pop(0)方法实现在队首删除元素。
>>> x=[]>>> x.append('a')>>> x['a']>>> x.append('b')>>> x['a', 'b']>>> x.pop(0)'a'>>> x.pop(0)'b'>>> x.pop(0)Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: pop from empty list细心观察克制,上面是把列表的最左边当做了队列的首,把最右边当做了尾(左首右尾)。也可以通过列表实现相反的队列,右首左尾。用insert(0,...)方法实现队尾插入元素,用pop()实现队首删除元素。(这样做是有意义的,人们习惯于把队列右边作为首的)
>>> x=[]>>> x.insert(0,'a')>>> x['a']>>> x.insert(0,'b')>>> x['b', 'a'] #是不是发现列表顺序和上面正好相反>>> x.pop()'a'>>> x.pop()'b'
备注:当然也可以使用insert(0,...)和pop(0)两个方法实现栈,不过这样不太符合人们的直观感受。
阅读全文
0 0
- Python 如何用列表实现栈和队列
- 如何用两个栈实现一个队列
- 如何用两个栈实现一个队列
- 如何用栈实现队列的功能
- 如何用两个栈实现一个队列
- 如何用两个栈实现一个队列
- Java:如何用两个队列实现栈
- 如何用一个栈实现队列?
- 如何用python实现剔除列表中相同的元素
- Java集合框架之如何用LinkedList实现简单的栈和队列
- 数据结构:栈和列之如何用两个队列实现一个栈?两个栈实现一个队列?
- 如何用两个栈来实现队列的方法
- 如何用两个栈实现队列的功能
- 如何用两个栈来实现队列的方法
- Java:如何用链表实现队列
- 如何用两个栈实现一个队列,以及用两个队列实现一个栈
- 如何用 python 列表解析生成 二维 等差数列 列表
- 如何用在python中迭代一个列表以及字典的索引和值?
- 线段树入门
- cocos2dx 持续学习(三) 场景切换、弹出对话框
- TCP/IP 详解:arp 学习笔记
- 习题5.5 5.6
- Python的Cookie详解
- Python 如何用列表实现栈和队列
- 【Python】asyncio异步爬虫
- HSTS 网站http跳转到https
- 消息队列技术之基本概念
- 二进制位运算
- x$bh找到buffer cache属于哪个pool
- 2017年 代做安卓毕业设计 Android毕业设计
- 第五届电气学院比赛之XXX——整体设计
- Exception 异常