資料結構 佇列 普通佇列和雙端佇列

2022-06-19 11:51:10 字數 1621 閱讀 4250

佇列

'''

queue() 建立乙個空佇列

enqueue(item) 新增元素

dequeue() 從佇列頭部刪除乙個元素

is_empty() 判斷乙個佇列是否為空

size() 返回佇列的大小

'''class

queue(object):

'''佇列

'''def

__init__

(self):

self.items =

defis_empty(self):

return self.items ==

defenqueue(self,item):

'''進佇列

'''self.items.insert(0,item)

defdequeue(self):

'''出佇列

'''return

self.items.pop()

defsize(self):

'''返回佇列的大小

'''return len(self.items)

雙端佇列

'''

deque() 建立乙個空的雙端佇列

add_front(item) 從隊頭加入乙個item元素

add_rear(item) 從隊尾加入乙個item元素

remove_front() 從隊頭刪除乙個item元素

remove_rear() 從隊尾刪除乙個item元素

is_empty() 判斷雙端佇列是否為空

size() 返回佇列的大小

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

2020-05-07

資料結構 佇列 雙端佇列

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端為隊尾,允許刪除的一端為對頭。佇列不允許在中間部位進行操作。假設佇列是q 那麼a1就是對頭元素,而an是隊尾元素。這樣我們就可...

資料結構 佇列和雙端佇列及應用

queue 佇列的特點就是fifo first in first out 即先進先出,其新增資料項時僅新增到佇列的末尾,刪除資料時也僅從佇列首端刪除,其在日常有許多應用,比如排隊 鍵盤打字緩衝以及印表機等等。佇列在演算法中的應用最為基礎的就是hotpotato演算法。以下便是我在佇列學習中的總結。首...

資料結構之雙端佇列

摘要 有時候乙個佇列可能需要能從兩端進出,這時候稱呼它為雙端佇列。具體思路很簡單,從 可以直接看出來。include stdafx.h include malloc.h include stdlib.h typedef struct dequeuerecord queue struct dequeu...