python雙端隊(duì)列原理、實(shí)現(xiàn)與使用方法分析
本文實(shí)例講述了python雙端隊(duì)列原理、實(shí)現(xiàn)與使用方法。分享給大家供大家參考,具體如下:
雙端隊(duì)列
雙端隊(duì)列(deque,全名double-ended queue),是一種具有隊(duì)列和棧的性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。
雙端隊(duì)列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進(jìn)行。雙端隊(duì)列可以在隊(duì)列任意一端入隊(duì)和出隊(duì)。
操作
Deque() 創(chuàng)建一個空的雙端隊(duì)列
add_front(item) 從隊(duì)頭加入一個item元素
add_rear(item) 從隊(duì)尾加入一個item元素
remove_front() 從隊(duì)頭刪除一個item元素
remove_rear() 從隊(duì)尾刪除一個item元素
is_empty() 判斷雙端隊(duì)列是否為空
size() 返回隊(duì)列的大小
實(shí)現(xiàn)
class Deque(object):
"""雙端隊(duì)列"""
def __init__(self):
self.items = []
def is_empty(self):
"""判斷隊(duì)列是否為空"""
return self.items == []
def add_front(self, item):
"""在隊(duì)頭添加元素"""
self.items.insert(0,item)
def add_rear(self, item):
"""在隊(duì)尾添加元素"""
self.items.append(item)
def remove_front(self):
"""從隊(duì)頭刪除元素"""
return self.items.pop(0)
def remove_rear(self):
"""從隊(duì)尾刪除元素"""
return self.items.pop()
def size(self):
"""返回隊(duì)列大小"""
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è)計(jì)有所幫助。
相關(guān)文章
探索Python進(jìn)度條魔法解密任務(wù)進(jìn)展新玩法
在日常編程和應(yīng)用開發(fā)中,展示進(jìn)度條是一種常見的技巧,不僅能夠提供用戶友好的體驗(yàn),還可以顯示任務(wù)執(zhí)行的進(jìn)度,Python作為一種多才多藝的編程語言,提供了多種方法來創(chuàng)建進(jìn)度條,本篇文章將深入探討這些方法,為您呈現(xiàn)各種實(shí)現(xiàn)進(jìn)度條的技術(shù)和技巧2024-01-01
基于TensorFlow的CNN實(shí)現(xiàn)Mnist手寫數(shù)字識別
這篇文章主要為大家詳細(xì)介紹了基于TensorFlow的CNN實(shí)現(xiàn)Mnist手寫數(shù)字識別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
python讀取txt文件并取其某一列數(shù)據(jù)的示例
今天小編就為大家分享一篇python讀取txt文件并取其某一列數(shù)據(jù)的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
將pandas.dataframe的數(shù)據(jù)寫入到文件中的方法
今天小編就為大家分享一篇將pandas.dataframe的數(shù)據(jù)寫入到文件中的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
pytest解讀fixture有效性及跨文件共享fixtures
這篇文章主要為大家介紹了pytest官方文檔fixture有效性及跨文件共享fixtures的解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

