二叉树的层次遍历
2016-09-23 17:37
267 查看
层次遍历:
a.访问根节点
b.从左到右访问第2层的所有节点
c.从左到右访问第3层的所有节点,。。。。
package pac1;
public class Demo22 {
/**
* @param args
* 层次遍历二叉树
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BNode a=new BNode(2, null, null);
BNode b=new BNode(4, null, null);
BNode c=new BNode(8, null, null);
BNode d=new BNode(1, null, a);
BNode e=new BNode(5, b, null);
BNode f=new BNode(7, null, c);
BNode g=new BNode(3, d, e);
BNode h=new BNode(9, f, null);
BNode i=new BNode(6, g, h);
levelOrder(i);
}
public static void levelOrder(BNode root){
int maxSize=10;
BNode p;
BNode [] qu=new BNode[maxSize]; //定义循环队列
int front=0,rear=0;
rear++;
qu[rear]=root;
while(front!=rear){ //队列不空
front=(front+1)%maxSize;
p=qu[front]; //队头出队
System.out.print(p.getData()+" ");
if(p.getLeft()!=null){ //如果左孩子不为空,进队
rear=(rear+1)%maxSize;
qu[rear]=p.getLeft();
}
if(p.getRight()!=null){ //如果右孩子不为空,进队
rear=(rear+1)%maxSize;
qu[rear]=p.getRight();
}
}
}
}
6 3 9 1 5 7 2 4 8
a.访问根节点
b.从左到右访问第2层的所有节点
c.从左到右访问第3层的所有节点,。。。。
package pac1;
public class Demo22 {
/**
* @param args
* 层次遍历二叉树
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BNode a=new BNode(2, null, null);
BNode b=new BNode(4, null, null);
BNode c=new BNode(8, null, null);
BNode d=new BNode(1, null, a);
BNode e=new BNode(5, b, null);
BNode f=new BNode(7, null, c);
BNode g=new BNode(3, d, e);
BNode h=new BNode(9, f, null);
BNode i=new BNode(6, g, h);
levelOrder(i);
}
public static void levelOrder(BNode root){
int maxSize=10;
BNode p;
BNode [] qu=new BNode[maxSize]; //定义循环队列
int front=0,rear=0;
rear++;
qu[rear]=root;
while(front!=rear){ //队列不空
front=(front+1)%maxSize;
p=qu[front]; //队头出队
System.out.print(p.getData()+" ");
if(p.getLeft()!=null){ //如果左孩子不为空,进队
rear=(rear+1)%maxSize;
qu[rear]=p.getLeft();
}
if(p.getRight()!=null){ //如果右孩子不为空,进队
rear=(rear+1)%maxSize;
qu[rear]=p.getRight();
}
}
}
}
6 3 9 1 5 7 2 4 8
相关文章推荐
- 二叉树生成,前序、中序、后序、层次遍历的小例子!
- 再谈二叉树的层次(宽度)遍历
- 根据前序和中序便遍历构造完整二叉树,并输出层次遍历
- LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy
- 层次遍历二叉树
- UVa122二叉树的层次遍历
- 微软面试100题系列---二叉树的层次遍历
- 二叉树的层次遍历
- 采用队列数据结构按层次遍历二叉树
- 二叉树建立以及先序、中序、后序、层次遍历(JAVA 实现)
- 二叉树层次遍历
- 二叉树层次遍历与递归释放
- 层次遍历二叉树的方法(递归,队列,指针)
- leetcode 二叉树层次遍历输出Binary Tree Level Order Traversal
- 层次遍历二叉树
- Leetcode 107. Binary Tree Level Order Traversal II 二叉树层次遍历2 解题报告
- [置顶] 二叉树层次遍历的应用--判断一颗二叉树是否为规则二叉树
- 二叉树 非递归 先序遍历 中序遍历 后序遍历 层次遍历
- 二叉树(前中后序递归非递归遍历,层次遍历,C++实现)
- 实现二叉树的先序遍历、中序遍历、后序遍历的递归非递归算法以及层次遍历算法