图的遍历——BFS

查找

伪代码描述

《图的遍历——BFS》

实现

//图的遍历只需要从某个节点开始,这个节点仅需要它自身的value和它的邻接节点即可
import java.util.ArrayList;
//值,入度出度,点集边集
public class Node {
    public int value;
    public ArrayList<Node> nexts;
    public Node(int value) {
        nexts = new ArrayList<>();
    }
}

《图的遍历——BFS》
《图的遍历——BFS》
《图的遍历——BFS》

import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;

public class BFS {

    public static void bfs(Node node) {
        if (node == null) {
            return;
        }
        Queue<Node> queue = new LinkedList<Node>();//借助队列实现层次遍历
        HashSet<Node> map = new HashSet<Node>();//这个set起记录的作用,已经进入过队列的元素不会再进入
        queue.add(node);
        map.add(node);
        while (!queue.isEmpty()) {
            Node cur = queue.poll();
            System.out.println(cur.value);//拿到队头元素就打印
            for (Node next : cur.nexts) {
                if (!map.contains(next)) {
                    map.add(next);
                    queue.add(next);
                }
            }
        }
    }

}
    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/wdays83892469/article/details/79706779
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