還記得堆疊的特色嗎?
先進到堆疊的資料會比較晚被取出!
我們稱這個性質叫「先進後出」。
之前練習過用列表實作,那我們今天就來用鏈結串列實作吧!
第一步就是實作 class Node
,確定好節點應該包含什麼
接著就是實作 class Stack
,因為堆疊只有 pushBack
與 popBack
兩種行為,所以我們只需實作這兩個部分。詳細方法,我們在鏈結串列中以提及過了。
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Stack:
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):
cur = self.head
prev = None
while (cur && cur.next):
prev = cur
cur = cur.next
prev.next = None
def top(self):
cur = self.head
while (cur && cur.next):
cur = cur.next
return cur.data
如果堆疊是鏈結串列的應用,那麼想必佇列也是其中一個應用,下一篇就來實作佇列吧!