数据结构—树与二叉树篇III

本文介绍了二叉排序树(BST)的特点、查找、插入和删除操作,强调了二叉排序树的查找效率与树形态的关系。接着,讨论了平衡二叉树(AVL)的概念,解释了平衡因子、平衡旋转及其在插入过程中的应用,以保持树的平衡。最后,简述了哈夫曼树及其在数据压缩中的作用。
摘要由CSDN通过智能技术生成

二叉树的应用

1        二叉排序树(BST)

l  特点:

 左子树结点值 < 根结点值 < 右子树结点值

l  查找

算法思想:若二叉排序树为非空,则给定值与根结点的关键字比较,若相等,则查找成功;若不等,则当根结点的关键字大于给定的关键字值时,在根结点的左子树查找,否则根结点的右子树查找。(有递归和非递归算法实现)

l  插入

【注】二叉树是动态集合,树的结构通常不是一次性形成的,而是在查找过程中,当树中不存在关键字等于给定值得结点时再插入

 算法思想: 若原二叉排序树(或递归子树)为空,则直接插入结点; 否则若关键字k小于根结点关键字,则插入到根结点的左子树,反之,插入到根结点右子树。




二叉排序树插入新结点一定是某个叶结点。

l  构造

算法思想: 依次输入数据元素,并调用插入函数完成插入动作

 

l  删除

【引】删除动作要保证二叉排序树的性质不会丢失。

1.      叶结点,直接删除

2.      该结点z只有一棵左子树或右子树,则让z的子树成为z父节点的子树。

3.      该结点z有左右两棵子树,则令z的直接前驱(或直接后继)替代z(值替换),然后从二叉排序树中删除这个直接前驱(或直接后继)。这样就转换成了第一种或者第二种情况。(值替换->1,2类型删除



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值