队列

1.定义:队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。

2.特点:

  • 队列只能在队头和队尾进行数据操作
  • 栈模型具有先进先出或者叫做后进后出的规律

3.队列的代码实现

队列的操作有入队,出队,判断队列的空满等操作。

 1 """
 2 squeue.py  队列的顺序存储
 3 重点代码
 4
 5 思路分析:
 6 1. 基于列表完成存储结构
 7 2. 通过封装规定队头和队尾操作
 8 """
 9
10 #  自定义队列异常
11 class QueueError(Exception):
12   pass
13
14
15 # 队列操作类
16 class SQueue:
17   def __init__(self):
18     self._elems = []
19
20   # 判断队列空
21   def is_empty(self):
22     return self._elems == []
23
24   # 入队 从列表尾部
25   def enqueue(self, elem):
26     self._elems.append(elem)
27
28   # 出队 从列表开头
29   def dequeue(self):
30     if not self._elems:
31       raise QueueError("Queue is empty")
32     return self._elems.pop(0)
33
34
35 if __name__ == "__main__":
36   sq = SQueue()
37   sq.enqueue(10)
38   sq.enqueue(20)
39   sq.enqueue(30)
40   while not sq.is_empty():
41     print(sq.dequeue())

队列的顺序存储代码

 1 """
 2 lqueue.py 链式队列
 3 重点代码
 4
 5 思路分析:
 6 1. 基于链表模型完成链式栈
 7 2. 链表开端作为队头,尾端作为队尾
 8 3. 头尾指向同一个节点时作为空队列
 9 """
10
11 #  自定义队列异常
12 class QueueError(Exception):
13   pass
14
15 #节点类
16 class Node:
17   def __init__(self, data, next=None):
18     self.data = data
19     self.next = next
20
21 # 链式队列类
22 class LQueue:
23   def __init__(self):
24     # 初始头尾指向一个没有实际意义的节点
25     self.front = self.rear = Node(None)
26
27   def is_empty(self):
28     return self.front == self.rear
29
30   # 入队 尾动
31   def enqueue(self,elem):
32     self.rear.next = Node(elem)
33     self.rear = self.rear.next
34
35   # 出对 头动
36   def dequeue(self):
37     if self.front == self.rear:
38       raise QueueError("Queue is empty")
39     self.front = self.front.next
40     return self.front.data
41
42 if __name__ == "__main__":
43   lq = LQueue()
44   lq.enqueue(10)
45   lq.enqueue(20)
46   lq.enqueue(30)
47   print(lq.dequeue())

队列的链式存储代码

转载于:https://www.cnblogs.com/maplethefox/p/10988580.html

Python数据结构与算法—队列相关推荐

  1. Python数据结构与算法(二)栈和队列

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  2. Python数据结构与算法(3.5)——双端队列

    Python数据结构与算法(3.5)--双端队列 0. 学习目标 1. 双端队列的基本概念 1.1 双端队列的基本概念 1.2 双端队列抽象数据类型 2. 双端队列的实现 2.1 顺序双端队列的实现 ...

  3. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  4. Python数据结构与算法(一)列表和元组

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  5. python数据结构与算法练习-Printer Queue

    python数据结构与算法练习-队列 Printer Queue python实现 需要注意的知识点: Printer Queue 链接: link. The only printer in the ...

  6. [FreeCodeCamp笔记] Python 数据结构和算法1 二分搜索 Binary Search

    我以前学过数据结构和算法(data structure and algorithms. 现在普遍简称DSA),当时用的Robert Sedgewick的coursera课程.这位大神写的<算法( ...

  7. 视频教程-Python数据结构与算法面试(上)-Python

    Python数据结构与算法面试(上) 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1 ...

  8. 数据结构与算法---队列

    数据结构与算法-队列 1. 队列的定义: 队列(Queue )简称队,是一种操作受限制 的线性表 ,只允许在表的一端进行插入,而在表的另一端进行删除.向队列中插入元素称为入队或进队: 删除元素称为出队 ...

  9. JavaScript数据结构与算法——队列详解(下)

    接下来会借助本人另一篇文章JavaScript数据结构与算法--队列详解(上)中实现的队列类及其方法实现一个应用. 配对问题 需求分析:在一个文件中保存着一份男女混合的数据,名称前以B开头表示男士,以 ...

最新文章

  1. CIO能够对我们的社会起到什么作用?
  2. 拍摄中如何判断灰度等级_如何判断电力铁塔的电压等级?每个人都应知道
  3. linux内核定义,Linux内核定义的常量
  4. 浏览器拦截打开新窗口情况总结
  5. JS手动实现一个new操作符
  6. 在Oracle中写出性能优良的SQL语句
  7. 基数排序(稍微困难)
  8. 算法:Longest Valid Parentheses(最长有效的括号)
  9. python脚本——Excel处理
  10. c语言check,C语言的CHECK-LIST
  11. FISCO BCOS区块链搭建说明(第一篇)
  12. intellij idea 类和文件夹(目录)左上角出现小叉号
  13. 剑指offe-机器人的运动范围
  14. HTML5期末考核大作业网站——卫生与健康HTML+CSS+JavaScript
  15. group_wait、group_interval、repeat_interval对告警的影响
  16. 追源索骥:透过源码看懂Flink核心框架的执行流程--来自GitHub
  17. 微服务注册中心怎么选?
  18. java校园招聘华为_2015届华为校园招聘机试题 java实现
  19. 目前人生阶段的关键字
  20. Java基础编程题(02)求100-200之间的素数

热门文章

  1. gateway动态路由_spring-cloud-gateway简介
  2. python里元组和列表的共同点和不同点_Python列表和元组的相同点和不同点是什么...
  3. mysql 变量null_如何检查变量是否为NULL,然后使用MySQL存储过程进行设置?
  4. 虚拟机ubuntu搭建ftp服务器配置,虚拟机VMware15 Ubuntu18.04 搭建FTP服务器
  5. 计算机应用技术适合女孩学吗,2021计算机应用技术女生学难吗
  6. android 关于页面,解析android中的帮助、about、关于作者、HELP等提示页面
  7. 同一个Spring-AOP的坑,我一天踩了两次,深坑啊
  8. 【深度学习】实战Kaggle竞赛之线性模型解决波士顿房价预测问题(Pytorch)
  9. 【深度学习】利用深度可分离卷积减小计算量及提升网络性能
  10. 【Java Web开发指南】ORM一些基础问题整理