下面是Java创建普通二叉树的完整攻略。
第一步:定义二叉树结构
在Java中定义二叉树需要有一个二叉树结点类,一个二叉树根节点类。
// 二叉树结点类
public class Node {
int val;
Node left, right;
Node(int val) {
this.val = val;
left = null;
right = null;
}
}
// 二叉树根节点类
public class BinaryTree {
Node root;
BinaryTree() {
root = null;
}
}
在二叉树结点类中,val表示该结点的值,left和right分别代表该结点的左儿子和右儿子。在二叉树根节点类中,root表示该二叉树的根节点,初始化为null,表示这是一棵空树。
第二步:创建二叉树
方法1:手动创建
手动创建二叉树的方式需要依次定义二叉树的每个结点,并通过root
属性逐层链接。例如,下面这棵二叉树:
1
/ \
2 3
/ \
4 5
对应的代码如下:
BinaryTree binaryTree = new BinaryTree();
binaryTree.root = new Node(1);
binaryTree.root.left = new Node(2);
binaryTree.root.right = new Node(3);
binaryTree.root.left.left = new Node(4);
binaryTree.root.left.right = new Node(5);
方法2:递归创建
递归创建二叉树可以通过传入节点值数组,然后在代码中递归生成整个二叉树。具体实现如下:
public class BinaryTree {
Node root;
public BinaryTree() {
root = null;
}
Node insert(Node node, int key) {
if (node == null) {
node = new Node(key);
return node;
}
if (key < node.val) {
node.left = insert(node.left, key);
} else if (key > node.val) {
node.right = insert(node.right, key);
}
return node;
}
public void insert(int key) {
root = insert(root, key);
}
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
int[] arr = { 1, 6, 2, 8, 3, 4, 5, 7 };
for (int i = 0; i < arr.length; i++) {
bt.insert(arr[i]);
}
}
}
上面的代码中,通过 insert 方法递归实现了二叉树的插入操作,通过带参数的 insert 方法可以一次插入多个节点值,并构建出一棵二叉树。例如,我们可以通过以下代码构造一棵二叉树:
BinaryTree bt = new BinaryTree();
int[] arr = { 1, 6, 2, 8, 3, 4, 5, 7 };
for (int i = 0; i < arr.length; i++) {
bt.insert(arr[i]);
}
最终生成的二叉树如下:
1
/ \
6 2
/ \ \
8 3 4
/ / \
7 5
以上就是创建普通二叉树的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java如何创建普通二叉树 - Python技术站