8/150. 數組模擬隊列的程式碼實作 — 用程式打造「排隊取號機」

更新 發佈閱讀 5 分鐘

🏗️ 第 1 週:資料結構基礎(Data Structures)

8/150 數組模擬隊列的程式碼實作

— 用程式打造「排隊取號機」


一、設計概念

建立一個 ArrayQueue 類別,模擬現實中的排隊行為:

  • is_full():判斷是否已滿
  • is_empty():判斷是否為空
  • add_queue(n):加入資料
  • get_queue():取出資料
  • show_queue():顯示所有資料
  • head_queue():查看隊頭資料


二、核心程式碼(Python)

class ArrayQueue:

    def __init__(self, max_size):

        self.max_size = max_size

        self.arr = [0] * max_size

        self.front = -1

        self.rear = -1

    def is_full(self):

        return self.rear == self.max_size - 1

    def is_empty(self):

        return self.front == self.rear

    def add_queue(self, n):

        if self.is_full():

            print("❌ 隊列已滿")

            return

        self.rear += 1

        self.arr[self.rear] = n

    def get_queue(self):

        if self.is_empty():

            raise Exception("❌ 隊列為空")

        self.front += 1

        return self.arr[self.front]

    def show_queue(self):

        if self.is_empty():

            print("📭 空隊列")

            return

        for i in range(self.front + 1, self.rear + 1):

            print(self.arr[i], end=" ")

        print()

    def head_queue(self):

        if self.is_empty():

            raise Exception("❌ 隊列為空")

        return self.arr[self.front + 1]


三、快速測試

queue = ArrayQueue(3)

queue.add_queue(10)

queue.add_queue(20)

queue.add_queue(30)

queue.show_queue()

print(queue.get_queue())

print(queue.get_queue())

print(queue.get_queue())

queue.add_queue(40)   # 會顯示已滿


四、重要觀察:假溢出

即使資料已全部取出,

rear 仍停在最後位置,

導致隊列無法再次使用

👉 這稱為:假溢出(False Overflow)


五、重點整理

  • 這是「一次性隊列」
  • 可幫助理解隊列基本運作
  • 真正實務需改成:環形隊列(Circular Queue)


✅ 一句話帶走

陣列隊列能幫助理解「排隊」邏輯,但實用系統必須使用環形隊列。

 

