深度优先搜索算法及Java代码示例
本文介绍深度优先搜索(DFS)算法的定义及Java代码示例。DFS是一种用于遍历或搜索树或图的算法,其核心思想是尽可能深地搜索树的分支,直到不能再继续为止,然后返回上一层并继续搜索其他分支。DFS通常使用栈来实现,通过递归或迭代方式实现搜索过程。下面是一个简单的Java代码示例,展示了如何使用DFS来搜索图或树的节点:
public class DFS {
public void dfs(int[][] graph, int start) {
boolean[] visited = new boolean[graph.length];
dfsUtil(graph, start, visited);
}
private void dfsUtil(int[][] graph, int vertex, boolean[] visited) {
visited[vertex] = true;
System.out.print(vertex + " ");
for (int i = 0; i < graph.length; i++) {
if (graph[vertex][i] == 1 && !visited[i]) {
dfsUtil(graph, i, visited);
}
}
}
}
用户评论