【数据结构】二叉树基本操作(孩子兄弟表示法 + Java详解 + 原码)
class Node {
int data;
Node left;
Node right;
Node(int data) {
this.data = data;
this.left = this.right = null;
}
}
public class Main {
// 二叉树的根节点
Node root;
// 插入节点
public void insert(int data) {
root = insertRec(root, data);
}
private Node insertRec(Node node, int data) {
if (node == null) {
return new Node(data);
}
if (data < node.data) {
node.left = insertRec(node.left, data);
} else {
node.right = insertRec(node.right, data);
}
return node;
}
// 中序遍历
public void inorderTraversal() {
inorderTraversalRec(root);
}
private void inorderTraversalRec(Node node) {
if (node == null) {
return;
}
inorderTraversalRec(node.left);
System.out.print(node.data + " ");
inorderTraversalRec(node.right);
}
public static void main(String[] args) {
Main tree = new Main();
// 插入节点
tree.insert(50);
tree.insert(30);
tree.insert(20);
tree.insert(40);
tree.insert(70);
tree.insert(60);
tree.insert(80);
// 中序遍历
System.out.println("\nInorder Traversal:");
tree.inorderTraversal();
}
}
这段代码实现了二叉树的基本操作,包括插入节点和中序遍历。它使用孩子兄弟表示法来存储二叉树,其中每个节点包含一个数据域和两个指针域(左孩子和右兄弟)。插入操作是递归的,而遍历操作则是通过递归或迭代完成的。这个简单的实例展示了二叉树的基本概念和操作,对于学习数据结构的初学者来说是一个很好的起点。
评论已关闭