用java语言写一段二叉树的代码
下面是一段基本的Java二叉树代码:
class Node {
int data;
Node left;
Node right;
public Node(int data) {
this.data = data;
left = null;
right = null;
}
}
class BinaryTree {
Node root;
public BinaryTree() {
root = null;
}
// 插入节点
public void insert(int data) {
root = insertHelper(root, data);
}
private Node insertHelper(Node root, int data) {
if (root == null) {
root = new Node(data);
return root;
}
if (data < root.data) {
root.left = insertHelper(root.left, data);
} else if (data > root.data) {
root.right = insertHelper(root.right, data);
}
return root;
}
// 中序遍历
public void inOrder() {
inOrderHelper(root);
}
private void inOrderHelper(Node root) {
if (root != null) {
inOrderHelper(root.left);
System.out.print(root.data + " ");
inOrderHelper(root.right);
}
}
// 前序遍历
public void preOrder() {
preOrderHelper(root);
}
private void preOrderHelper(Node root) {
if (root != null) {
System.out.print(root.data + " ");
preOrderHelper(root.left);
preOrderHelper(root.right);
}
}
// 后序遍历
public void postOrder() {
postOrderHelper(root);
}
private void postOrderHelper(Node root) {
if (root != null) {
postOrderHelper(root.left);
postOrderHelper(root.right);
System.out.print(root.data + " ");
}
}
}
public class Main {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
// 插入节点
tree.insert(50);
tree.insert(30);
tree.insert(20);
tree.insert(40);
tree.insert(70);
tree.insert(60);
tree.insert(80);
// 中序遍历
System.out.println("InOrder Traversal: ");
tree.inOrder();
// 前序遍历
System.out.println("\nPreOrder Traversal: ");
tree.preOrder();
// 后序遍历
System.out.println("\nPostOrder Traversal: ");
tree.postOrder();
}
}
``
原文地址: https://www.cveoy.top/t/topic/eIas 著作权归作者所有。请勿转载和采集!