深度优先搜索和广度优先搜索是两种常见的图遍历算法,其中深度优先搜索是以深度为优先级的搜索,而广度优先搜索是以广度为优先级的搜索。下面将分别介绍它们的java代码实现过程。
深度优先搜索的java代码实现过程:
import java.util.*;
public void dfs(int v, boolean[] visited, List<List<Integer>> adjList) {
visited[v] = true;
System.out.print(v + " ");
List<Integer> neighbors = adjList.get(v);
for (int neighbor : neighbors) {
if (!visited[neighbor]) {
dfs(neighbor, visited, adjList);
}
}
}
其中v表示当前搜索的节点,visited表示用于标记是否已经被搜索过的数组,adjList是邻接表表示的图,用List<List<Integer>>表示。
广度优先搜索的java代码实现过程:
import java.util.*;
public void bfs(int start, boolean[] visited, List<List<Integer>> adjList) {
Queue<Integer> queue = new LinkedList<