首页 > 其他分享 >225 队列实现stack

225 队列实现stack

时间:2023-04-17 11:57:07浏览次数:32  
标签:队列 top element self int put 225 stack def

 

 

 

 

 

解决方法简单粗暴,把队列前面的都取出来再加入队尾,让之前的队尾元素排到队头,这样就可以取出了:

 
import queue
class MyStack:

    def __init__(self):
        self.q = queue.Queue()
        self.top_element = 0

    def push(self, x: int) -> None:
        self.q.put(x)
        self.top_element = x

    def pop(self) -> int:
        sz = self.q.qsize()
        while sz > 2:
            self.q.put(self.q.get())
            sz -= 1
        self.top_element = self.q.get()
        self.q.put(self.top_element)
        return self.q.get()

    def top(self) -> int:
        return self.top_element

    def empty(self) -> bool:
        return self.q.qsize() == 0 

 

标签:队列,top,element,self,int,put,225,stack,def
From: https://www.cnblogs.com/zle1992/p/17325376.html

相关文章

  • matlab程序:基于Stackelberg模型的的智能楼宇群协同能量管理
    matlab程序:基于Stackelberg模型的的智能楼宇群协同能量管理摘要:提出了一种计及热电耦合需求响应的智能楼宇群的多主体协同能量管理策略。本文采取“热电混合运行”策略对联供系统进行调控,在该运行策略下,运营商可以结合不同时段的价格信息、负荷水平等因素灵活采取使自身收益最大......
  • MATLAB代码:基于stackelberg博弈的光伏用户群优化定价模型
    MATLAB代码:基于stackelberg博弈的光伏用户群优化定价模型摘要:在由多主体组成的光伏用户群中,用户间存在光伏电量共享。然而,在现有的分布式光伏上网政策下,用户间的共享水平很低。为了提高用户间光伏电量共享水平,根据用户的用电特性,构建了光伏用户群内的多买方—多卖方格局。结......
  • [云计算]Openstack 中 Swift 的环是如何存储的?
    在Swift中,环(Rings)是存储在磁盘上的二进制文件。这些环文件包含了Swift集群中所有存储设备的位置信息、权重和设备ID等元数据信息,以及哈希函数所需的参数信息。Swift中的每个节点都会定期从主控节点获取新的环数据,并将其存储在本地硬盘上作为环缓存。具体来说,Swift环大致包含以下......
  • [云计算]Openstack中对象环、容器环、账户环的作用
    Swift中的环(Rings)是一种用于对象存储的分布式哈希表结构。环包含了一个元素列表和一个哈希函数,用于将一个对象ID映射到环上的一个元素位置,以便找到该对象在Swift中的存储位置。Swift中包含了三种类型的环,分别是对象环、容器环和账户环,下面是它们各自的作用:对象环对象环是用于定......
  • 操作系统试验-进程间通信:借鉴生产者-消费者示例程序,利用FIFO或消息队列实现操作系统中
    实验名称操作系统试验-进程间通信实验目的借鉴生产者-消费者示例程序,利用FIFO或消息队列实现操作系统中的经典生产者-消费者问题,要求:1、仓库有26个存储单元;2、具有两个以上的生产者与消费者;3、生产者和消费者以随机的方式对仓库进行访问;4、在任意时刻,仓库里面只有一个进程;5、仓库满......
  • 消息队列常见的使用场景
    消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构。最全面的Java面试网站使用较多的消息队列有RocketMQ,RabbitMQ,Kafka,ZeroMQ,MetaMQ以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量......
  • 多重背包单调队列
    考虑思考完全背包问题的过程。完全背包其实是一个前缀最值的过程。而完全背包就是滑动窗口问题。可以把余数相同的归为一类,然后就可以直接单调队列了,队长\(s\)。#include<cstdio>#definemax(x,y)((x)>(y)?(x):(y))constintN=20001;intn,m,f[N],g[N],q[N];intmain(){......
  • 栈和队列经典题题解
    目录......
  • JUC之阻塞队列BlockingQueue的实现原理
    1.阻塞队列首先它是一个队列,是队列就会遵循先进先出(FIFO)的原则,又因为它是阻塞的,故与普通的队列有两点区别:A.当一个线程向队列里面添加数据时,如果队列是满的,那么将阻塞该线程,暂停添加数据。B.当一个线程从队列里面取出数据时,如果队列是空的,那么将阻塞该线程,暂停取出数据。2......
  • CNStack 云服务&云组件:打造丰富的云原生技术中台生态
    作者:刘裕惺CNStack相关阅读:CNStack多集群服务:基于OCM打造完善的集群管理能力CNStack虚拟化服务:实现虚拟机和容器资源的共池管理CNStack云边协同平台:实现原生边缘竟能如此简单01前言CNStack2.0(以下简称CNStack)作为阿里云云原生最佳实践的输出载体,其目标是提供一个开......