数据结构之二叉查找树Java实现源码及注释(2)

//层次遍历可以利用队列的性质完成,其主要思路如下:先将根节点放入队列中,然后每次都从队列中取出一个节点打印该节点的值,若这个节点有子节点,则将它的子节点放入队列尾,直到队列为空。
    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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2d37ace4f8f885037dc3f1643aaf228c.html