平衡二叉树(AVL)是一种特殊的二叉搜索树(BST),即每个结点的值都大于其左子树且小于其右子树的值(若存在),并通过引入平衡因子的概念来保持树的平衡。平衡二叉树算法的重点是在插入、删除结点时,如何保持二叉搜索树的平衡,即平衡因子的值处于+1,0,-1三种状态。若平衡被破坏就要通过旋转使其恢复平衡,平衡因子随即跟着调整到+1,0,-1状态。通过这样的规则保证了二叉搜索树不会退化到近似链表状态。从而保证搜索的效率。我们在前面已经详细的介绍了这种结构,今天介绍另外一种保证搜索二叉树平衡的结构–红黑树。










算法基础知识科普:8大搜索算法之红黑树(上)相关推荐

  1. 算法基础知识科普:8大搜索算法之二叉搜索树(下)

    由于微信发代码以及数学符号很吃力,所以我们做知识科普只能利用图片来做,本算法代码较多,所以分为三个部分来介绍.本篇把剩余的部分补齐.当然二叉搜索树也有自己的缺陷,即构造的二叉树跟数据的初始状态以及删除 ...

  2. 算法基础知识科普:8大搜索算法之红黑树(下)

    这是介绍红黑树的最后一部分,令y为要删除结点,n为要删除结点的子结点(子结点最多有1个),w为y的兄弟结点,删除操作的重点是使红黑树删除结点并通过调整后仍满足自身是搜索二叉树和设定的三点规则.删除操作 ...

  3. 算法基础知识科普:8大搜索算法之AVL树(下)

    昨天我们介绍了在进行结点插入时,若左子树深度超过右子树深度两层则进行右旋来保持平衡.今天继续介绍,若右子树深度超过左子树深度两层时的左旋操作,以及删除结点后平衡因子的变更问题. 这些都掌握后,基本上对 ...

  4. 算法基础知识科普:8大搜索算法之顺序搜索

    基本概念和术语 搜索表(Search Table):是由同一类型的数据元素(或记录)构成的集合. 关键字(Key):是数据元素中某个数据项的值,用它可以标识一个数据元素.若此关键字可以唯一地标识一个记 ...

  5. 算法基础知识科普:8大搜索算法之AVL树(中)

    昨天我们介绍了平衡二叉树的基本概念,通过平衡因子来控制左右子树的深度,使得整个二叉搜索树始终保持平衡状态.这个算法的核心在于当平衡因子超过范围,如何通过旋转的方式来使二叉搜索树保持平衡,以及平衡后对应 ...

  6. 算法基础知识科普:8大搜索算法之二叉搜索树(中)

    昨天图文介绍了二叉搜索树的基本概念,本篇图文介绍二叉搜索树的具体实现.既然二叉搜索树是二叉树的特殊应用,所以我们首先封装二叉树的结点,即数据-左子树-右子树,然后实现ISymbolTalbe接口中的方 ...

  7. 算法基础知识科普:8大搜索算法之二叉搜索树(上)

    前几天,我们介绍了在顺序存储结构上构建的搜索算法,如二分搜素,插补搜索等,这种结构适合于静态搜索,但对于动态搜索会涉及到大量记录的移动导致效率的降低.这样我们自然会想是否能够利用链式的存储结构,这样在 ...

  8. 算法基础知识科普:8大搜索算法之二分搜索

    昨天介绍了对无序搜素表的顺序搜索方法,今天介绍对有序搜索表的二分搜索方法,"二分"在算法设计中是非常常用的一种思想,除了处理如下普通的搜索外,还用于搜索方程的解等工程领域.但二分法 ...

  9. 算法基础知识科普:8大搜索算法之红黑树(中)

    红黑树也是一种特殊形式的二叉搜索树,通过结点的颜色以及三条规则来保证二叉搜索树的平衡.规则1:根结点的颜色是黑色,规则2:叶子结点到根结点路径上遇到的黑色结点数目相同,规则3:叶子结点到根结点路径上无 ...

最新文章

  1. 使用css实现瀑布流的效果
  2. 磁盘格式化、磁盘挂载、手动增加swap空间
  3. 解决任务计划程序未启动任务,因为相同任务的实例正在运行的问题
  4. AR2220 通过cpu-defend policy处理大量大量arp广播的小技巧
  5. 中标麒麟桌面版yum安装mysql_中标麒麟Neokylin6桌面版如何本地yum安装软件
  6. html5伪类触发机制,HTML5表单验证
  7. mac黑白打印和彩色打印
  8. 多旅行商问题(MTSP)的相关论文总结
  9. 一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
  10. 好听的女孩名字2225个 懿婕、馨媛、雨熙、若涵、馨瑜、瑾涵、羽欣、琪悦、逸菲、馨瑜、雨婷、昕妤、婉婷、梦琪、馨月、佳瑜、晓琦、婷瑛、诗琪、瑾瑜、艺琳、雨婷、欣怡、诗雨、佳琪、悦涵、昕瑶、蓓佳、诗萌、
  11. Gradle 插件 + ASM 实战 - 监控图片加载告警
  12. python分词考研英语真题词频(附结果)——读取word、nltk、有道智云API
  13. DNA-蛋白翻译过程的Python实现
  14. 如何使用腾讯云轻量应用服务器搭建免费开源企业CMS?
  15. android 清理缓存动画,Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解...
  16. 【大学英语四六级】四六级阅读高频词汇
  17. 计算机硬件的开发及应用,关于计算机硬件安装的课件开发
  18. Win10家庭版账户名变更方法
  19. 分布式消息系统 Kafka 简介
  20. 数据结构查找-7-4 集合相似度 (25 分)

热门文章

  1. 敏捷过程、极限编程和SCRUM的关系
  2. 如何评判软件测试培训机构的好坏?
  3. 什么是Python?主要运用哪些方面?
  4. Python 中常见的配置文件写法
  5. 从源代码编译里程碑的 ICS ROM
  6. R语言通过loess去除某个变量对数据的影响
  7. 【转载】mysql常用函数汇总
  8. 精品软件 推荐 瑞星 杀毒软件 安全软件
  9. _00021 尼娜抹微笑伊拉克_谁的的最离奇的异常第二阶段 Jedis pool.returnResource(jedis)...
  10. 如何卸载sql2008,完全清除