還記得佇列的特色嗎?
先進到佇列的資料會優先被取出!
我們稱這個性質叫「先進先出」。
之前練習過用列表實作,那我們今天就來用鏈結串列實作吧!
第一步就是實作 class Node
,確定好節點應該包含什麼
接著就是實作 class Queue
,因為堆疊只有 pushBack
與 popFront
兩種行為,所以我們只需實作這兩個部分。詳細方法,我們在鏈結串列中以提及過了。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Queue:
def __init__(self):
self.head = None
def push(self, data):
cur = self.head
while (cur && cur.next):
cur = cur.next
cur.next = Node(data)
def pop(self):
if self.head != None:
if self.head.next == None:
self.head = None
else:
self.head = self.head.next
def front(self):
if self.head != None:
return self.head.data
鏈結串列的應用其實很廣的,有想過音樂播放器是怎麼儲存音樂清單的嗎?
就是鏈結串列啊!
因為我們會不斷的在中間插入我們想聽的歌曲!
很酷吧。