java二叉树怎么建立和遍历


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


上一篇:c++中promise函数的用法是什么

下一篇:python中squeeze函数的用法是什么


Java
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器