您好,登錄后才能下訂單哦!
這篇文章主要介紹python雙端隊列的原理是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。
1、概念
具有隊列和棧性質的數據結構。雙端隊列的要素可以從兩端彈出,限定插入和刪除操作在表的兩端進行。雙端隊列可以在隊列的任何一端進出。
2、原理
雙端隊列是一種具有隊列和棧性質的數據結構。雙端隊列的元素可以從兩端彈出,有限的插入和刪除操作可以在隊列的兩端進行。可以理解為雙端隊列可以從隊列的兩端添加和刪除元素,我們可以在創建或實例雙端隊列時指定隊列的長度或大小。當隊列滿了,我們可以反向刪除過期元素(從前刪除),然后在隊列的末尾添加新元素。
3、實例
# -- encoding: utf-8 -- # @time: 2021/4/18 11:49 # @Author: jsonLiu # @Email: xxxxxxxxx@qq.com # @file: deque # 雙端隊列 """ - Deque()創建一個空的雙端隊列。它不需要參數,且會返回一個空的雙端隊列。 - addFront(item)將一個元素添加到雙端隊列的前端。它接受一個元素作為參數,沒有返回值 - addRear (item)將一個元素添加到雙端隊列的后端。它接受一個元素作為參數,沒有返回值。 - popFront()從雙端隊列的前端移除一個元素。它不需要參數,且會返回一個元素,并修改雙端隊列的內容。 - popRear()從雙端隊列的后端移除一個元素。它不需要參數,且會返回一個元素,并修改雙端隊列的內容。 - isEmpty()檢查雙端隊列是否為空。它不需要參數,且會返回一個布爾值。 - size()返回雙端隊列中元素的數目。它不需要參數,且會返回一個整數。 """ class Deque1: """假設雙端隊列的后端是列表位置0處""" def __init__(self): self.__list = [] def isEmpty(self): # return self.__list == [] return not self.__list def size(self): return len(self.__list) def add_front(self, item): """添加到雙端隊列前端""" self.__list.append(item) def add_rear(self, item): """添加到雙端隊列后端""" self.__list.insert(0, item) def pop_front(self): """從雙端隊列的前端移除一個元素""" return self.__list.pop(len(self.__list) - 1) # return self.__list.pop() def pop_rear(self): """雙端隊列的后端移除一個元素""" return self.__list.pop(0) class Deque2: """假設雙端隊列的前端是列表位置0處""" def __init__(self): self.__list = [] def isEmpty(self): # return self.__list == [] return not self.__list def size(self): return len(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() return self.__list.pop(len(self.__list) - 1) if __name__ == '__main__': d = Deque2() # d = Deque1() print(d.isEmpty()) # True d.add_rear(4) d.add_rear(3) d.add_front(2) d.add_front(1) print(d.size()) # 4 d.add_rear(5) print(d.pop_rear()) print(d.pop_front())
以上是“python雙端隊列的原理是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。