當前位置 主頁 > 服務器問題 > Linux/apache問題 > 最大化 縮小

    python雙端隊列原理、實現與使用方法分析

    欄目:Linux/apache問題 時間:2019-11-30 19:22

    本文實例講述了python雙端隊列原理、實現與使用方法。分享給大家供大家參考,具體如下:

    雙端隊列

    雙端隊列(deque,全名double-ended queue),是一種具有隊列和棧的性質的數據結構。

    雙端隊列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端隊列可以在隊列任意一端入隊和出隊。

    操作

    Deque() 創建一個空的雙端隊列
    add_front(item) 從隊頭加入一個item元素
    add_rear(item) 從隊尾加入一個item元素
    remove_front() 從隊頭刪除一個item元素
    remove_rear() 從隊尾刪除一個item元素
    is_empty() 判斷雙端隊列是否為空
    size() 返回隊列的大小

    實現

    class Deque(object):
      """雙端隊列"""
      def __init__(self):
        self.items = []
      def is_empty(self):
        """判斷隊列是否為空"""
        return self.items == []
      def add_front(self, item):
        """在隊頭添加元素"""
        self.items.insert(0,item)
      def add_rear(self, item):
        """在隊尾添加元素"""
        self.items.append(item)
      def remove_front(self):
        """從隊頭刪除元素"""
        return self.items.pop(0)
      def remove_rear(self):
        """從隊尾刪除元素"""
        return self.items.pop()
      def size(self):
        """返回隊列大小"""
        return len(self.items)
    if __name__ == "__main__":
      deque = Deque()
      deque.add_front(1)
      deque.add_front(2)
      deque.add_rear(3)
      deque.add_rear(4)
      print deque.size()
      print deque.remove_front()
      print deque.remove_front()
      print deque.remove_rear()
      print deque.remove_rear()
    
    

    更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

    希望本文所述對大家Python程序設計有所幫助。

777亚洲人成视频免费视频