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

java怎么實現簡單的二叉樹

172次閱讀
沒有評論

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

要在 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 方法搜索給定的數據。

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

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-12發表,共計1568字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 石楼县| 丹东市| 化德县| 重庆市| 新乡市| 腾冲县| 罗甸县| 曲水县| 平江县| 清丰县| 德钦县| 江阴市| 凤山县| 大竹县| 肇东市| 望城县| 富阳市| 平果县| 和顺县| 平顶山市| 南京市| 怀仁县| 库尔勒市| 驻马店市| 岳阳县| 阳新县| 类乌齐县| 普格县| 三明市| 太康县| 隆安县| 新疆| 竹山县| 新余市| 三亚市| 长兴县| 黄骅市| 临沭县| 襄垣县| 尼木县| 镇安县|