二叉搜索树06-第六天

半世苍凉 提交于 2020-02-10 20:42:58

1.一些树的动画演示网站

http://520it.com/binarytrees/

http://btv.melezinek.cz/binary-search-tree.html

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

https://yangez.github.io/btree-js/

https://www.codelike.in/

 

2.二叉树的遍历

 

 

 2.1前序遍历

 

2.2前序非递归遍历

 

 

 

 

  

2.3中序遍历

 

 

 

 

 

 2.5后序遍历

 

 

 

 

 

 2.6层次遍历

 

 

 

 3.相关代码总结

3.1前序遍历

//    /**
//     * 前序遍历
//     */
    public void preorderTraversal() {
        preorderTraversal(root);
    }
    
    private void preorderTraversal(Node<E> node) {
        if (node == null) return;
        
        System.out.println(node.element);
        preorderTraversal(node.left);
        preorderTraversal(node.right);
    }
View Code

3.2中序遍历

//    /**
//     * 中序遍历
//     */
    public void inorderTraversal() {
        inorderTraversal(root);
    }
    
    private void inorderTraversal(Node<E> node) {
        if (node == null) return;
        
        inorderTraversal(node.left);
        System.out.println(node.element);
        inorderTraversal(node.right);
    }
View Code

3.3后序遍历

//    /**
//     * 后序遍历
//     */
    public void postorderTraversal() {
        postorderTraversal(root);
    }
    
    private void postorderTraversal(Node<E> node) {
        if (node == null) return;

        postorderTraversal(node.left);
        postorderTraversal(node.right);
        System.out.println(node.element);
    }
View Code

3.4层序遍历

//    /**
//     * 层序遍历
//     */
    public void levelOrderTraversal() {
        if (root == null) return;
        
        Queue<Node<E>> queue = new LinkedList<>();
        queue.offer(root);
        
        while (!queue.isEmpty()) {
            Node<E> node = queue.poll();
            System.out.println(node.element);
            
            if (node.left != null) {
                queue.offer(node.left);
            }
            
            if (node.right != null) {
                queue.offer(node.right);
            }
        }
    }
View Code

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!