用java写一个二叉树数据结构
时间: 2023-05-22 21:02:36 浏览: 89
好的,这是一个很好的编程问题。在Java中实现二叉树可以使用节点类和树类。以下是一个基本的节点类的代码示例:
```
class Node {
int data;
Node left;
Node right;
public Node(int data) {
this.data = data;
left = null;
right = null;
}
}
```
然后是二叉树的代码示例,其中包括插入节点、删除节点和查找节点的方法:
```
class BinaryTree {
private Node root;
public BinaryTree() {
root = null;
}
public void insert(int data) {
root = insertNode(root, data);
}
private Node insertNode(Node root, int data) {
if (root == null) {
root = new Node(data);
return root;
}
if (data < root.data) {
root.left = insertNode(root.left, data);
} else if (data > root.data) {
root.right = insertNode(root.right, data);
}
return root;
}
public void delete(int data) {
root = deleteNode(root, data);
}
private Node deleteNode(Node root, int data) {
if (root == null) {
return root;
}
if (data < root.data) {
root.left = deleteNode(root.left, data);
} else if (data > root.data) {
root.right = deleteNode(root.right, data);
} else {
if (root.left == null) {
return root.right;
} else if (root.right == null) {
return root.left;
}
root.data = findMin(root.right);
root.right = deleteNode(root.right, root.data);
}
return root;
}
private int findMin(Node root) {
int min = root.data;
while (root.left != null) {
min = root.left.data;
root = root.left;
}
return min;
}
public boolean search(int data) {
return searchNode(root, data);
}
private boolean searchNode(Node root, int data) {
if (root == null) {
return false;
}
if (root.data == data) {
return true;
} else if (data < root.data) {
return searchNode(root.left, data);
} else {
return searchNode(root.right, data);
}
}
}
```
这是一个很基础的二叉树结构,可以根据需要进行扩展。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)