有趣生活

当前位置:首页>科技>python队列用什么表示Python列表数据类型什么是栈什么是队列

python队列用什么表示Python列表数据类型什么是栈什么是队列

发布时间:2026-07-25阅读(0)

导读栈栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。就像咖啡厅内的一摞盘子是现实世界中常见的栈的例子。只能从最上面取盘子,盘子洗净后,也....

栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。就像咖啡厅内的一摞盘子是现实世界中常见的栈的例子。只能从最上面取盘子,盘子洗净后,也只能摞在这一摞盘子的最上面。栈的基本操作有push()和pop()、peek()。所以栈又被称为LIFO表。堆与栈是C/C 语言内存管理和编译优化时使用的,在Python里,递归层次太多,要改用堆栈,而不能用递归。

由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问。为了得到栈底的元素,必须先拿掉上面的元素。

入栈使用push()方法

入栈和出栈的过程

预览栈顶的元素
  1. pop()方法虽然可以访问栈顶的元素,但是调用该方法后,栈顶元素也从栈中被永久性地删除了。

  2. peek()方法则只返回栈顶元素,而不删除它。

为了记录栈顶元素的位置,同时也为了标记哪里可以加入新元素,我们使用变量top,当向栈内压入元素时,该变量增大;从栈内弹出元素时,该变量减小。

简单案例以及操作结果:

这里使用python的list对象模拟栈的实现:

栈应用

  • 检查程序中成对的符号

用栈来检查符号是否成对。做一个空栈,如果字符是开放符号(({[)则将其push栈中。如果符号是个闭合符号()]}),则当栈空时报错,对应()}的错误。否则,将栈pop,如果弹出的符号不是对应的开放符号,则报错,对应(}的错误。文件末尾,如果栈为空,则报错,对应({}的错误。

  • 进制转换

十进制转换二进制:把十进制转成二进制一直分解至商数为0。从最底左边数字开始读,之后读右边的数字,从下读到上。

  • 后缀记法

使用一个栈,见到一个数时入栈,遇到一个运算符时就作用于从栈弹出的两个元素,将结果弹入栈中。中缀到后缀的转换:当读到一个操作数的时候,放到输出中。读到操作符( ,-,*,/)时,如果栈为空,则压入栈中,否则弹出栈元素放到输出中直到发现优先级更低的元素为止。读到(,压入栈中,读到),弹出栈元素并发到输出中直到发现(为止。

队列

队列其实就是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,这点和栈不一样。

PS:说一下在Python2.X的版本中队列模块是queue,而Python3.X中的队列模块是queue,所以导入模块的时候请注意自己的Python环境

  • 一个线性的数据结构

  • 队列遵循FIFO的原则

  • 队列头部为front,尾部为rear

队列操作举例

先进先出队列(FIFO)

class queue.Queue(maxsize=0)

Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。

后进先出队列(LIFO)

class queue.LifoQueue(maxsize=0)

后进先出队列与栈的类似,使用也很简单

queue常用方法

讲到这里其实还有一种优先队列,小编留一个悬念,希望时刻关注小编,定期更新,点关注不迷路

TAGS标签:  python  队列  什么  表示  python队列用什

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图