久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java二叉樹怎么建立和遍歷

140次閱讀
沒有評論

共計 1732 個字符,預計需要花費 5 分鐘才能閱讀完成。

在 Java 中實現二叉樹的建立和遍歷可以通過定義一個節點類來表示二叉樹的節點,然后通過遞歸的方式來構建二叉樹和進行遍歷操作。下面是一個示例代碼:

// 定義二叉樹節點類
class TreeNode {int val;
    TreeNode left;
    TreeNode right;

    public TreeNode(int val) {this.val = val;
        this.left = null;
        this.right = null;
    }
}

// 二叉樹類
class BinaryTree {private TreeNode root;

    public BinaryTree() {root = null;
    }

    // 遞歸插入節點
    private TreeNode insertRecursive(TreeNode current, int val) {if (current == null) {return new TreeNode(val);
        }

        if (val < current.val) {current.left = insertRecursive(current.left, val);
        } else if (val > current.val) {current.right = insertRecursive(current.right, val);
        }

        return current;
    }

    // 插入節點
    public void insert(int val) {root = insertRecursive(root, val);
    }

    // 中序遍歷
    private void inorderTraversal(TreeNode node) {if (node != null) {inorderTraversal(node.left);
            System.out.print(node.val + " ");
            inorderTraversal(node.right);
        }
    }

    public void inorder() {inorderTraversal(root);
    }

    // 前序遍歷
    private void preorderTraversal(TreeNode node) {if (node != null) {System.out.print(node.val + " ");
            preorderTraversal(node.left);
            preorderTraversal(node.right);
        }
    }

    public void preorder() {preorderTraversal(root);
    }

    // 后序遍歷
    private void postorderTraversal(TreeNode node) {if (node != null) {postorderTraversal(node.left);
            postorderTraversal(node.right);
            System.out.print(node.val + " ");
        }
    }

    public void postorder() {postorderTraversal(root);
    }
}

public class Main {public static void main(String[] args) {BinaryTree tree = new BinaryTree();

        tree.insert(5);
        tree.insert(3);
        tree.insert(7);
        tree.insert(2);
        tree.insert(4);
        tree.insert(6);
        tree.insert(8);

        System.out.print("Inorder traversal: ");
        tree.inorder();
        System.out.println();

        System.out.print("Preorder traversal: ");
        tree.preorder();
        System.out.println();

        System.out.print("Postorder traversal: ");
        tree.postorder();
        System.out.println();}
}

以上示例代碼中,通過定義 TreeNode 類表示二叉樹的節點,定義 BinaryTree 類表示二叉樹,實現了插入節點和三種遍歷方式(中序、前序、后序)的方法。在 Main 類中進行了二叉樹的建立和遍歷操作。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-03-19發表,共計1732字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 金堂县| 潮州市| 伊宁县| 怀安县| 双辽市| 陆丰市| 宣化县| 霍州市| 秦安县| 英山县| 博乐市| 靖西县| 巴彦县| 扎鲁特旗| 长阳| 安徽省| 抚州市| 通河县| 施秉县| 介休市| 鹿邑县| 靖边县| 虞城县| 金坛市| 济宁市| 夹江县| 中宁县| 金塔县| 镇坪县| 兴义市| 湄潭县| 高唐县| 凤台县| 玛纳斯县| 连南| 胶南市| 山阳县| 乐陵市| 澎湖县| 宜章县| 曲周县|