首页 > 编程语言 >[Python手撕]用队列实现栈/用栈实现队列

[Python手撕]用队列实现栈/用栈实现队列

时间:2024-09-04 10:28:22浏览次数:12  
标签:obj 队列 self length pop Python 用栈 def append

用队列实现栈

class MyStack:

    def __init__(self):
        self.length = 0
        self.queue1 = []
        self.queue2 = []


    def push(self, x: int) -> None:
        self.queue1.append(x)
        self.length += 1


    def pop(self) -> int:
        for _ in range(self.length-1):
            self.queue2.append(self.queue1.pop(0))
        t = self.queue1.pop(0)
        for _ in range(self.length-1):
            self.queue1.append(self.queue2.pop(0))
        self.length -= 1
        return t


    def top(self) -> int:
        for _ in range(self.length-1):
            self.queue2.append(self.queue1.pop(0))
        t = self.queue1.pop(0)
        for _ in range(self.length-1):
            self.queue1.append(self.queue2.pop(0))
        self.queue1.append(t)
        return t


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



# Your MyStack object will be instantiated and called as such:
# obj = MyStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.empty()

用栈实现队列

class MyQueue:

    def __init__(self):
        self.stack1 = []
        self.stack2 = []
        self.length = 0


    def push(self, x: int) -> None:
        self.stack1.append(x)
        self.length += 1


    def pop(self) -> int:
        for _ in range(self.length-1):
            self.stack2.append(self.stack1.pop(-1))
        t = self.stack1.pop(-1)
        for _ in range(self.length-1):
            self.stack1.append(self.stack2.pop(-1))
        self.length -= 1
        return t


    def peek(self) -> int:
        for _ in range(self.length-1):
            self.stack2.append(self.stack1.pop(-1))
        t = self.stack1.pop(-1)
        self.stack1.append(t)
        for _ in range(self.length-1):
            self.stack1.append(self.stack2.pop(-1))
        
        return t


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



# Your MyQueue object will be instantiated and called as such:
# obj = MyQueue()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.peek()
# param_4 = obj.empty()

标签:obj,队列,self,length,pop,Python,用栈,def,append
From: https://www.cnblogs.com/DCFV/p/18395946

相关文章

  • Python 默认列表(Default List):一种灵活的数据结构
    Python中的默认列表(DefaultList)是一种特殊的数据结构,它允许我们创建一个包含特定元素类型的列表,并在需要时动态地添加或删除元素。这种灵活性使得默认列表成为了处理一些不确定或变化的数据的有力工具。创建列表时指定元素类型在Python中,我们可以在创建列表时指定元素类型,如果......
  • python 批量提取文件名
    """v1:读取文件夹文件名,并保存为excel"""importosfromopenpyxlimportWorkbook#指定文件夹路径folder_path="E:\\d_个人\\a_个人\\01-经历"#获取指定文件夹下的所有文件名file_names=os.listdir(folder_path)#创建一个新的Excel工作簿workbook=Wor......
  • Python 之线程池
    Python之线程池系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。在这种情形下,使用线程池可以很好地提升性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。线程池在系统启动时即创建大量空闲的线程,程序只要将一个函数提交给线程池,线......
  • SSA(麻雀优化算法)+CNN+LSTM时间序列预测算法(python代码)
    1.SSA(SparrowSearchAlgorithm)简介:SSA是一种新兴的群体智能优化算法,模拟麻雀觅食行为。麻雀群体中的“发现者”负责寻找食物,并将信息传递给“追随者”,后者根据这一信息进行觅食。SSA通过这种合作机制寻找最优解。SSA在优化问题中可以视为一种元启发式算法,擅长在复杂搜索......
  • Python2数据传输测试脚本
    服务端#-*-coding:utf-8-*-importsocketimportthreadingHOST='0.0.0.0'PORT=12345defhandle_client(conn,addr):print"连接地址:",addrtry:whileTrue:data=conn.recv(1024000)......
  • CSP-J初赛知识点总复习( 3.3链式栈 3.4链式队列3.5链表习题)
    链式栈:(代码)#include<bits/stdc++.h>usingnamespacestd;//栈元素structStack{intdata;structStack*next;};Stack*top=NULL;//栈顶指针//入栈voidpush(intx){Stack*p=newStack;p->data=x;p->next=top;top=p;//修......
  • A-计算机毕业设计定制:76114客户关系管理系统(免费领源码)可做计算机毕业设计JAVA、PHP
    摘 要 随着信息化时代的发展,各行各业都逐渐意识到客户关系管理的重要性。传统的客户管理方式已经无法满足日益增长的客户群体及复杂的业务需求。因此,客户关系管理系统应运而生,以提高服务质量、降低成本、促进营销活动,并实现客户与企业之间更紧密的互动。本文主要探讨如何......
  • python 常见OS基本操作
    python常见OS基本操作Python的os模块提供了与操作系统交互的各种功能。下面按照一些常见的使用场景,按顺序介绍os模块的一些基本操作及其示例代码。1.获取和改变当前工作目录首先,通常我们会获取当前的工作目录,然后可能会改变工作目录。python深色版本importos#获取......
  • 员工工作服穿戴AI识别 Python
    员工工作服穿戴AI识别系统是基于人工智能技术,员工工作服穿戴AI识别通过在工厂和电力场景内部安装摄像头,对员工的工作服穿戴情况进行实时监控。当员工的工作服穿戴不符合规范时,员工工作服穿戴AI识别将自动发出警报,及时通知现场管理人员进行处理。员工工作服穿戴AI识别24小时不间断运......
  • Python多态
    #1多态#指同一种行为具有不同的表现形式#1.1多态的前提#继承#重写#classAnimal:#  defspeak(self):#    print('动物')#classDog(Animal):#  defspeak(self):#    print('狗')##classCat(Animal):#  defspeak(se......