python實現佇列和雙端佇列

2021-09-24 01:52:26 字數 1692 閱讀 5712

對於佇列而言,總有一端的複雜度是o(n),一端是o(1),我們可以根據是取的多還是入的多調整方法。

class queue(object):

"""佇列"""

def __init__(self):

self.items =

def is_empty(self):

return self.items ==

def enqueue(self, item):

"""進佇列"""

self.items.insert(0,item)

def dequeue(self):

"""出佇列"""

return self.items.pop()

def size(self):

"""返回大小"""

return len(self.items)

if __name__ == "__main__":

q = queue()

q.enqueue("hello")

q.enqueue("world")

q.enqueue("itcast")

print q.size()

print q.dequeue()

print q.dequeue()

print q.dequeue()

雙端佇列(deque,全名double-ended queue),是一種具有佇列和棧的性質的資料結構。

雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。

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):

"""在隊尾新增元素"""

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()

python實現雙端佇列

雙端佇列 一種具有佇列和棧的性質和資料結構 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作,在表的兩端進行,雙端佇列可以在佇列任意一端入隊和出隊 class deque 雙端佇列 def init self self.list def add front self,item 往佇列中新增乙個i...

堆疊 佇列 雙端佇列實現

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...

實現雙端佇列

1.雙端佇列是乙個限定插入和刪除操作的資料結構,具有佇列和棧的性質。2.雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。3.雙端佇列是指允許兩端都可以進行入隊和出隊操作的佇列,其元素的邏輯結構仍是線性結構。將佇列的兩端分別稱為前端和後端,兩端都可以入隊和出隊。利用python的l...