python数据结构与算法:队列与双端队列
双端队列:
#################队列####################
#coding:utf-8
"""
Deque() 创建一个空的双端队列
add_front(item) 从队头加入一个item元素
add_rear(item) 从队尾加入一个item元素
remove_front() 从队头删除一个item元素
remove_rear() 从队尾删除一个item元素
is_empty() 判断双端队列是否为空
size() 返回队列的大小
"""
class Queue(object):def __init__(self):self.__list = []def enqueue(self,item):self.__list.append(item)def dequeue(self):return self.__list.pop(0)def is_empty(self):return self.__list == []def size(self):return len(self.__list)if __name__ == "__main__":s = Queue()s.enqueue(1)s.enqueue(2)s.enqueue(3)s.enqueue(4)print(s.dequeue())print(s.dequeue())print(s.dequeue())print(s.dequeue())#################双端队列####################
class Deque(object):def __init__(self):self.__list = []def add_front(self, item):self.__list.insert(0,item)def add_rear(self,item):self.__list.append(item)def pop_front(self):return self.__list.pop(0)def pop_rear(self):print(" ")return self.__list.pop()def is_empty(self):return self.__list == []def size(self):return len(self.__list)
if __name__=="__main__":s =Deque()s.add_rear(1)s.add_rear(2)s.add_front(3)s.add_front(4)print(s.pop_rear())print(s.pop_rear())print(s.pop_rear())print(s.pop_rear())
python数据结构与算法:队列与双端队列相关推荐
- C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划
C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划 博文末尾支持二维码赞赏哦 _ github 章3 Stack栈 和 队列Queue= ...
- apriori算法c++实现_经典数据结构与算法(四):Python/C/C ++实现队列类型双端队列数据结构...
前期文章点击这里: 经典数据结构与算法(一):Python/C/C ++实现堆栈和队列 双端队列或双端队列是一种队列,其中可以从前面或后面执行元素的插入和删除.因此,它不遵循FIFO规则(先进先出). ...
- python数据结构与算法——栈、队列与双端队列
栈 栈:是一种容器,可存入数据元素.访问元素.删除元素,它的特点在于只能允许在容器的一端进行加入数据和输出数据的运算.没有了位置概念,保证任何时候可以访问.删除的元素都是此前最后存入的那个元素,确定了 ...
- 《恋上数据结构第1季》队列、双端队列、循环队列、循环双端队列
队列(Queue) 队列 Queue 队列的接口设计 队列源码 双端队列 Deque 双端队列接口设计 双端队列源码 循环队列 Circle Queue 循环队列实现 索引映射封装 循环队列 – %运 ...
- 数据结构之队列、双端队列
数据结构之队列.双端队列 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First in First Out)的线性表,简称FIFO.允许插入的 ...
- 算法学习-单调双端队列
文章目录 基础知识 算法模板 相关题目 239.滑动窗口最大值 1438.绝对差不超过限制的最长连续子数组 862.和至少为K的最短子数组 1425.带限制的子序列和 1499.满足不等式的最大值 2 ...
- java集合——队列和双端队列+优先级队列
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--队列和双端队列+优先级队列 的相关知识: 0.2) for full sou ...
- 单向队列、双端队列、栈的模型实现
引言 自己实现简单的队列.栈的逻辑结构. 队列都包含头和尾两个指针,简单的单向队列只能在一端(如:head端)入列,在另一端(如:tail 端)出列:双端队列可以在 head 进出,也可以在 tail ...
- java双端队列工作密取,同步器皿、并发容器、阻塞队列、双端队列与工作密取...
同步容器.并发容器.阻塞队列.双端队列与工作密取 在多线程的开发中经常会碰到数据的并发修改,并发存取,因此正确的使用不同的容器很关键,直接影响到数据的正确性.下面主要记录下三种重要的队列,以及一种非常 ...
- 数据结构与算法(Python版) | (6) 线性结构---队列、双端队列和列表
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业. 课程链接 1. 队列抽象数据类型及Python实现 什么是队列? 队列是一种有次序的数据集合,其特征是: 1 ...
最新文章
- php 将换行符替换,PHP替换回车换行符的三种方法
- mysql characterencoding 枚举值_mysql中enum类型理解,读完之后,大部分程序员收藏了......
- vim 插件_你不得不知道的适用于程序员的VIM插件
- myeclipse写简单bbs代码_RabbitMQ实现即时通讯居然如此简单!连后端代码都省得写了?...
- Zabbix3.4安装详细步骤
- 关于linux的进程和线程
- 【C++】 error C2572: 重定义默认参数
- 【Project3】【web.xml分析】
- 1、fiddler 下载、安装、配置
- CPLEX求解器入门案例
- Spark编程基础-(一)大数据技术概述
- 领导的本质就是:管理自己,影响别人
- unreal无损音乐百度云_嵐-IN THE SUMMER[FLAC]
- wordpress启动_如何通过7个简单步骤正确地启动WordPress博客(2020)
- Confluent上市与Cloudera私有化背后:从硅谷大数据公司的势力更替看数据分析的未来...
- 手机安装python jam有什么影响_Python入门用Bug修改和.jam文件需要注意的问题
- Cron 表达式详解及最新版本使用
- 其中的各种居中(水平居中,垂直居中,水平垂直居中)
- C++中如何使用通用字符名输入UNICODE字符
- 哪个更适合数据分析:R 还是 Python?
热门文章
- mysql数据库建仓范式_存mysql个数
- ubuntu18.04上安装TensorFlow2.0
- 树莓派 SyntaxError: invalid syntax(python错误)
- python创建对象的格式为_Python入门基础学习(面向对象)
- 依赖包 全局_composer 更新指定的依赖包
- access突然需要登录_早知道早好,微信小程序登录开发需要注意的事项
- 设置VSCode刷新资源管理器快捷键Ctrl+Shift+R
- 数字广告领域的若干专业词汇汇总
- Autocad 3D 完全学习教程
- 终极Git课程——在虚幻引擎中的应用 The Ultimate Git Course – with Applications in Unreal Engine