使用双向链表构建二叉树_平衡二叉树

平衡二叉树是在二叉查找树(二叉查找树(BST:Binary Search Tree) )的基础上发展而来的。

平衡二叉树(AVL树),指的是左子树上的所有节点的值都比根节点的值小,而右子树上的所有节点的值都比根节点的值大,且左子树与右子树的高度差最大为1。所以,平衡二叉树满足所有二叉排序(搜索)树的性质。而名字AVL,则是取自两个发明平衡二叉树的科学家的名字:G. M. Adelson-Velsky和E. M. Landis。

一个新的数据结构不是凭空产生的,我们先看一下二叉查找树的作用。有了二叉查找树这一数据结构,当你要查找一个值,就不需要遍历整个序列或者说遍历整棵树了,可以根据当前遍历到的结点的值来确定搜索方向。这种思维在搜索中被叫做“剪枝”,把不必要的分枝剪掉可以提高搜索效率。在二叉查找树中查找值,每次都会把搜索范围缩小,与二分搜索的思维类似。

举例看一下下图所示二叉查找树:

0f050b83e2d7583aa7ded9713407a1ab.png

图1 典型的二叉查找树

假设我们想要查找节点7,先到达根节点,它的值大小为6;7比6大,继续往右子树上找,到达8;7比8小,往左子树上查找,最终找到7。

二叉查找树可以使插入、搜索的效率大大提高,为什么还要发明平衡二叉树这一数据结构?

二叉查找树的结构与值的插入顺序有关

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值