java程序实现遍历算法
时间: 2023-12-10 21:15:49 浏览: 65
Java实现遍历一个数组
以下是Java程序实现遍历算法的示例代码:
1. 深度优先遍历(DFS)
public void dfs(int v, boolean[] visited, List<Integer> res, int[][] graph) {
visited[v] = true; // 标记节点为已访问
res.add(v); // 将节点加入遍历结果列表中
for (int i = 0; i < graph.length; i++) {
if (graph[v][i] == 1 && !visited[i]) { // 如果节点v与节点i之间有边且节点i未被访问
dfs(i, visited, res, graph); // 递归访问节点i
}
}
}
2. 广度优先遍历(BFS)
public void bfs(int v, boolean[] visited, List<Integer> res, int[][] graph) {
Queue<Integer> queue = new LinkedList<>(); // 创建队列用于存放待访问的节点
queue.offer(v); // 将起始节点加入队列
visited[v] = true; // 标记节点为已访问
while (!queue.isEmpty()) {
int node = queue.poll(); // 取出队首节点
res.add(node); // 将节点加入遍历结果列表中
for (int i = 0; i < graph.length; i++) {
if (graph[node][i] == 1 && !visited[i]) { // 如果节点node与节点i之间有边且节点i未被访问
queue.offer(i); // 将节点i加入队列
visited[i] = true; // 标记节点i为已访问
}
}
}
}
可以根据具体需求选择使用哪种遍历算法。
阅读全文