코딩 테스트/7. Recursive, Tree, Graph

Q7 - 7 이진트리 순회(넓이우선탐색=레벨탐색=BFS)

길동이이이잉 2021. 11. 11. 19:07
728x90
반응형

아래 그림과 같은 이진트리를 레벨탐색 연습하시요.

 

레벨 탐색 순회 출력 : 1 2 3 4 5 6 7 

 

 

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

class Node{
	int data;
	Node lt, rt;
	public Node(int val) {
		data = val;
		lt = rt = null;
	}
}
public class Main {
	Node root;
	public void BFS(Node root) {
		Queue<Node> Q = new LinkedList<Node>();
		Q.offer(root);
		int L = 0;
		while(!Q.isEmpty()) {
			int len = Q.size();
			System.out.print(L+" : ");
			for(int i = 0; i < len; i++) {
				Node cur = Q.poll();
				System.out.print(cur.data+" ");
				if(cur.lt != null) {
					Q.offer(cur.lt);
				}
				if(cur.rt != null) {
					Q.offer(cur.rt);
				}
			}
			L++;
			System.out.println();
			
		}
	}
	
	public static void main(String[] args) {
		Main tree = new Main();
		tree.root = new Node(1);
		tree.root.lt = new Node(2);
		tree.root.rt = new Node(3);
		tree.root.lt.lt = new Node(4);
		tree.root.lt.rt = new Node(5);
		tree.root.rt.lt = new Node(6);
		tree.root.rt.rt = new Node(7);
		tree.BFS(tree.root);
	}
}
728x90
반응형