• 栈,队列,双端队列 功能实现


    # 栈的功能实现

    Stack() 创建一个新的空栈

    
    

    push(item) 添加一个新的元素item到栈顶

    
    

    pop() 弹出栈顶元素

    
    

    peek() 返回栈顶元素

    
    

    is_empty() 判断栈是否为空

    
    

    size() 返回栈的元素个数



    class
    Stack: # 初始化空栈 def __init__(self): self.__list = [] def push(self, item): self.__list.append(item) def pop(self): if self.__list: return self.__list.pop() else: return None def peek(self): if self.__list: return self.__list[-1] else: return None def is_empty(self): return self.__list is None def size(self): return len(self.__list) if __name__ == '__main__': s = Stack() s.push(1) s.push(2) s.push(3) print(s.pop()) print(s.pop()) print(s.pop())
    # 队列的功能实现

    l Queue() 创建一个新的空队列

    
    

    l enqueue(item) 往队列中添加一个item元素

    
    

    l dequeue() 从队列头部删除一个元素

    
    

    l is_empty() 判断一个队列是否为空

    
    

    l size() 返回队列的大小


    # 定义队列
    class Queue: # 初始化 def __init__(self): self.__list = [] def enqueue(self,item): self.__list.append(item) def dequeue(self): return self.__list.pop(0) def is_empty(self): return self.__list is None def size(self): return len(self.__list) if __name__ == '__main__': q = Queue() q.enqueue(1) q.enqueue(2) q.enqueue(3) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())
    3.双端队列的功能实现
    
    Deque() 创建一个空的双端队列
    add_front(item) 从队头加入一个item元素
    add_rear(item) 从队尾加入一个item元素
    pop_front() 从队头取一个item元素
    pop_rear() 从队尾取一个item元素
    is_empty() 判断双端队列是否为空
    size() 返回队列的大小
    
    class Deque:
        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 is None
    
        def size(self):
            return len(self.__list)
    
    if __name__ == '__main__':
        d = Deque()
        d.add_front(1)
        d.add_front(2)
        d.add_rear(3)
        d.add_rear(4)
        print(d.size())
        print(d.pop_front())
        print(d.pop_front())
        print(d.pop_rear())
        print(d.pop_rear())
  • 相关阅读:
    PowerBuilder 前景(转贴)
    利用Lucene.net搭建站内搜索(3)创建索引
    执行力差的五大原因
    js关于document和window对象_javascript教程
    HTML内部链接
    深入理解 __doPostBack (转帖)
    利用Lucene.net搭建站内搜索(4)数据检索
    a href=#与 a href=javascript:void(0) 的区别 打开新窗口链接的几种办法
    Javascript进阶 (转帖)
    windows通过VNC连接linux (Fedora 12)
  • 原文地址:https://www.cnblogs.com/hude/p/12950369.html
Copyright © 2020-2023  润新知