java怎么实现简单的二叉树

avatar
作者
筋斗云
阅读量: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方法搜索给定的数据。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!