python tutorial 14 | Queue

阿嬤
Jul 3, 2021

--

前言

今天要來跟你們講一個與stack有點相關的線性結構

圖示

原理

之前教的Stack是先進後出,但Queue的話就是先進先出,它實際上就是排隊的意思,enqueue就是輸入,dequeue輸出,那該如何用Queue來寫程式呢?那麼直接開始吧。

程式

class Queue():
'''Queue佇列'''
def __init__(self):
self.queue = []
def enqueue(self, data):
'''data插入佇列'''
self.queue.insert(0, data)
def dequeue(self):
'''讀取佇列'''
if len(self.queue):
return self.queue.pop()
return"佇列是空的"
def size(self):
'''回傳佇列長度'''
return len(self.queue)
fruits = ['Grape', 'Mango','Apple']
q = Queue()
for fruit in fruits:
q.enqueue(fruits)
print('將 %s 水果加入佇列' % fruit)
print("佇列長度",q.size())
print("讀取佇列:", q.dequeue())
print("讀取佇列:", q.dequeue())
print("讀取佇列:", q.dequeue())
print("讀取佇列:", q.dequeue())

這邊就是大概的程式,我們就先一步一步開始講。

前置設定

一開始我們先創造一個類別(class),來實現佇列的功能。

(以下講解以每一個函式來解釋)

__init__的部分其實就是的部分其實就是建立一個空的清單,這個空的清單是拿來準備進行queue的容器。

enqueue可以看上方的圖示就可知道說是指把fruit輸入進去。

dequeue也就跟enqueue是相反的,他是把某一個fruit給輸出出去

最後的size也就是檢查裡面有多少個fruit並回報。

執行

接下來就是執行的部分,首先我們先設三個水果,分別是葡萄、芒果、蘋果,接下來我們把他列一個清單,「並且按照順序,將grape水果加入佇列,將芒果加入⋯⋯」以此類推,執行結果如下:

接下來就是讀取資料的時候了,首先先呼叫清單並且縣市序列的長度為多少(q.size),那麼到最後開示進行計算開始讀取序列,這樣就算大功告成。

總結

根據上一次的stack,跟今天的queue,我們了幾=解到queue我們可以了解到是先進先出(first in first out),那麼還沒看過上一篇的Stack,也可以去看看喔,就這樣,掰掰。

--

--

阿嬤
阿嬤

Written by 阿嬤

歡迎來到湯阿嬤的帝國,如果對體制外的學生的學習精華就來這裡吧,想了解一個體制外學生的日常嗎?想了解繪畫相關的知識嗎?而且,如果有對繪畫有任何的挫折或者阻礙這裡最適合你們!或許你會覺得這裡只是一個憨批在這裡發一些沒有意義的文,但其實,我才是國中生喔!!所以有對這裡有興趣的話,就來這裡吧!

No responses yet