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) ;
}
}