用 Python 来实现 队列和双端队列, 直接上代码理解即可. 队列蛮好理解的, 就是模拟咱生活中的排队. 先进, 先出嘛.

"""
队列 - ADT
队列 Queue 被构造为在队尾添加元素, 队首删除元素的有序集合, FIFO Queue(): 创建一个空队列
enqueue(itme): 入队, 将元素添加到队尾
dequeue(): 出队, 删除队首元素并返回
is_empty(): 判断队列是否为空
sise(): 返回队列中的元素个数 思路:
用 list 作为底层, 约定, 最左端为队尾, 最右端为队首 """ class Queue:
def __init__(self):
self.items = [] def enqueue(self, item):
"""添加元素到队尾"""
self.items.insert(0, item) def dequeue(self):
"""删除队首元素并返回"""
return self.items.pop() def is_empty(self):
return self.items == [] def size(self):
return len(self.items) if __name__ == '__main__':
q = Queue() for i in range(1,6):
q.enqueue(i)
print(q.size()) print(q.dequeue())
print(q.dequeue()) print(q.is_empty())

Dquue - 双端队列

"""
Deque 双端队列被构造为项的集合, 可以从队首或队尾任意一段增删元素. Deque(): 创建一个新的Deque add_front(item): 从队首添加元素
add_rear(item): 从队尾添加元素 remove_front(item): 从队首删除元素, 并返回
remove_rear(item): 从队尾删除元素, 并返回 is_empty(): 判断队列是否空
size(): 返回队列中的项数 思路:
用 list 作为底层架构, 并约定, 最左边为对尾, 最右侧为对首 """ class Deque:
def __init__(self):
self.items = [] def add_front(self, item):
"""队首添加元素"""
self.items.append(item) def remove_front(self):
"""队首删除元素"""
return self.items.pop() def add_rear(self, item):
"""队尾添加元素"""
self.items.insert(0, item) def remove_rear(self):
"""删除队尾元素"""
return self.items.pop(0) def is_empty(self):
return self.items == [] def size(self):
return len(self.items) if __name__ == '__main__':
dq = Deque() for i in range(3):
dq.add_front(i)
print(dq.size()) dq.add_rear(-1)
print(dq.remove_front()) print(dq.size())

队列-Python 实现的更多相关文章

  1. 第二百九十二节,RabbitMQ多设备消息队列-Python开发

    RabbitMQ多设备消息队列-Python开发 首先安装Python开发连接RabbitMQ的API,pika模块 pika模块为第三方模块  对于RabbitMQ来说,生产和消费不再针对内存里的一 ...

  2. Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures

    参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...

  3. python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)

    昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...

  4. 赛码网算法: 军训队列( python实现 )

    军训队列 题目描述某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的出 ...

  5. 用两个栈实现队列(python)

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. # -*- coding:utf-8 -*- class Solution: def __init__( ...

  6. 两个栈实现队列 Python实现

    # coding=utf-8 MAX_LENGTH = 100 SUCCESS = 1 FAIL = 0 ERROR = -1 class Queue(object): stack_fir = Non ...

  7. 链表实现队列(python)

    # -*- coding: utf-8 -*- from collections import deque class Node(object): def __init__(self, value=N ...

  8. 剑指offer-用两个栈实现队列-栈和队列-python

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.   # -*- coding:utf-8 -*- class Solution: def __init_ ...

  9. 优先级队列(python)

    # -*- coding:utf-8 -*- class Array(object): def __init__(self, size=32): self._size = size self._ite ...

  10. 剑指offer-栈的压入、弹出序列-栈和队列-python

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

随机推荐

  1. 在使用HOperatorSet.Draw忘记点击右键结束方法无法关闭窗体问题如何规避

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/17270056.html 可以在离开窗体或者关闭窗体事件中调用HOperatorSet.HIOC ...

  2. Deepin搭建git仓库服务gogs,debian也可用

    我尝试了gitlab.gitblit搭建均失败,deepin版本20.03 1. 步骤 访问gogs官网下载&安装页面 数据库(选择以下一项): MySQL:版本 >= 5.7. Pos ...

  3. C#中固定编译时不确定数量的变量(相关话题fixed固定多个数组)

    以交错数组byte[][]为例. fixed无法固定byte[][],只能在编译时固定确定数量的变量. 交错数组byte[][]中的每一个byte[]可以采用GCHandle进行固定. int n = ...

  4. WPF无边框的一个方案(保留默认窗口的拖动、阴影等效果)

    使用 WindowStyle="None" AllowsTransparency="True" 的方式达成无边框的效果有很多无法忽视的缺陷,比如失去了拖动效果. ...

  5. SM系列国密算法

    其中SM1.SM4.SM7.祖冲之密码(ZUC)是对称算法:SM2.SM9是非对称算法:SM3是哈希算法.目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现. 一.SM1 ...

  6. ABC391E题解

    大概评级:绿. 题目传送门. 显然动态规划,设 \(f_{i,k}\) 表示经过 \(i\) 次变换后能将 \(a_k\) 取反的最大值,显然答案为 \(f_{n,1}\),状态转移很简单,枚举 \( ...

  7. redux vs redux-toolkit 及源码实现

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 前言 为何讲这个内容?以为后续大家会使用 redux ...

  8. C#枚举帮助EnumHelper

    1 public class EnumHelper 2 { 3 #region 获取枚举 4 public static List<EnumValue> GetEnumList(Type ...

  9. pytorch报错 No module named 'nn'

    问题描述 pytorch 报错 No module named 'nn' 如果你 import torch 没问题,而 import torch.nn时出现问题,你可能命名使用了一个名字为 torch ...

  10. ffmpeg合并时音画不同步问题及音频软编码实现记录

    最近因为耳机3.5mm接口的一些干扰问题,舍弃了之前的接入方式,需要重新实现网络音频流的接入,在这个过程中遇到了一些问题,特来记录一下~ 一.网络音频流的接入 这个音频流来源各不相同,我这里是udp广 ...