中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
大同县| 余江县| 浦城县| 闽清县| 富蕴县| 七台河市| 措勤县| 新源县| 遂昌县| 南京市| 习水县| 两当县| 郴州市| 桐乡市| 秦皇岛市| 蒙自县| 玉门市| 蒲江县| 比如县| 永胜县| 平顺县| 贵阳市| 肇州县| 财经| 汤原县| 蕉岭县| 门源| 红河县| 都昌县| 临桂县| 昌吉市| 临汾市| 石景山区| 荥经县| 开远市| 桃园县| 沭阳县| 鲜城| 方山县| 吉林市| 梅河口市|