编写Java代码实现二叉树的构建和遍历 ?
参考答案:
当然,我可以为你编写一个简单的Java代码来实现二叉树的构建和遍历。下面是一个示例:
首先,我们定义一个二叉树节点类(Node
):
public class Node {
int data;
Node left;
Node right;
public Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}
接下来,我们定义一个二叉树类(BinaryTree
),其中包含构建和遍历方法:
public class BinaryTree {
Node root;
// 构建二叉树
public void insert(int data) {
root = insertRecursive(root, data);
}
private Node insertRecursive(Node current, int data) {
if (current == null) {
return new Node(data);
}
if (data < current.data) {
current.left = insertRecursive(current.left, data);
} else {
current.right = insertRecursive(current.right, data);
}
return current;
}
// 前序遍历
public void preOrderTraversal(Node node) {
if (node == null) {
return;
}
System.out.print(node.data + " ");
preOrderTraversal(node.left);
preOrderTraversal(node.right);
}
// 中序遍历
public void inOrderTraversal(Node node) {
if (node == null) {
return;
}
inOrderTraversal(node.left);
System.out.print(node.data + " ");
inOrderTraversal(node.right);
}
// 后序遍历
public void postOrderTraversal(Node node) {
if (node == null) {
return;
}
postOrderTraversal(node.left);
postOrderTraversal(node.right);
System.out.print(node.data + " ");
}
}
最后,我们在主函数(main
)中创建二叉树对象,并插入一些数据,然后执行遍历:
public class Main {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
// 插入数据
tree.insert(10);
tree.insert(5);
tree.insert(15);
tree.insert(3);
tree.insert(7);
tree.insert(13);
tree.insert(17);
System.out.println("前序遍历:");
tree.preOrderTraversal(tree.root);
System.out.println();
System.out.println("中序遍历:");
tree.inOrderTraversal(tree.root);
System.out.println();
System.out.println("后序遍历:");
tree.postOrderTraversal(tree.root);
System.out.println();
}
}
这段代码实现了一个简单的二叉树结构,包括插入数据(构建二叉树)和前序、中序、后序遍历。你可以根据需要扩展和修改这个示例。