package inflearn;
import java.util.LinkedList;
import java.util.Queue;
/*
* ëì´ì°ì íì(ë 벨 íì)
* */
class Node {
int data;
Node lt;
Node rt;
public Node(int val) {
data = val;
lt = null;
rt = null;
}
}
public class BFSMain {
Node root;
public void BFS(Node root) {
Queue q = new LinkedList<>();
q.offer(root); // add()ì ê°ë¤
int level = 0;
while(!q.isEmpty()) {
int length = q.size();
System.out.print(level + " : ");
for (int i = 0; i < length; i++) {
Node current = q.poll();
System.out.print(current.data + " ");
if (current.lt != null) {
q.offer(current.lt);
}
if (current.rt != null) {
q.offer(current.rt);
}
}
level++;
System.out.println();
}
}
public static void main(String[] args) {
BFSMain bfsMain = new BFSMain();
bfsMain.root = new Node(1);
bfsMain.root.lt = new Node(2);
bfsMain.root.rt = new Node(3);
bfsMain.root.lt.lt = new Node(4);
bfsMain.root.lt.rt = new Node(5);
bfsMain.root.rt.lt = new Node(6);
bfsMain.root.rt.rt = new Node(7);
bfsMain.BFS(bfsMain.root);
}
}