柚子da

导航

 

实现方案:

1.初始化一个空的Queue。

2.从根节点开始 ,把根节点插入Queue。

3.循环如果Queue非空的话:

        1)  从Queue中取出节点,并将这个节点的所有孩子插入Queue。

        2)  打印出取出的节点。

 

代码:

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

public class T_BFS {
	
	public void levelOrderQueue(Node root){
		Queue<Node> q = new LinkedList<Node>();
		if (root == null){
			return;
		}
		q.add(root);
		while(!q.isEmpty()){
			Node n = q.poll();
			System.out.print(" " + n.data);
			if(n.left != null){
				q.add(n.left);
			}
			if(n.right != null){
			    q.add(n.right);
			}
		}
	}
	
	public static void main(String [] args){
		Node root = new Node(5);
		root.left = new Node(1);
		root.right = new Node(10);
		root.left.left = new Node(20); 
		root.left.right = new Node(25); 
		root.right.left = new Node(30); 
		root.right.right = new Node(35); 
		
		T_BFS bfs = new T_BFS();
		System.out.println("Breadth First Search : ");
		bfs.levelOrderQueue(root);
	}	
}

class Node{
	int data;
	Node left;
	Node right;
	public Node(int data){
		this.data = data;
	}
}

  

posted on 2017-09-05 18:48  柚子da  阅读(355)  评论(0)    收藏  举报