超级容易混淆的两种数据结构:

1、二叉查找树(数据存储在各个结点中)

- 每个结点最多有两个子节点

- 每个结点的值都大于左子树上任意一个结点的值,小于右子树上任意一个结点的值

根据以上特性可知,要找较小的数据,去左子树,找较大的去右子树(每次查找均从二叉树根结点开始比较,比较次数取决于树的高度)。
其中比较麻烦一点的是删除结点的操作:如果删除的目标结点有子结点,删除目标结点之后,在目标结点的左子树里找最大结点(也可以是右子树中的最小结点,反正符合上面的两条特性就行)填补到目标结点的位置。

2、 堆(数据存储在各个结点中)

比较类似于二叉树的形式,但主要用于排序,实现优先队列。

- 每个子结点都大于父结点,每个结点最多有两个子结点

基于以上特性,堆结构中最小值永远是根结点,从堆中删除数据,是直接删除最小值,也就是根结点,然后再根据上面的特性,把剩余结点重新排列到符合规则即可。

算法笔记(一)【区分二叉查找树和堆】相关推荐

  1. 漫画算法笔记 二叉堆基本操作

    漫画算法笔记 二叉堆基本操作 #include <iostream> #include <stdlib.h> #include <vector> using nam ...

  2. 算法笔记(胡凡)学习笔记@Kaysen

    本文旨在记录算法笔记学习过程中的收获和一些知识点,部分易错知识点只针对个人而言,CCF-CSP考试冲鸭!!! Chapter 2 C/C++快速入门(易错知识点) 2.1 基本数据类型 变量定义注意区 ...

  3. 数据结构与算法笔记(青岛大学王卓老师视频)

    写在前面的话: 因为在学习数据结构之前,学习过一年的算法,所以有一些基础,一些我觉得 没必要的代码或知识就没写上,记得多是一些知识点,写的可能对于别人来说 很难接受,望谅解.我学习算法是在Acwing ...

  4. 算法笔记知识点整理大全

    每次刷题都觉得自己吃了知识点不全,基础不牢固的亏,刷题的时候目标也不明确,于是看完了算法笔记并把知识点归纳了一下,当然直接看书会更加详细,这个归纳只是学习时加深印象以及方便自己之后回顾而已:之后刷题大 ...

  5. 《算法笔记》——笔记

    算法笔记 胡凡 曾磊 主编 机械工业出版社 文章目录 算法笔记 C/C++快速入门 提醒 memset sscanf与sprintf 引用 浮点数的比较 圆周率 复杂度 黑盒测试 入门篇(1)--入门 ...

  6. codeup墓地目录(算法笔记习题刷题笔记)

    在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门模拟->简单模拟 ...

  7. 算法笔记学习PAT甲级解题记录

    算法笔记学习记录 2019.06.26 float&&double 推荐全部使用double,注意区分scanf("%lf",&double1);与prin ...

  8. 《算法笔记》中文版 - 包括数组,链表,树,图,递归,DP,有序表等相关数据结构与算法的讲解及代码实现...

    来源:专知本文为资源,建议阅读5分钟本文为你分享<算法笔记>中文版. https://github.com/Dairongpeng/algorithm-note 目录概览 第一节 复杂度. ...

  9. 数据结构与算法笔记(十六)—— 二叉搜索树

    一.二叉搜索树定义 二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree). 二叉搜索树是具有有以下性质的二叉树: 若左子树不为空,则左子树上所有节点的 ...

最新文章

  1. 类加载器-扩展加载器
  2. “《面对面---做好每一天》--中国短道速滑教练李琰”读后感
  3. 1268:【例9.12】完全背包问题
  4. 3、CommonChunkPlugin提取公共js-以提取一个jquery为例
  5. jquery开关灯案例_jquery图文开关灯切换特效
  6. 数据库工作笔记001---mysql 修改字符集_修改排序规则
  7. Openstack Swift 原理、架构与 API 介绍
  8. 【Android】Android实现自定义带文字和图片的Button
  9. kali wifi密码 破解
  10. xml.html一键解密工具,AutoJs一键解密
  11. 淘宝以图搜图接口,图片搜索商品接入指南
  12. gg修改器修改数值没有用怎么办_GG修改器详细使用教程
  13. 黑苹果 U盘刻录工具Transmac与Etcher使用
  14. 千兆网线的制作方法和千兆网线的施工注意事项
  15. “esxcli software vib” commands to patch an ESXi 5.x/6.x host (2008939)
  16. 自己总结的linux命令
  17. qiankun+vue项目开发
  18. 《Microduino实战》——1.1 什么是开源
  19. MATLAB一直显示初始化的解决方法
  20. QT使用msvc编译器

热门文章

  1. 来日时必备物品清单:
  2. 怎么注册自己公司域名的企业邮箱?外贸邮箱哪个好用?
  3. spring诸如方式_回滚诸如在家工作之类的程序时,请谨慎操作
  4. 家乐福在西班牙布局区块链,上线食品溯源平台
  5. python pymssql - pymssql模块官方文档的翻译
  6. 7.4 初等矩阵和可逆性
  7. safari浏览器在使用videojs-contrib-quality-levels.js 播放视频时 清晰度失效, 报错Unhandled Promise Rejection: AbortError
  8. 技嘉b365dv3主板黑苹果efi_黑苹果--技嘉 z390 gaming X 究极方案
  9. 模型可解释性-SHAPE
  10. Apollo入门课程04-感知