python實現簡單雙端佇列

2021-09-26 14:27:45 字數 1143 閱讀 9831

# -*- coding: utf-8 -*-

class deque(object):

"""雙端佇列"""

def __init__(self):

self.__queue =

def add(self, item):

"""往佇列頭部新增乙個item元素"""

def left_add(self, item):

"""往佇列尾部新增乙個item元素"""

self.__queue.insert(0, item)

@property

def pop(self):

"""從佇列頭部刪除乙個元素"""

return self.__queue.pop(0)

@property

def left_pop(self):

"""從佇列尾部刪除乙個元素"""

return self.__queue.pop()

@property

def is_empty(self):

"""判斷佇列是否為空"""

return not self.__queue

@property

def size(self):

"""返回佇列元素個數"""

return len(self.__queue)

if __name__ == '__main__':

q = deque()

print(q.is_empty)

q.add(3)

q.add(4)

q.add(5)

q.left_add(0)

q.left_add(1)

q.left_add(2)

print(q.is_empty)

print(q.size)

print("*"*10)

print(q.left_pop)

print(q.left_pop)

print(q.left_pop)

print(q.pop)

print(q.pop)

print(q.pop)

print("*" * 10)

print(q.size)

print(q.is_empty)

python實現雙端佇列

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

python實現佇列和雙端佇列

對於佇列而言,總有一端的複雜度是o n 一端是o 1 我們可以根據是取的多還是入的多調整方法。class queue object 佇列 def init self self.items def is empty self return self.items def enqueue self,ite...

python雙端佇列的實現

雙端佇列 deque,全名double ended queue 是一種具有佇列和棧的性質的資料結構。雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。雙端佇列,兩端即可以新增也可以刪除 def init self self.list def a...