數據結構筆記:雙端隊列

原文地址

分類目錄——數據結構筆記

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

雙端隊列中每一端,都可以進行存入和取出,去其中一段,都像一個棧一樣。

存取也只限定在兩端,不能在中間

  • 雙端隊列的實現

    通過線性表實現

    class Dequeue(object):
        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)   # 時間複雜度O(n)
    
        def pop_rear(self):
            '''從隊列尾刪除'''
            return self.__list.pop()
    
        def is_empty(self):
            '''是否空'''
            return not self.__list
    
        def size(self):
            '''元素數量'''
            return len(self.__list)
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章