91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
科尔| 盘锦市| 调兵山市| 延寿县| 新泰市| 出国| 新晃| 莱芜市| 葫芦岛市| 阿坝县| 汕头市| 芜湖县| 辛集市| 萨嘎县| 依安县| 精河县| 大庆市| 德兴市| 尼玛县| 历史| 偏关县| 溧水县| 饶平县| 大姚县| 湾仔区| 东乡族自治县| 济源市| 乐平市| 治县。| 双峰县| 镇赉县| 望江县| 乌拉特前旗| 登封市| 张家口市| 桃园县| 海口市| 依兰县| 隆化县| 黄冈市| 那曲县|