Java实现生成二叉树

本文介绍了如何使用Java实现二叉树的构建,详细解析了从数组生成二叉树的过程,并提供了递归实现的编码思路。通过示例展示了查找元素的方法,验证了二叉树的成功创建。
摘要由CSDN通过智能技术生成
(1)二叉树是什么:

除叶子节点外,所有节点都拥有左右两条分支。
每个节点都包含着当前节点的值。
最上层的头叫做根节点。
比根节点小的放左边,比根节点大的放右边。
针对大批量的,动态的数据存储,查询增删的效率都非常高,理想状态下时间复杂度O(logN)。

(2)如果有一串数组元素:6,3,2,5,4,1,8,7,9 , 组成的二叉树应该是怎样的?

在这里插入图片描述

(3)过程解析:

1:首先二叉树包含三个信息,左节点,右节点,还有当前节点value。
2:在创建时肯定是拿一个元素做根节点,然后把后续进来的元素与根节点比较。
比根节点小且当前节点的左节点为空,放左边;不为空,继续比较
比根节点大且当前节点的右节点为空,放右边;不为空,继续比较
3:直到把数组元素放完,整棵树就生成了。

(4)编码思路:

一看就是一个递归调用的过程,操作步骤也很简单,除了第一步是拿第一个元素设置一下根几点,后续元素都是跟根节点比较大小,然后判断左右是否有坑位,坑位空就直接设置,不为空不能直接覆盖别人的坑位,而是礼貌的拿出子节点继续比较,直到找到一个新坑位。

(5)代码实现:

树的实体类:

public class Tree {
   
    private Tree leftNode;

    private int value = 0;

    private Tree rightNode;

    public Tree getLeftNode() {
   
        return leftNode;
    }

    public void setLeftNode(Tree leftNode) {
   
        this.leftNode = leftNode;
    }

    public int getValue() {
   
        return value;
    }

    public void setValue(int value) {
   
        this.value = value;
    }

    public Tree getRightNode() {
   
        return rightNode;
    }

    public void setRightNode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值