阅读量:0
要在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方法搜索给定的数据。