关于python:万能的list列表python中的堆栈队列实现全靠它

27次阅读

共计 1640 个字符,预计需要花费 5 分钟才能阅读完成。

在 python 编程中很多的数据计算都须要依附列表来实现,比方 Java 编程中的堆栈构造 / 队列构造也能够通过 list 列表实现的。

【浏览全文】

1、将列表当做堆栈来应用

堆栈数据结构实现的思维就是:‘先进后出’,所以实现时须要保障先进来的数据最初进来,堆栈数据结构的个别在计算机的中断表达式计算中利用场景比拟多,因为计算机并不是简略的依据咱们了解的加减乘除来进行数据运算的。

这里写了一个简略的实现过程,其实 list 列表中曾经有自带的函数能够实现。

stack_ = [] # 初始化一个栈对象

'''写一个 for 循环向栈对象中增加数据元素'''
for n in range(10):

    stack_.append(n)  # 向栈对象中增加数据元素

print(stack_) # 以后栈对象中的数据元素

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

'''写一个 for 循环来移除最初两个栈顶数据元素'''
for m in range(2):

    stack_.pop()  # 通过 pop 函数移除栈顶元素

print(stack_) # 以后栈对象中的数据元素

# [0, 1, 2, 3, 4, 5, 6, 7]

# 能够发现最初进来的两个栈顶数据元素 8、9 被移除了进去 

这样就简略实现了栈对象的过程达到‘先进后出’的成果,也就是‘后进先出’。

2、将列表当做队列来应用

队列数据结构实现的思维就是:‘先进先出’,将队列元素依照排队的形式顺次退出到队列数组中,先退出的数据元素最先进去,而后前面的数据元素再向前挪动。

同样的还是得通过 list 列表来实现,只是这次队列的实现须要导入一个 python 到代码块中来辅助实现。

from collections import deque  # 将队列对象导入到代码块中

# 采纳 while 循环的形式来进行数据的初始化

list_ = []  # 初始化一个 list 列表用于存放数据元素

k = 1  # 初始化 k = 1,用于实现 while 循环

while k < 20:  # 退出判断条件,这里取 19 个元素

    list_.append(k)  # 向列表中增加数据元素

    k = k + 1  # 循环元素递增

print(list_)  # 打印查看以后的 lsit 数据列表

# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

# 生成了数据当前,而后将列表数据元素放到队列对象中。queue_ = deque(list_)  # 初始化队列对象

print(queue_)  # 查看以后队列数据元素

# deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])

# 当初向队列中增加数据元素

queue_.append(20)  # 向队列中增加元素 20

queue_.append(21)  # 向队列中增加元素 21

print(queue_)  # 查看以后队列数据元素

# deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])

# 当初从队列取出一个数据元素

queue_.popleft()  # 从队列的头部取出数据元素

print(queue_)  # 查看以后队列数据元素

# deque([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])

这时候,看到队列头部的数据元素 1 曾经被取出了。

【往期精彩】

该怎么用 pyqt5 来实现数据的增、删、改、查性能 …

介绍一个文本语音神器,几行代码就能搞定!

python 批量主动整顿文件

初学者福利:分享五个收费的 Python 学习网站,放松珍藏吧!

乏味的控制台玩法:一行代码绘制控制台图像!

数据处理小工具:Excel 批量数据文件拆分 / 整合器 …

办公自动化:PDF 文件合并器,将多个 PDF 文件进行合并 …

GUI 猜数字游戏,间接开玩 …

手把手教你做一个数据图表生成器(附源码)…

动静指针时钟:利用 pyqt5 制作指针钟表显示实时工夫

python 日志中最亮的仔,是喜爱的花里胡哨吖 …

哈撒给,英雄联盟全皮肤下载器来了 …

正文完
 0