//层次遍历可以利用队列的性质完成,其主要思路如下:先将根节点放入队列中,然后每次都从队列中取出一个节点打印该节点的值,若这个节点有子节点,则将它的子节点放入队列尾,直到队列为空。
public void layerOrder() {
if(this.root==null) {
return;
}
Queue<BNode> queue=new LinkedList<>();
queue.add(this.root);
while(!queue.isEmpty()) {
BNode p=queue.poll();
System.out.print(p.data+" ");
if(p.left!=null) {
queue.add(p.left);
}
if(p.right!=null) {
queue.add(p.right);
}
}
}
public static void main(String[] args) {
BinaryTree test=new BinaryTree();
test.insert(3);
test.insert(2);
test.insert(1);
test.insert(4);
test.insert(5);
//test.inOrder();
//test.preOrder();
test.posOrder();
}
}
总结:上诉测试结构test.inOrder()打印输出1 2 3 4 5,test.preOrder()打印输出3 2 1 4 5, test.posOrder()打印输出1 2 5 4 3,test.layerOrder()打印输出3 2 1 4 5。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx