2014-02-23 226 views
-1

所以我想在我有的節點列表上進行廣度優先搜索,但我不確定從哪裏開始?我非常瞭解廣度優先搜索是什麼,但我不知道如何實現它。我的代碼如下:Java廣度優先搜索?

Scanner scanner = new Scanner(System.in); 

回答

1

廣度優先搜索是在樹,圖或類似結構化的數據上執行的。實現廣度優先搜索的想法是探索一層節點,同時存儲對下一層中節點的引用,以便在完成當前層後返回給它們。

爲了做到這一點,您可以使用某種queue。您從第一個節點開始,將所有連接的節點放入隊列的後面。然後從隊列中選擇第一個節點並重復。

如果你是通過樹結構來做到這一點,那麼就是這樣,如果你正在搜索一個圖,你需要確保你不重新訪問節點,否則你最終可能會跑到界。希望這可以清楚這個話題。