在Java中实现二叉树的建立和遍历可以通过定义一个节点类来表示二叉树的节点,然后通过递归的方式来构建二叉树和进行遍历操作。下面是一个示例代码:
// 定义二叉树节点类
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
// 二叉树类
class BinaryTree {
private TreeNode root;
public BinaryTree() {
root = null;
}
// 递归插入节点
private TreeNode insertRecursive(TreeNode current, int val) {
if (current == null) {
return new TreeNode(val);
}
if (val < current.val) {
current.left = insertRecursive(current.left, val);
} else if (val > current.val) {
current.right = insertRecursive(current.right, val);
}
return current;
}
// 插入节点
public void insert(int val) {
root = insertRecursive(root, val);
}
// 中序遍历
private void inorderTraversal(TreeNode node) {
if (node != null) {
inorderTraversal(node.left);
System.out.print(node.val + " ");
inorderTraversal(node.right);
}
}
public void inorder() {
inorderTraversal(root);
}
// 前序遍历
private void preorderTraversal(TreeNode node) {
if (node != null) {
System.out.print(node.val + " ");
preorderTraversal(node.left);
preorderTraversal(node.right);
}
}
public void preorder() {
preorderTraversal(root);
}
// 后序遍历
private void postorderTraversal(TreeNode node) {
if (node != null) {
postorderTraversal(node.left);
postorderTraversal(node.right);
System.out.print(node.val + " ");
}
}
public void postorder() {
postorderTraversal(root);
}
}
public class Main {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.insert(5);
tree.insert(3);
tree.insert(7);
tree.insert(2);
tree.insert(4);
tree.insert(6);
tree.insert(8);
System.out.print("Inorder traversal: ");
tree.inorder();
System.out.println();
System.out.print("Preorder traversal: ");
tree.preorder();
System.out.println();
System.out.print("Postorder traversal: ");
tree.postorder();
System.out.println();
}
}
以上示例代码中,通过定义TreeNode
类表示二叉树的节点,定义BinaryTree
类表示二叉树,实现了插入节点和三种遍历方式(中序、前序、后序)的方法。在Main
类中进行了二叉树的建立和遍历操作。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/936271.html