python雙端隊列原理、實(shí)現(xiàn)與使用方法分析
本文實(shí)例講述了python雙端隊列原理、實(shí)現(xiàn)與使用方法。分享給大家供大家參考,具體如下:
雙端隊列
雙端隊列(deque,全名double-ended queue),是一種具有隊列和棧的性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。
雙端隊列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進(jìn)行。雙端隊列可以在隊列任意一端入隊和出隊。
操作
Deque() 創(chuàng)建一個空的雙端隊列
add_front(item) 從隊頭加入一個item元素
add_rear(item) 從隊尾加入一個item元素
remove_front() 從隊頭刪除一個item元素
remove_rear() 從隊尾刪除一個item元素
is_empty() 判斷雙端隊列是否為空
size() 返回隊列的大小
實(shí)現(xiàn)
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()
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python判斷設(shè)備是否聯(lián)網(wǎng)的方法
這篇文章主要為大家詳細(xì)介紹了python判斷設(shè)備是否聯(lián)網(wǎng)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06python scrapy框架中Request對象和Response對象的介紹
本文介紹了python基礎(chǔ)之scrapy框架中Request對象和Response對象的介紹,Request對象主要是用來請求數(shù)據(jù),爬取一頁的數(shù)據(jù)重新發(fā)送一個請求的時候調(diào)用,Response對象一般是由scrapy給你自動構(gòu)建的,因此開發(fā)者不需要關(guān)心如何創(chuàng)建Response對象,下面來一起來了解更多內(nèi)容吧2022-02-02Python hexstring-list-str之間的轉(zhuǎn)換方法
今天小編就為大家分享一篇Python hexstring-list-str之間的轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06