zoukankan      html  css  js  c++  java
  • 栈和队列(python实现)

     

     

    lass 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[- 1]  # python列表性质
    
        def size(self):
            """返回栈的大小"""
            return len(self.items)

    队列

    # 队列 (queue): 只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
    先进先出
    """
    
    class Queue(object):
        """队列"""
        def __init__(self):
            self.__list = []
    
        def is_empty(self):
            """判断队列是否为空"""
            return self.__list == []
        """实现出队 入队的方式有两种,根据使用队列的哪种操作频繁去决定怎么实现O(1) O(n)"""
        def enqueue(self, item):
            """进队列"""
            return self.__list.insert(0, item)
    
        def dequeue(self):
            """出队列"""
            return self.__list.pop()
    
        def size(self):
            """返回队列大小"""
            return len(self.__list)

    双端队列

    class Dueue():
    
        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):
            return self.__list.pop()
    
        def is_empty(self):
            """判断队列是否为空"""
            return self.__list == []
    
        def size(self):
            """返回队列大小"""
            return len(self.__list)
  • 相关阅读:
    Java 堆和栈 垃圾回收 2015/9/16
    多态 Java 2015/9/16
    学校项目过程中知识点 Java 2015/9/15 晚
    Python print输出不换行
    Windows 加载EXT分区
    RouterOS 安全模式
    RouterOS Openswan l2tp ipsec
    RouterOS 自动邮件备份脚本
    python chnroutes ROS版
    Kinect 2.0&Speech 11 中文语音控制
  • 原文地址:https://www.cnblogs.com/sometingintheway/p/11955957.html
Copyright © 2011-2022 走看看