当前位置: 首页 > 建站教程

java二叉树怎么建立和遍历

时间:2026-01-29 14:37:07

在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类中进行了二叉树的建立和遍历操作。


上一篇:pycharm怎么新建一个python项目
下一篇:python中怎么写api接口
java
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素