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
类中进行了二叉树的建立和遍历操作。
Java
winlogins.exe是什么文件?winlogins.exe是不是病毒
winsock2.6.exe是什么文件?winsock2.6.exe是不是病毒
WinDefendor.dll是什么文件?WinDefendor.dll是不是病毒
系统目录是什么文件?系统目录是不是病毒
wholove.exe是什么文件?wholove.exe是不是病毒
winn.ini是什么文件?winn.ini是不是病毒
w6oou.dll是什么文件?w6oou.dll是不是病毒
winduxzawb.exe是什么文件?winduxzawb.exe是不是病毒
wuammgr32.exe是什么文件?wuammgr32.exe是不是病毒
windiws.exe是什么文件?windiws.exe是不是病毒