Queue

last update: 2025-06-09

Queue 是一種先進先出(FIFO, First In First Out)的資料結構,常用於模擬排隊或任務排程的場景。每個元素依照加入的順序被處理,最先加入的元素最先被移除。


一、Queue 的組成與限制

屬性
說明

head

指向佇列最前端的節點(即將被移除的元素)

tail

指向佇列最後端的節點(最後加入的元素)

size

當前佇列中的元素數量

max_size

佇列可容納的最大元素數量(可選)


二、基本節點結構(Python 範例)

class Node:
    def __init__(self, value):
        self.value = value
        self.next = None

三、Queue 操作

1. 加入元素(enqueue)

2. 移除元素(dequeue)

3. 查看最前端元素(peek)


四、輔助方法與屬性


五、Queue 特性

  • 先進先出(FIFO):最早加入的元素最早被移除

  • 空間彈性:可設置最大容量限制 max_size

  • 適用場景:排隊處理、任務排程、印表機任務佇列等


六、Queue vs Stack 比較

特性
Queue
Stack

操作順序

FIFO(先進先出)

LIFO(後進先出)

插入端

尾端

頂端

移除端

前端

頂端

適用場景

排隊、廣度優先搜尋

遞迴、深度優先搜尋


Queue 是基礎但實用的資料結構,常用於需要「順序處理」的場景。在實作時,可以用陣列、串列、或雙端佇列等結構實現,若需擴展可進一步學習 circular queue、priority queue 等變形。

Last updated