0
点赞
收藏
分享

微信扫一扫

数据结构与算法分析(Java语言描述)(17)—— 二叉搜索树的深度优先与广度优先遍历


二叉搜索树的深度优先遍历

数据结构与算法分析(Java语言描述)(17)—— 二叉搜索树的深度优先与广度优先遍历_数据结构

先序遍历

数据结构与算法分析(Java语言描述)(17)—— 二叉搜索树的深度优先与广度优先遍历_java_02

// 先序遍历二叉搜索树
    public void preOrder() {
        preOrder(root);
    }

    // 对以node为根的二叉搜索树进行前序遍历, 递归算法
    private void preOrder(Node node) {
        if (node != null) {
            System.out.println(node.value);
            preOrder(node.left);
            preOrder(node.right);
        }
    }

中序遍历

数据结构与算法分析(Java语言描述)(17)—— 二叉搜索树的深度优先与广度优先遍历_搜索_03

// 中序遍历二叉搜索树
    public void inOrder(){
        inOrder(root);
    }

    // 对以 node 为根的二叉搜索树进行中序遍历,递归算法
    private void inOrder(Node node){
        if (node != null){
            inOrder(node.left);
            System.out.println(node.value);
            inOrder(node.right);
        }
    }

后序遍历

数据结构与算法分析(Java语言描述)(17)—— 二叉搜索树的深度优先与广度优先遍历_java_04

// 后序遍历二叉搜索树
    public void postOrder(){
        postOrder(root);
    }

    // 对以 node 为根的二叉搜索树进行后序遍历,递归算法
    private void postOrder(Node node){
        if (node != null){
            postOrder(node.left);
            postOrder(node.right);
            System.out.println(node.value);
        }
    }

二叉树的广度优先遍历

数据结构与算法分析(Java语言描述)(17)—— 二叉搜索树的深度优先与广度优先遍历_语言_05

层序遍历

// 二叉搜索树的层序遍历(广度优先)
    public void levelOrder(){
        // 使用LinkedList来作为我们的队列
        LinkedList<Node> q = new LinkedList<>();
        q.add(root);

        // 先将 根节点 放入 q 中,再移除 此节点,将此节点的 左子节点 和 右子节点 放入 q 中
        // 直到 q 为空
        while (!q.isEmpty()) {
            Node node = q.remove();
            System.out.println(node.key);

            if (node.left != null) q.add(node.left);
            if (node.right != null) q.add(node.right);
        }
    }

计算二叉树的深度

// 计算二叉树的深度
    public int getDepth() {
        return getDepth(root);
    }

    private int getDepth(Node node) {
        if (node == null)
            return 0;
        int left = getDepth(node.left);
        int right = getDepth(node.right);
        return left > right ? left + 1 : right + 1;
    }


举报

相关推荐

0 条评论