阿摩線上測驗 登入

申論題資訊

試卷:107年 - 107 地方政府特種考試_四等_統計、資訊處理:資料處理概要#73340
科目:資料處理
年份:107年
排序:0

題組內容

一、佇列(queue)和堆疊(stack)是二種常用的資料結構。請回答下列問題。

申論題內容

⑵若要用廣度優先的方式(breadth-first search)走訪一樹狀結構(tree structure)的所有節點(node),請問佇列和堆疊,何者較適合?並說 明原因。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

使用佇列進行廣度優先搜索(BFS)的原因

  1. 廣度優先的特性

    • 廣度優先搜索需要按層次逐層走訪樹狀結構中的節點,先走訪一層的所有節點,再走訪下一層的節點。這種先進先出的訪問順序與佇列的特性完全匹配。
  2. 佇列的運作機制

    • 當走訪到一個節點時,將其相鄰的節點(子節點)依次放入佇列中。
    • 每次從佇列的前端取出一個節點進行走訪,然後將這個節點的子節點放入佇列的末端。
    • 這樣的過程保證了每次都是先處理佇列中最早加入的節點,確保節點按照層次順序被走訪,符合廣度優先的需求。

具體操作步驟

  1. 初始化

    • 將根節點(root node)放入佇列。
  2. 重複以下步驟直到佇列為空

    • 從佇列的前端取出一個節點,進行處理(例如打印節點值)。
    • 將這個節點的子節點依次放入佇列的末端。
佇列(queue)因其先進先出的特性,非常適合用來實現廣度優先搜索(BFS),而堆疊(stack)則更適合深度優先搜索(DFS)。