留言
avatar-img
강신호(姜信號 / Kang Signal)的沙龍
22會員
281內容數
「강신호(姜信號 / Kang Signal)」聚焦電信、網路與 AI 電子核心技術,解析 5G/6G、衛星通訊、訊號處理與產業趨勢,以工程視角輸出可落地的專業洞見,打造強信號的未來。
2026/01/26
解析以陣列模擬佇列的邏輯:利用 front 與 rear 雙指標分別管控數據的出列與入列。雖邏輯直觀,但此線性結構存在「假溢出」缺陷——當 rear 指標抵達末端後,即使前方有空位也無法回頭重用,導致空間浪費。理解此限制,是進階學習「環形佇列」的關鍵基礎。
2026/01/26
解析以陣列模擬佇列的邏輯:利用 front 與 rear 雙指標分別管控數據的出列與入列。雖邏輯直觀,但此線性結構存在「假溢出」缺陷——當 rear 指標抵達末端後,即使前方有空位也無法回頭重用,導致空間浪費。理解此限制,是進階學習「環形佇列」的關鍵基礎。
2026/01/26
佇列(Queue)遵循「先進先出」(FIFO)原則,是維護系統公平與秩序的核心結構。它透過「緩衝」機制調節處理速度差異,廣泛應用於印表機、CPU 排程及網路封包傳輸。在 AI 領域,佇列更是廣度優先搜尋(BFS)演算法與高併發訊息流處理的關鍵基石。
2026/01/26
佇列(Queue)遵循「先進先出」(FIFO)原則,是維護系統公平與秩序的核心結構。它透過「緩衝」機制調節處理速度差異,廣泛應用於印表機、CPU 排程及網路封包傳輸。在 AI 領域,佇列更是廣度優先搜尋(BFS)演算法與高併發訊息流處理的關鍵基石。
2026/01/26
Python 實作稀疏數組的壓縮與還原。核心採「兩次掃描法」,統計有效數據建立含檔頭的三欄結構,再依座標回填。此邏輯不僅解決存檔問題,更是 AI 領域利用 NumPy 處理大規模特徵矩陣,實現記憶體優化與運算加速的關鍵基石。
2026/01/26
Python 實作稀疏數組的壓縮與還原。核心採「兩次掃描法」,統計有效數據建立含檔頭的三欄結構,再依座標回填。此邏輯不僅解決存檔問題,更是 AI 領域利用 NumPy 處理大規模特徵矩陣,實現記憶體優化與運算加速的關鍵基石。
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
座位不多,但是店內非常整潔的一家海產、熱炒店。 之前夏天去吃飯的時候,有免費送西瓜;這陣子經過的時候,送西瓜的部分已經被擦掉了(畢竟都冬天了)。 站在店外面看的時候,還想說一般海產店不是都應該要有放海鮮的大水箱嗎?怎麼這家沒有?結果是放在店裡面。 白飯自己盛,吃到飽喔。 等上
Thumbnail
座位不多,但是店內非常整潔的一家海產、熱炒店。 之前夏天去吃飯的時候,有免費送西瓜;這陣子經過的時候,送西瓜的部分已經被擦掉了(畢竟都冬天了)。 站在店外面看的時候,還想說一般海產店不是都應該要有放海鮮的大水箱嗎?怎麼這家沒有?結果是放在店裡面。 白飯自己盛,吃到飽喔。 等上
Thumbnail
這是我在方格子平台的電子書,1.0 初版去年 11 月上架賣出 126 份暢銷第 1 名 (已下架)。2.0 再版 8/2 中午已正式上架,優惠 150 元,9/1 起恢復原價 200 元。改版最大不同是新增「高科技廠辦」,這是 2024 起追蹤根基的最重點。你買書,我公益捐款
Thumbnail
這是我在方格子平台的電子書,1.0 初版去年 11 月上架賣出 126 份暢銷第 1 名 (已下架)。2.0 再版 8/2 中午已正式上架,優惠 150 元,9/1 起恢復原價 200 元。改版最大不同是新增「高科技廠辦」,這是 2024 起追蹤根基的最重點。你買書,我公益捐款
Thumbnail
「心得體驗」參加「150桌遊展/第8屆」的心得 這天我第一次參加了一個桌遊展覽,這是一個讓人興奮又新奇的經驗。我帶來的是一款名為「思路之旅」的桌遊,從一開始進入展覽場地,我就感受到了一股濃厚的遊戲氛圍,四處都是人們在玩遊戲、交流和互動。展覽場地裡擺滿了各種各樣的桌遊,從傳統的棋盤遊戲到現代
Thumbnail
「心得體驗」參加「150桌遊展/第8屆」的心得 這天我第一次參加了一個桌遊展覽,這是一個讓人興奮又新奇的經驗。我帶來的是一款名為「思路之旅」的桌遊,從一開始進入展覽場地,我就感受到了一股濃厚的遊戲氛圍,四處都是人們在玩遊戲、交流和互動。展覽場地裡擺滿了各種各樣的桌遊,從傳統的棋盤遊戲到現代
Thumbnail
今天一整天基本上就是在家顧生病的小孩中渡過,還吃超多!吃到晚餐不敢吃了😂。
Thumbnail
今天一整天基本上就是在家顧生病的小孩中渡過,還吃超多!吃到晚餐不敢吃了😂。
Thumbnail
Fuel 是由Fuel Labs 開發的模塊化區塊鏈,最初 Fuel V1在2019年即作為以太坊L2誕生,但因應用場景有限,使用量一直不大。團隊後續開始著手開發Fuel V2,詳細可見此文介紹。 Fuel Labs 總融資金額達到8,150萬美元,投資方包含Blo
Thumbnail
Fuel 是由Fuel Labs 開發的模塊化區塊鏈,最初 Fuel V1在2019年即作為以太坊L2誕生,但因應用場景有限,使用量一直不大。團隊後續開始著手開發Fuel V2,詳細可見此文介紹。 Fuel Labs 總融資金額達到8,150萬美元,投資方包含Blo
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News