二叉树小程序

 今天做了一个二叉树的练习,以前感觉二叉树的树图和黑漆漆的命令行没有多大的关联,可事实表明命令行的输入和树的节点是一一对应的(如果程序的输入都正确的话)。

二叉树图:

命令行输入的信息和相应的结果:

可耻地错了一半,不过已经让我改过来了,有图中inorder的结果是错的,不过其他是对的,运行也大概这个结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是Java实现二叉树排序的示例程序: ```java import java.util.ArrayList; import java.util.List; public class BinaryTreeSort { private Node root; /** * 插入节点 * @param value 节点值 */ public void insert(int value) { Node node = new Node(value); if (root == null) { root = node; } else { Node current = root; Node parent; while (true) { parent = current; if (value < current.value) { current = current.left; if (current == null) { parent.left = node; return; } } else { current = current.right; if (current == null) { parent.right = node; return; } } } } } /** * 中序遍历二叉树 * @return 排序后的节点值列表 */ public List<Integer> inOrderTraversal() { List<Integer> result = new ArrayList<>(); inOrderTraversal(root, result); return result; } private void inOrderTraversal(Node node, List<Integer> result) { if (node != null) { inOrderTraversal(node.left, result); result.add(node.value); inOrderTraversal(node.right, result); } } /** * 节点类 */ private static class Node { int value; Node left; Node right; Node(int value) { this.value = value; } } public static void main(String[] args) { BinaryTreeSort tree = new BinaryTreeSort(); tree.insert(5); tree.insert(2); tree.insert(8); tree.insert(1); tree.insert(3); tree.insert(7); tree.insert(9); List<Integer> result = tree.inOrderTraversal(); System.out.println(result); } } ``` 该程序中,我们定义了一个`Node`类表示二叉树的节点,以及一个`BinaryTreeSort`类实现二叉树排序的算法。 在`insert()`方法中,我们通过比较节点值的大小,将新节点插入到合适的位置。在`inOrderTraversal()`方法中,我们采用中序遍历的方式遍历二叉树,将节点值存储到列表中,并返回排序后的节点值列表。 最后在`main()`方法中创建了一个二叉树,并对其进行了测试。运行程序,输出结果为`[1, 2, 3, 5, 7, 8, 9]`,说明二叉树排序算法已经正确地将节点值排好序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值