Java 二叉树算法实现:插入、查找和遍历
以下是一个简单的二叉树算法的实现,包括插入、查找和遍历:
public class BinaryTree {
private Node root;
private class Node {
private int value;
private Node left;
private Node right;
public Node(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
public void insert(int value) {
root = insert(root, value);
}
private Node insert(Node node, int value) {
if (node == null) {
node = new Node(value);
} else {
if (value <= node.value) {
node.left = insert(node.left, value);
} else {
node.right = insert(node.right, value);
}
}
return node;
}
public boolean search(int value) {
return search(root, value);
}
private boolean search(Node node, int value) {
if (node == null) {
return false;
} else if (node.value == value) {
return true;
} else if (value < node.value) {
return search(node.left, value);
} else {
return search(node.right, value);
}
}
public void inorder() {
inorder(root);
}
private void inorder(Node node) {
if (node != null) {
inorder(node.left);
System.out.print(node.value + ' ');
inorder(node.right);
}
}
public void preorder() {
preorder(root);
}
private void preorder(Node node) {
if (node != null) {
System.out.print(node.value + ' ');
preorder(node.left);
preorder(node.right);
}
}
public void postorder() {
postorder(root);
}
private void postorder(Node node) {
if (node != null) {
postorder(node.left);
postorder(node.right);
System.out.print(node.value + ' ');
}
}
}
示例用法:
BinaryTree tree = new BinaryTree();
tree.insert(5);
tree.insert(3);
tree.insert(7);
tree.insert(1);
tree.insert(4);
tree.insert(6);
tree.insert(8);
System.out.println(tree.search(4)); // true
System.out.println(tree.search(2)); // false
tree.inorder(); // 1 3 4 5 6 7 8
tree.preorder(); // 5 3 1 4 7 6 8
tree.postorder(); // 1 4 3 6 8 7 5
原文地址: https://www.cveoy.top/t/topic/jCXC 著作权归作者所有。请勿转载和采集!