数据结构--队列、双端队列实际举例详解(Python代码)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)

目录

    • 一、队列
      • 1.1举例
      • 1.2代码
      • 1.3运行结果
    • 二、双端队列
      • 2.1举例
      • 2.2代码
      • 2.3运行结果

一、队列

  1. 一种特殊的线性表,特殊之处在于它能在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。简而言之,就像排队一样,先进先出:FIFO(First In First Out)
  2. 进行添加操作的端称为队尾,进行删除操作的端称为队头。

1.1举例

第一个就队头,第二个就是队尾,队头进行删除操作,队尾进行添加操作。比如说我们早上去买包子,人多了就得排队,买包子的人是从队尾开始排(添加),你排第一个的时候就可以付钱拿着包子走人了(删除)。

1.2代码

#coding=utf-8class Queue(object):'''enter_queue():往队列末尾添加一个元素delete_queue():从队列头部删除一个元素is_empty():判空操作size():返回队列的大小'''def __init__(self):# 空的列表,保存队列数据self.list = []def enter_queue(self,item):# 往队列末尾添加一个元素self.list.append(item)def delete_queue(self):# 从队列头部删除一个元素return self.list.pop(0)# return self.list,这是返回列表def is_empty(self):# 判空操作return self.list == []def size(self):# 返回队列的大小return len(self.list)# 数据测试
if __name__ == "__main__":a = Queue()a.enter_queue("第一个排队== 第一个买到包子的人")a.enter_queue("第二个排队== 第二个买到包子的人")a.enter_queue("第三个排队== 第三个买到包子的人")print(a.delete_queue())print(a.delete_queue())print(a.delete_queue())

1.3运行结果

在这里插入图片描述

二、双端队列

其两端都可以入列和出列的数据结构,如下图所示,队尾(rear)和队头(front)都可以加入和移出数据
注意:其具有队列的性质
在这里插入图片描述

2.1举例

(想来想去都不知道用什么例子好,这是我目前能够想到的最好的一个例子了呜呜呜)
想象一下这是一个酒店吧,它有两个门,一个前门,一个后门,前门可以进,也可以出,后门可以进,也可以出
在这里插入图片描述

2.2代码

