6. 撰寫廣度優先搜尋(Breadth-First Search, BFS)的程式通常會使用哪種資料結構來控
制搜尋的順序?
(A) Queue
(B) Stack
(C) Linked List
(D) Tree
答案:登入後查看
統計: A(41), B(6), C(5), D(17), E(0) #3246961
統計: A(41), B(6), C(5), D(17), E(0) #3246961
詳解 (共 2 筆)
#6427070
廣度優先搜尋(Breadth-First Search, BFS)是一種圖形遍歷或樹遍歷演算法,它會從起始節點開始,首先探索所有相鄰的節點,然後再探索這些相鄰節點的未訪問鄰居,依此類推,一層一層地向外擴展,直到所有可達的節點都被訪問。
為了實現這種層次性(level by level)的探索順序,BFS 演算法需要一個能夠以「先進先出」(First-In, First-Out, FIFO)方式儲存待訪問節點的資料結構。
- (A) Queue (佇列):佇列是先進先出的資料結構。當一個節點被訪問後,它的所有未訪問鄰居會被加入佇列的尾部。當要訪問下一個節點時,會從佇列的頭部取出節點。這種操作方式完美符合 BFS 的要求,確保先發現的節點先被訪問,從而實現廣度優先的探索。
- (B) Stack (堆疊):堆疊是後進先出(Last-In, First-Out, LIFO)的資料結構。如果使用堆疊,會導致深度優先搜尋(Depth-First Search, DFS)的行為,因為它會優先探索最近發現的節點。
- (C) Linked List (鏈結串列):鏈結串列是一種底層的資料結構,可以用來實現佇列或堆疊。但它本身並不是直接用來控制 BFS 搜尋順序的抽象資料型別。
- (D) Tree (樹):樹是 BFS 經常遍歷的目標資料結構之一,而不是用來控制遍歷順序的輔助資料結構。
因此,撰寫廣度優先搜尋(BFS)的程式通常會使用**佇列(Queue)**來控制搜尋的順序。
答案是 (A) Queue。
0
0