deque,全名double-ended queue
佇列和棧的性質的資料結構
雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# created by xuehz on 2017/8/22
class
deque
(object):
"""雙端佇列"""
def__init__
(self):
self.items =
defis_empty
(self):
"""判斷佇列是否為空"""
return self.items ==
defadd_front
(self, item):
"""在隊頭新增元素"""
self.items.insert(0, item)
defadd_rear
(self, item):
"""在隊尾新增元素"""
defremove_front
(self):
"""從隊頭刪除元素"""
return self.items.pop(0)
defremove_rear
(self):
"""從隊尾刪除元素"""
return self.items.pop()
defsize
(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)
雙端佇列 deque,全名double ended queue 是一種具有佇列和棧的性質的資料結構。雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。返回佇列大小 return len self.items if name main deque...
資料結構 佇列 雙端佇列
佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為對頭。佇列不允許在中間部位進行操作。假設佇列是q 那麼a1就是對頭元素,而an是隊尾元素。這樣我們就可...
資料結構之雙端佇列
摘要 有時候乙個佇列可能需要能從兩端進出,這時候稱呼它為雙端佇列。具體思路很簡單,從 可以直接看出來。include stdafx.h include malloc.h include stdlib.h typedef struct dequeuerecord queue struct dequeu...