package test3; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; //实现的深度优先搜索(DFS)和广度优先搜索(BFS)算法的示例代码 public class Node { int id; //节点的唯一标识 boolean visited;//标记节点是否被访问过 List<Node> neighbors;//邻接点列表 public Node(int id){ this.id=id; this.visited=false; this.neighbors=new ArrayList<>(); } } class DFS{ public void dfs(Node node){ dfsHelper(node,new HashSet<>());//使用hashSet来记录已访问过的节点 } private void dfsHelper(Node node, Set<Node> visited){ //标记当前节点为已访问 node.visited=true; System.out.print(node.id+"");//处理当前节点的逻辑 //遍历当前节点的临节点 for(Node neighbor : node.neighbors) { if (!visited.contains(neighbor)) {//如果邻接点未被访问过,则递归访问 dfsHelper(neighbor, visited); } } } }
使用Java实现的深度优先搜索(DFS)
最新推荐文章于 2024-07-19 17:37:28 发布