用python 實作Queue(dequeue , enqueue)

jack_DL
Information_Fun
Published in
3 min readJul 5, 2019

一、首先 佇列(Queue)是一種先進先出(First In First Out, FIFO)的有序串列(Ordered List),與堆疊(Stack)後進先出(Last In First Out, LIFO)不同的是佇列(Queue)的新增和刪除元素是發生在不同端

二、定義class Queue 裡的enqueue(進點),儲存在所謂的list裡面

三、定義class Queue 裡的dequeue(掉點),從清除list最後一點 == del list[-1]

四、定義class Queue 裡的init and 判斷是不是為空

class Queue:
def __init__(self):
self.items = []

def isEmpty(self):
if self.items ==[]:
return print('this is empty')
else :
return print('裡面還有值')
def enqueue(self, item): # 從list index = 0 處開始加入item
self.items.insert(0,item)

def dequeue(self): # 從list index = -1 處del item
return self.items.pop()

def size(self):
return len(self.items)

定義完class ,開始實作

qu = Queue()qu.enqueue(‘蔡英文’)qu.enqueue(‘柯P’)qu.enqueue(‘賴清德’)qu.size
Out[6]: <bound method Queue.size of <__main__.Queue object at 0x00000201A0A28128>>
qu.size()
Out[7]: 3
qu.dequeue()
Out[8]: ‘蔡英文’

首先,宣告Queue這個class,再來我們給item至qu 裡面,使用enqueue這個function add item,因為emqueue使用insert到index=0的位置,所以舊得item會後移,之後遇到dequeue會從後面delete,這樣就會符合先進先出(First In First Out, FIFO)的概念。

--

--