1. 雙端佇列是乙個限定插入和刪除操作的資料結構,具有佇列和棧的性質。利用python的list來實現2. 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。
3. 雙端佇列是指允許兩端都可以進行入隊和出隊操作的佇列,其元素的邏輯結構仍是線性結構。將佇列的兩端分別稱為前端和後端,兩端都可以入隊和出隊。
簡潔版:
class deque(object):
def __init__(self):
self.__list =
def add_front(self, item):
self.__list.insert(0, item)
def add_rear(self, item):
def pop_front(self):
return self.__list.pop(0)
def pop_rear(self):
return self.__list.pop()
def is_empty(self):
return self.__list ==
def size(self):
if self.__list:
return len(self.__list)
else:
return none
注釋版:class deque(object):
"""雙端佇列"""
def __init__(self):
"""初始化函式, 建立乙個佇列[python中的空鍊錶]"""
self.__list =
def add_front(self, item):
"""首部新增元素"""
self.__list.insert(0, item)
def add_rear(self, item):
"""尾部新增元素"""
def pop_front(self):
"""首部刪除元素"""
return self.__list.pop(0)
def pop_rear(self):
"""尾部刪除元素"""
return self.__list.pop()
def is_empty(self):
"""是否為空佇列"""
return self.__list ==
# 等價於 return not self.__list
def size(self):
"""佇列的長度"""
if self.__list:
return len(self.__list)
else:
return none
"""注意: 空列表不能使用切片, 如果列表不為空, 返回長度, 反之返回none"""
堆疊 佇列 雙端佇列實現
author hao rui chun class stack object def init self self.lis defpush self,item 入棧 defpop self 出棧 self.lis.pop def peek self 獲取棧頂元素 if self.lis return...
python實現雙端佇列
雙端佇列 一種具有佇列和棧的性質和資料結構 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作,在表的兩端進行,雙端佇列可以在佇列任意一端入隊和出隊 class deque 雙端佇列 def init self self.list def add front self,item 往佇列中新增乙個i...
雙端鏈式佇列實現
雙端佇列,使用雙向鍊錶實現 隊頭 隊尾都可以進行入隊 出隊操作的佇列 雙端佇列的每一端都是乙個棧,都符合棧先進後出的特性 雙端佇列是一種多功能的資料結構,可以使用它來提供佇列和棧兩種功能 include include queue.h typedef struct doublelinknodedou...