久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java dfs算法怎么實現

182次閱讀
沒有評論

共計 853 個字符,預計需要花費 3 分鐘才能閱讀完成。

深度優先搜索(DFS)是一種用于遍歷或搜索樹或圖的算法,其基本思想是從起始節點開始,沿著一條路徑盡可能深地搜索,直到到達葉子節點或者無法繼續搜索為止,然后回溯到上一個節點,選擇另一條路徑繼續搜索。以下是一個簡單的 Java 實現 DFS 算法的例子:

import java.util.List;
import java.util.Stack;

public class DFS {public void dfs(List<List<Integer>> graph, int start) {boolean[] visited = new boolean[graph.size()];
        Stack<Integer> stack = new Stack<>();
        stack.push(start);

        while (!stack.isEmpty()) {int node = stack.pop();
            if (!visited[node]) {System.out.print(node + " ");
                visited[node] = true;
                for (int neighbor : graph.get(node)) {if (!visited[neighbor]) {stack.push(neighbor);
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        List<List<Integer>> graph = List.of(List.of(1, 2),
                List.of(0, 2, 3),
                List.of(0, 1, 4),
                List.of(1),
                List.of(2)
        );

        DFS dfs = new DFS();
        dfs.dfs(graph, 0);
    }
}

在上面的例子中,我們首先創建了一個 boolean 數組用于記錄節點是否被訪問過,然后創建一個棧用于存儲待訪問的節點。在 DFS 方法中,從起始節點開始,不斷地遍歷鄰居節點,并將未訪問過的鄰居節點加入棧中。當棧為空時,表示搜索完成。在 main 方法中,我們定義了一個簡單的圖,并調用 dfs 方法從節點 0 開始進行深度優先搜索。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-05-27發表,共計853字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 石渠县| 临泽县| 浏阳市| 曲沃县| 扬中市| 永顺县| 麦盖提县| 马鞍山市| 曲靖市| 澄迈县| 凤台县| 夏津县| 永春县| 社旗县| 东乌珠穆沁旗| 宿松县| 白银市| 辛集市| 九台市| 大宁县| 永安市| 儋州市| 平邑县| 永城市| 石嘴山市| 呼图壁县| 宣威市| 郸城县| 双柏县| 宁海县| 阳东县| 麻城市| 昌宁县| 开鲁县| 平乡县| 祁连县| 安乡县| 鄂温| 阿拉尔市| 漳浦县| 巢湖市|