二叉树的广度优先遍历

 1 public void breadthFirst(){//广度优先遍历
 2       TreeNode<E> p = root;
 3       GenericQueue<TreeNode<E>> queue = new GenericQueue<TreeNode<E>>();
 4       if(p != null){
 5           queue.enqueue(p);
 6           while(queue.getSize() != 0){
 7               p = queue.dequeue();
 8               System.out.print(p.element + " ");
 9               if(p.left != null)
10                   queue.enqueue(p.left);
11               if(p.right != null)
12                   queue.enqueue(p.right);
13           }
14       }
15   }

 1,用到一个队列(先进先出),根节点进入队列;

2,从队列中取出一个节点,输出节点,将此节点的左孩子节点(不为空)右孩子节点(不为空)进入队列;

3,重复执行第2步,直至队列为空。

posted @ 2013-11-15 11:00  soul390  阅读(233)  评论(0)    收藏  举报