亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java怎么實現簡單的二叉樹

小億
87
2023-11-22 02:32:10
欄目: 編程語言

要在Java中實現簡單的二叉樹,你可以創建一個名為BinaryTree的類,其中包含一個名為Node的內部類,表示二叉樹的節點。

public class BinaryTree {
    private Node root;
    
    private class Node {
        private int data;
        private Node left;
        private Node right;
        
        public Node(int data) {
            this.data = data;
            this.left = null;
            this.right = null;
        }
    }
    
    public BinaryTree() {
        root = null;
    }
    
    public void insert(int data) {
        root = insert(root, data);
    }
    
    private Node insert(Node node, int data) {
        if (node == null) {
            node = new Node(data);
        } else {
            if (data <= node.data) {
                node.left = insert(node.left, data);
            } else {
                node.right = insert(node.right, data);
            }
        }
        return node;
    }
    
    public boolean search(int data) {
        return search(root, data);
    }
    
    private boolean search(Node node, int data) {
        if (node == null) {
            return false;
        }
        if (data == node.data) {
            return true;
        } else if (data < node.data) {
            return search(node.left, data);
        } else {
            return search(node.right, data);
        }
    }
    
    public void inorderTraversal() {
        inorderTraversal(root);
    }
    
    private void inorderTraversal(Node node) {
        if (node != null) {
            inorderTraversal(node.left);
            System.out.print(node.data + " ");
            inorderTraversal(node.right);
        }
    }
    
    public static void main(String[] args) {
        BinaryTree tree = new BinaryTree();
        tree.insert(10);
        tree.insert(5);
        tree.insert(15);
        tree.insert(3);
        tree.insert(7);
        
        System.out.println("Inorder traversal:");
        tree.inorderTraversal();
        
        int searchData = 7;
        System.out.println("\nIs " + searchData + " present in the tree? " + tree.search(searchData));
    }
}

在上面的代碼中,我們使用一個內部類Node來表示二叉樹的節點。它有一個整數類型的data成員變量,以及left和right節點的引用。

BinaryTree類有一個根節點root,默認為null。它包含以下方法:

  • insert(int data):將給定的數據插入到二叉樹中。
  • search(int data):在二叉樹中搜索給定的數據,如果找到則返回true,否則返回false。
  • inorderTraversal():以中序遍歷的方式打印二叉樹中的節點數據。

在main方法中,我們創建一個二叉樹并插入一些數據。然后,我們使用inorderTraversal方法打印二叉樹的節點數據,并使用search方法搜索給定的數據。

0
前郭尔| 鹿泉市| 昌黎县| 方城县| 玉山县| 浦城县| 中超| 平武县| 赣榆县| 彰化市| 宝丰县| 元朗区| 固阳县| 蒲江县| 乌苏市| 平阴县| 玉溪市| 曲麻莱县| 来安县| 永修县| 临湘市| 比如县| 彭州市| 洛南县| 布尔津县| 阿巴嘎旗| 阜康市| 交城县| 长武县| 武宣县| 海门市| 原平市| 梁平县| 沈丘县| 深州市| 堆龙德庆县| 吕梁市| 蒙城县| 仁寿县| 会宁县| 偃师市|