iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
Software Development

闖進Python異世界系列 第 21

[Day 21] 闖進Python異世界 - Queue with Linked List

  • 分享至 

  • xImage
  •  

還記得佇列的特色嗎?
先進到佇列的資料會優先被取出!
我們稱這個性質叫「先進先出」。

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


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

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

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

鏈結串列的應用其實很廣的,有想過音樂播放器是怎麼儲存音樂清單的嗎?
就是鏈結串列啊!
因為我們會不斷的在中間插入我們想聽的歌曲!
很酷吧。


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

尚未有邦友留言

立即登入留言