BFS遍历图(仅为个人笔记,看不懂莫怪)
import javafx.util.Pair;
import org.junit.Test;
import java.util.*;
class Node {
public int val;
public List<Node> neighbors;
public Node() {
val = 0;
neighbors = new ArrayList<Node>();
}
public Node(int _val) {
val = _val;
neighbors = new ArrayList<Node>();
}
public Node(int _val, ArrayList<Node> _neighbors) {
val = _val;
neighbors = _neighbors;
}
}
public class Test1{
boolean flag[]=new boolean[10];
Queue<Node> queue = new LinkedList<Node>();
void BFS_Map(Node node)
{
if(node!=null)
queue.add(node);
else
return;
BFS();
}
void BFS()
{
while(queue.size()!=0)
{
Node node = queue.poll();
System.out.print(node.val+" ");
flag[node.val]=true;
for(int i=0;i<node.neighbors.size();i++)
{
Node temp = node.neighbors.get(i);
if(!flag[temp.val])
queue.add(node.neighbors.get(i));
}
}
}
@org.junit.Test
public <T,W> void Test() {
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
node1.neighbors.add(node2);
node1.neighbors.add(node3);
node2.neighbors.add(node1);
node3.neighbors.add(node1);
BFS_Map(node1);
}
}