//广度优先搜索
private static void bfs(Node root) {
LinkedList<Node> queue = new LinkedList<Node>();
queue.add(root);
boolean[] flag = new boolean[N];
Arrays.fill(flag, false);
while (!queue.isEmpty()) {
Node node = queue.getFirst();
queue.removeFirst();
flag[node.index] = true;
System.out.println(node);//对节点做操作
for (Node child : node.neighbors) {
if (!flag[node.index]) {//可能存在环
queue.add(child);
}
}
}
}
static class Node {
int index;
List<Node> neighbors;
}
利用队列实现广度优先搜索
最新推荐文章于 2022-11-11 09:32:38 发布