首页 > 其他分享 >实现队列 栈 双端队列

实现队列 栈 双端队列

时间:2024-05-09 19:34:38浏览次数:23  
标签:return 队列 双端 self 实现 empty items print def

以下都是用list来实现的

 

实现Stack

# Implement a Stack in Python
class Stack(object):
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items[len(self.items) - 1]

    def size(self):
        return len(self.items)


s = Stack()

print(s.is_empty())

s.push(4)
s.push('dog')
print(s.peek())

s.push(True)

print(s.size())
print(s.is_empty())

s.push(8.4)

print(s.pop())
print(s.pop())
print(s.size())
View Code

 

实现Queue

# Implement a Queue in Python
# 工程中一般不用Queue, 用双端队列Deque(Double-end Queue),因为Deque已经有Queue的功能

class Queue(object):
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0, item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)


q = Queue()

print(q.is_empty())

q.enqueue(4)
q.enqueue('dog')
q.enqueue(True)
print(q.size())
print(q.is_empty())

print(q.dequeue())

print(q.size())
View Code

 

实现双端对列

# Implement a deque in Python

class Deque(object):
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def add_front(self, item):
        self.items.append(item)

    def add_rear(self, item):
        self.items.insert(0, item)

    def remove_front(self):
        return self.items.pop()

    def remove_rear(self):
        return self.items.pop(0)

    def size(self):
        return len(self.items)


d = Deque()
print(d.is_empty())
d.add_rear(4)
d.add_rear('dog')
d.add_front('cat')
print(d.size())

print(d.is_empty())
d.add_rear(8.4)

print(d.remove_rear())
print(d.remove_front())
View Code

 

标签:return,队列,双端,self,实现,empty,items,print,def
From: https://www.cnblogs.com/tslam/p/18182954

相关文章

  • python中7种方法实现字符串的拼接
    1.直接通过(+)操作符拼接>>>'Hello'+''+'World'+'!''HelloWorld!'使用这种方式进行字符串连接的操作效率低下,因为python中使用+拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。2.通过str.join()方法拼接......
  • 用户管理实现
    ```java//剩下的就是用户的增删改了,大致思路都是一样的,但是都需要处理事务!//service层的举例:publicbooleanadd(Useruser){ booleanflag=false; Connectionconnection=null; try{ connection=BaseDao.getConnection(); connection.setAutoCommit(false......
  • 利用标准IO函数接口实现文件拷贝,把本地磁盘的文件A中的数据完整的拷贝到另一个文本B中
    利用标准IO函数接口实现文件拷贝,把本地磁盘的文件A中的数据完整的拷贝到另一个文本B中,如果文本B不存在则创建,要求文本A的名称和文本B的名称通过命令行传递,并进行验证是否正确。/******************************************************************** author :18312615416@1......
  • 国密算法SM3-java实现
    maven依赖<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version></dependency> SM3Utilsimportorg.bouncycastle.crypto.digests.SM3Dig......
  • 国密算法SM4-java实现
    Maven依赖<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version></dependency>SM4importjava.io.ByteArrayInputStream;importjava.......
  • Rust | 实现 API 限速操作 Example
    在这篇文章中,我们将讨论如何在Rust中实现API限速。当涉及到生产中的服务时,是为了确保不良行为者不会滥用API——这就是API限速的作用所在。我们将实现“滑动窗口”算法,通过动态周期来检查请求历史,并使用基本的内存hashmap来存储用户IP及其请求时间。我们还将研究如......
  • 自定义协议通信协议实现简易群聊
    基础需求简易版聊天室,仅为演示自定义协议,所以只添加了登录登出功能。代码部分相当粗糙,很多场景没有进行细致考虑,仅展现了一个思路。首先进行一下基本流程分析服务端启动以后,监听某个地址和端口,接收新的客户端连接。连接建立以后,客户端发送登录请求,服务端进行校验并返回请......
  • 国密算法SM2-java实现
    Maven依赖<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version></dependency>工具类importjava.math.BigInteger;publicclassUtil{......
  • C#实现截屏功能
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Drawing.Imaging;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{publicpar......
  • 从零手写实现 tomcat-05-servlet 处理支持
    创作缘由平时使用tomcat等web服务器不可谓不多,但是一直一知半解。于是想着自己实现一个简单版本,学习一下tomcat的精髓。系列教程从零手写实现apacheTomcat-01-入门介绍从零手写实现apacheTomcat-02-web.xml入门详细介绍从零手写实现tomcat-03-基本的socket实......