数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
博客专区 > Claroja 的博客 > 博客详情
数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
Claroja 发表于12个月前
数据算法之二叉树插入(BinaryTreeL Insert)的Java实现
  • 发表于 12个月前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

  本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。
  二叉树插入的基本思想是从根结点开始,待插入的元素如果比根节点小,则继续寻找左边的子结点;如果比根结点大则继续寻找右边的子结点。依次往复。
  如图所示:


  二叉树插入


输入:待插元素ele
输出:在二叉查找树中插入ele
代码:
public void insert(Object ele){
    BinTreeNode p = null;
    BinTreeNode current = root;
    while (current!=null){ //找到待插入位置
        p = current;
        if (strategy.compare(ele,current.getData())<0)
            current = current.getLChild();
        else
            current = current.getRChild();
    }
    startBN = p; //待平衡出发点 *
    if (p==null)
        root = new BinTreeNode(ele); //树为空
    else if (strategy.compare(ele,p.getData())<0)
        p.setLChild(new BinTreeNode(ele));
    else
        p.setRChild(new BinTreeNode(ele));
}
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 128
码字总数 44892
×
Claroja
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: