第7章队列2025/6/101队列的特点队列的创建与独特的方法队列与回文串队列与加密解密队列与约瑟夫问题队列与广度搜索优先队列队列与排队队列与筛选法
7.1队列的特点2025/6/102队列擅长在线性表的头、尾两端实施删除和添加操作,甚至可以把线性表实现成只在头、尾两端操作,所以人们也称队列是受限的线性表。入列时,最先进入的节点在队头,最后进入的节点在队尾。出列时,从队列的头开始删除节点,最后一个删除的节点是队尾的节点。队列是一种先进先出的数据结构,简称FIFO(FirstInFirstout)
7.1队列的特点2025/6/103头节点(队头)在左边、尾节点(队尾)在右边。
7.2队列的创建与独特方法2025/6/104collections.deque是Python的collections模块提供的一种双向队列数据结构,collections.deque支持在队列的两端进行入列和出列操作。以下称collections.deque类的实例(对象)为双端队列,简称队列,其中的节点的逻辑结构是线性结构,存储结构使用了双向链表,这意味双端队列在插入和删除元素的时间复杂度是O(1),使得他非常适合于需要高效地在队列两端进行操作的场景。
2025/6/1057.2队列的创建与独特方法1创建队列创建一个空队列:使用deque()构造方法即可创建一个空的队列。使用deque(iterable)构造方法创建一个有初始元素的队列,其中iterable是一个可迭代对象,可以是列表、元组、字符串等,用于初始化双向队列的节点。
2025/6/1067.2队列的创建与独特方法2独特方法?
2025/6/1077.2队列的创建与独特方法3.单端队列queuePython标准库中的queue模块提供的Queue类(注意Queue的首写字母是大写字母)是collections.deque队列的适配器,相对于双端队列deque,称Queue的实例是单端队列,单端队列只提供了队列的基本操作接。入列put()、出列get(),但不提供从队尾出列、从队头入列的操作。需要注意的是单端队列queue使用自己的qsize()方法判断其长度,不可以使用Python的内置函数len()判断单端队列的长度,即不可以len(queue)。
2025/6/1087.2队列的创建与独特方法ch7_1.py例子1使用队列的独特方法ch7_1.py使用了队列的独特方法.
7.3队列与回文串2025/6/109回文串是指和其反转(倒置)相同的字符串,例如:racecar,123321,level”,toot,civic,pop,eye,rotator,pip都是回文串。我们曾在第3章例子4,使用递归方法判断一个字符串是否是回文串。
2025/6/10107.3队列与回文串ch7_2.py例子2使用队列也可以判断一个字符串是否是回文串。将字符串中的全部字符按顺序依次入列,然后开始分别从头、尾出列,如果字符串是回文串,那么从头出列的节点一定和从尾出列的节点相同,当队列中剩余的节点数目不足2个时,停止出列。利用队列判断字符串是否是回文串读者可以和第6章中的例6-1进行比较,分别体会栈和队列的特点。
7.4队列与加密解密2025/6/1011用队列可以方便地对字符串实施加密(解密)操作。出列的对象参与加密字符串中一个字符(出列的对象参与解密字符串中一个字符),然后再重新入列,一直到字符串中的字符全部被加密完毕(字符串中的全部字符被解密完毕)。
2025/6/10127.4队列与加密解密例子3ch7_3.py使用队列加密、解密字符串ch7_3.py中的do_encryption(source,password)函数使用队列加密字符串、do_decryption(secret,password)使用队列解密字符串。
7.5队列与约瑟夫问题2025/6/1013简单再重复一下约瑟夫问题:若干个人围成一圈,从某个人开始顺时针(或逆时针)数到第3个人,该人从圈中退出,然后继续顺时针(或逆时针)数到第3个人,该人从圈中退出,依此类推,程序输出圈中最后剩下的一个人。?
2025/6/10147.5队列与约瑟夫问题例子4对于约瑟夫问题,队列的算法具有很好的可读性。ch7_4.py使用队列解决约瑟夫问题
7.6队列与广度搜索2025/6/1015广度优先搜索(BreadthFirstSearch,BFS)是图的另一种遍历方式,与深度搜索(DFS)相对,是以广度优先进行搜索。其特点是先访问图的顶点,然后广度优先:依次进行被访问点的邻接点,一层一层访问,直至访问完所有节点或搜索到指定的节点,算法结束。栈的特点是后进先出,恰好能体现深度优先。队列的特点是
您可能关注的文档
- 第1章 数据结构简介.pptx
- 第2章 算法复杂度.pptx
- 第3章 递归算法.pptx
- 第9章 散列结构.pptx
- 第12章 Python的实用算法.pptx
- 第14章 经典算法思想.pptx
- 第11章 链表教学课件.pptx
- 第8章 二叉树教学课件.pptx
- 第6章 栈教学课件.pptx
- 第4章 数组教学课件.pptx
- 2026年全球AI教育市场自适应学习系统与教育大数据分析.docx
- 2026年全球AI教育市场数据驱动决策分析.docx
- 2026年全球AI法律合规性检查技术路线图.docx
- 2026年全球AI法律咨询市场发展机遇与挑战.docx
- 2026年全球AI法律咨询市场合同审查自动化技术政府支持政策.docx
- 智慧农业无人机作物生长监测与病虫害防治信息化平台可行性分析报告.docx
- 2025年生态旅游景区停车场新能源汽车停车需求预测报告.docx
- 2026年全球AI法律咨询市场竞争格局分析.docx
- 2026年全球AI教育市场教师技术应用案例.docx
- 2026年全球AI教育市场教师角色转型与教育创新激励机制研究.docx
最近下载
- 深度解析(2026)《GBT 15555.8-1995固体废物 总铬的测定 硫酸亚铁铵滴定法》.pptx VIP
- 新大象版科学六年级下册全册精编知识点.pdf
- 钢轨探伤正常波形及图像识读王孟君课件.pptx VIP
- 2025年食品检验工食品理化检测考试试卷:理化指标分析.docx VIP
- 超声波常见异常波形识读王孟君课件.pptx VIP
- 跨境数据流动与个人信息保护.docx VIP
- 考试2018常规理化岗位考核.pdf VIP
- 轨头核伤波形及图像识读王孟君课件.pptx VIP
- 单元工程施工质量检验表与验收表(样表:4小型蓄水工程)(SLT 336—2025)水土保持工程质量验收与评价规范.docx VIP
- 单元工程施工质量检验表与验收表(样表:3梯田工程)(SLT 336—2025)水土保持工程质量验收与评价规范.docx VIP
原创力文档

文档评论(0)