- 隊列
兩端開口的數據結構
隊列有單向隊列(我姑且這麼稱之)和雙端隊列
- 單項隊列
只能一端只能存入,一端只能取出,先進先出
可以通過線性表(順序表或鏈表)實現
-
單向隊列的實現
class Queue(object): def __init__(self): '''初始化一個空隊列''' self.__list = [] def enqueue(self, item): '''入隊列''' self.__list.append(item) def dequeue(self): '''出隊列''' return self.__list.pop(0) # 時間複雜度O(n) # 在使用list的情況下,enqueue 與 dequeue的時間複雜度總是一個O(1),一個O(n) # 應該視操作入隊還是出隊操作多而決定應用list的方法 def is_empty(self): '''是否爲空''' return not self.__list def size(self): '''隊列中元素數量''' return len(self.__list)