java 做个二叉树排序
时间: 2023-07-01 13:23:46 浏览: 148
二叉树排序是一种常见的排序算法,可以通过二叉搜索树来实现。以下是使用Java编写的二叉树排序示例代码:
```java
public class BinaryTreeSort {
private static class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
public static void main(String[] args) {
int[] nums = {5, 2, 7, 1, 3, 6, 8, 4};
TreeNode root = null;
for (int num : nums) {
root = insert(root, num); // 插入节点到二叉搜索树中
}
inorderTraversal(root); // 中序遍历二叉搜索树,输出排序结果
}
private static TreeNode insert(TreeNode root, int val) {
if (root == null) {
return new TreeNode(val); // 如果根节点为空,创建一个新节点作为根节点
}
if (val < root.val) {
root.left = insert(root.left, val); // 如果插入的值小于根节点的值,插入到左子树中
} else {
root.right = insert(root.right, val); // 如果插入的值大于等于根节点的值,插入到右子树中
}
return root;
}
private static void inorderTraversal(TreeNode root) {
if (root == null) {
return;
}
inorderTraversal(root.left); // 遍历左子树
System.out.print(root.val + " "); // 输出节点值
inorderTraversal(root.right); // 遍历右子树
}
}
```
上述代码中,首先定义了二叉树节点的数据结构 `TreeNode`,包含节点的值和左右子节点。然后,使用 `insert` 方法将数组中的元素插入到二叉搜索树中,插入时如果值小于根节点的值,插入到左子树中,否则插入到右子树中。最后,使用 `inorderTraversal` 方法对二叉搜索树进行中序遍历,并输出排序结果。
阅读全文