#coding=utf-8"""
add_front():从队列头部加入一个元素
add_rear():从队列尾部加入一个元素
remove_front():从队列头部删除一个元素
remove_rear():从队列尾部删除一个元素
is_empty(): 判空操作
size():返回队列的大小
"""class Double_ended_queue():def __init__(self):# 空的列表,保存队列数据self.list = []def add_front(self, item):# 从队列头部加入一个元素self.list.insert(0,item)def remove_front(self):# 从队列头部删除一个元素return self.list.pop(0)def add_rear(self, item):# 从队列尾部添加一个元素self.list.append(item)def remove_rear(self):# 从队列尾部删除一个元素return self.list.pop()def is_empty(self):# 判空操作return self.list == []def size(self):# 返回队列的大小return len(self.list)# 数据测试if __name__ == "__main__":a =Double_ended_queue()a.add_front("前门进的第一个人")a.add_front("前门进的第二个人")a.add_front("前门进的第三个人")a.add_rear("后门进的第一个人")a.add_rear("后门进的第二个人")a.add_rear("后门进的第三个人")# 从队尾出队print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)

2.3运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pythonselenium一个简单的自动化测试实战:百度搜索

目录前提准备1. Chrome浏览器的安装2. chrome浏览器下载驱动地址及Chrome的版本号查看3.下载chrome浏览器驱动4.下载安装selenium代码PC端移动端前提准备 1. Chrome浏览器的安装 2. chrome浏览器下载驱动地址及Chrome的版本号查看 这里驱动的作用:我们写的代码通…

递归算法(python),汉诺塔问题,斐波那契数列,一个简单的递归实例,用递归实现阶乘,用递归查看目录及文件

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请注明出处(如不注明,盗者必究&#xf…

python run之后出现>>> runfile(‘F:xxx.py‘, wdir=‘F:xxx‘) 快速干掉它的办法

运行结果 F:\Z\Python\install\Anaconda\envs\admin\python.exe "F:\Z\Python\install\pycharm\installPYcharm\PyCharm 2020.1\plugins\python\helpers\pydev\pydevconsole.py" --modeclient --port58318 PyDev console: starting. >>> runfile(F:/Z/Pyth…

matplotlib的基本使用 附python代码详细讲解(基本图的绘制、样式、简单函数的使用)

目录一、基本图的绘制1.1直线的绘制1.2折线的绘制1.3散点图的绘制1.4绘制不同颜色的散点图1.5绘制不同颜色的线1.6柱状图1.7饼状图1.8直方图1.9三维图1.10等高线图二、样式2.1基本样式2.2画布分区的使用三、函数3.1简单的一元二次方程3.2三角函数一、基本图的绘制 1.1直线的绘…

算法的时间复杂度(python版容易理解)+常用的时间复杂度、python代码--数据结构

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录一、算法时间复杂度的应用二、如何计算算法的时间复杂…

python小白如何看报错?实用三步法

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 怎么正确看报错?拿一段代码来说事:…

测试必备:单元测试测试类,以帮助匿名管理调查的类为例详解--白盒测试

类的测试与函数的测试相似 测试函数的案例:https://blog.csdn.net/hanhanwanghaha/article/details/107487037 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努…

解决Pycharm文件夹中同级目录导包报错的问题

报错情况:导包报错,但程序仍然可以运行 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载&#xff0…

外星人入侵游戏--python实战 (附完整代码)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录一、前提准备二、效果展示三、代码alien_invasion.pys…

测试必备:if条件测试( if-else语句、if-elif-else语句、多个elif代码块、省略else代码块、测试多个条件)

目录if-else语句if-elif-else语句多个elif代码块省略else代码块测试多个条件if-else语句 以买车票为例,儿童身高超过1.5m就需要买全票,我们可以用 if-else语句来演示。设身高为1.6m,超过了1.5,就会输出全票 # coding utf-8"…

数据分析CSV模块的基本使用(以分析复杂的天气情况为例),附完整的Python代码及csv文件详解---数据可视化

目录一、前提准备二、代码解释2.1分析CSV文件头2.2提取并读取数据2.3绘制气温图表2.4在图表中添加日期(datetime模块)2.4.1书上源代码2.4.2完善代码2.5覆盖更广的时间2.5.1书上源代码2.5.2完善代码2.6再绘制一个数据系列--添加最低气温数据2.6.1添加最低…

ValueError: invalid literal for int() with base 10:Python报错及其解决办法

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 报错情况 ValueError: invalid literal for int() with b…

数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请注明出处(如不注明,盗者必究&#xf…

IndexError: list index out of range--Python报错原因及解决办法

报错原因 一、括号里面的索引index超出范围 例如:要查找最后一个明星的名字‘Hannah Quinlivan’,Index输入为4。在Python中,第四个元素的索引为3,因为索引是从0开始的。如果想要找最后一个,但是不知道索引为几的时候…

ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (download

出现报错 出现了这个报错 ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (downloaded from C:\Users\admin\AppData\Local\Temp\pip-req-build-bscsadf5, content-type: text/html); cannot detect archive format ERROR: Ca…

创建数据库python: can‘t open file ‘manage.py‘: [Errno 2] No such file or directory报错

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 在创建数据库时运行代码 python manage.py migrate运行结…

Django的简单介绍及虚拟环境的搭建、创建项目,数据库(Windows版超级详细)--Python web应用程序开发(Python实战)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录Djanggo简介建立虚拟环境(Anaconda终端下)激活虚拟环境…

教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来

目录将word转换为pdf格式安装pywin32上代码运行结果批量实现word转pdf安装docx2pdf上代码运行结果将word转换为pdf格式 安装pywin32 代码(Anaconda终端下) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsingh…

用Python高效地将 多个excel表快速汇总成一个excel表--python办公实用小技能分享

相信很多友友们都遇到一个同样的问题,就是将多个excel表汇总成一个表效率极低,不止如此,还要看有没有复制错。在学校担任多种职务的我总是要汇总很多个表格,早就用python来想解决这个问题,经过借鉴网上的多位大咖的代码…

教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享

上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! 在Anaconda终端下输入代码 pip install --u…