iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Software Development

闖進Python異世界系列 第 20

[Day 20] 闖進Python異世界 - Stack with Linked List

  • 分享至 

  • xImage
  •  

/images/emoticon/emoticon13.gif

還記得堆疊的特色嗎?
先進到堆疊的資料會比較晚被取出!
我們稱這個性質叫「先進後出」。

之前練習過用列表實作,那我們今天就來用鏈結串列實作吧!


第一步就是實作 class Node,確定好節點應該包含什麼

接著就是實作 class Stack ,因為堆疊只有 pushBackpopBack 兩種行為,所以我們只需實作這兩個部分。詳細方法,我們在鏈結串列中以提及過了。

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

如果堆疊是鏈結串列的應用,那麼想必佇列也是其中一個應用,下一篇就來實作佇列吧!


上一篇
[Day 19] 闖進Python異世界 - Palindrome Linked List
下一篇
[Day 21] 闖進Python異世界 - Queue with Linked List
系列文
闖進Python異世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言