随笔分类 - 数据结构
数据结构 玩转数据结构 14-3 java中的hashCode方法
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15346 1 重点关注 1.1 重写hashCode和equals方法 参见3.1 1.2 java中hash表的应用 HashSet和HashMap 2 课程内容 2.1 不同的对象的默认ha
阅读全文
数据结构 玩转数据结构 14-4 链地址法
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15347 1 重点关注 1.1 本节内容 解决哈希冲突的常用方法:链地址法,求绝对值的另一种表述方式 1.2 链地址法常用方案 链表法 红黑树法: java8之前:使用链表法解决哈希冲突 jav
阅读全文
数据结构 玩转数据结构 14-2 哈希函数的设计
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15345 1 重点关注 1.1 本节内容 使用合理的哈希函数的理论支持,解析不同数据类型键如何转为整型索引(这是其中最通用的一种方式) 1.2 哈希函数的设计原则 一致性:如果a==b,则has
阅读全文
数据结构 玩转数据结构 14-1 哈希表基础
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15344 1 重点关注 1.1 应用场景 hashtable和hashMap底层,安全加密,唯一标志,数据校验,散列函数,负载均衡,数据分片,分布式存储,CRC校验等 参考:https://zh
阅读全文
数据结构 玩转数据结构 13-9 更多和红黑树相关的话题
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15213 1 重点关注 1.1 红黑树的类型 我们讲的是左倾红黑树,还可以是右倾红黑树(新增红节点在右侧) 1.2 更被访问的内容下次高频访问的数据结构 伸展树 https://www.scal
阅读全文
数据结构 玩转数据结构 13-8 红黑树的性能测试
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15212 1 重点关注 1.1 红黑树,avl,BST的使用场景 完全随机的数据,BST就可以 有顺序的数据查询较多,avl优先 有顺序的数据增删较多,红黑树优先 综合增删改查所有操作,红黑树优
阅读全文
数据结构 玩转数据结构 13-7 红黑树中添加新元素
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15185 1 重点关注 1.1 红黑树本节解析草图 2节点添加节点: 如下图(其实有4种情况): A 黑Node 左侧 添加 红Node, 正常 B 黑Node 右侧 添加 红Node, 右节点
阅读全文
数据结构 玩转数据结构 13-6 颜色翻转和右旋转
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15184 1 重点关注 1.1 红黑树本节解析草图 1为颜色翻转(4节点(有4个子节点)拆分为3个2节点); 2为右旋转,4节点右旋转,未进行拆分; 他们都是子过程 2 课程内容 3 Codin
阅读全文
数据结构 玩转数据结构 13-5 保持根节点为黑色和左旋转
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15183 1 重点关注 1.1 红黑树本节解析草图 1.2 红黑树新增节点草图解析 1.3 avl树和红黑树的使用场景 如果应用于查找,avl树更快一些,(见1.2) 如果应用于新增删除修改,红
阅读全文
数据结构 玩转数据结构 13-4 红黑树的基本性质和复杂度分析
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15083 1 重点关注 1.1 算法导论 红黑树5点特性论证 详见2-3树等价于红黑树一章 1.2 红黑树特性 红黑树是保持“黑平衡”的二叉树(从任意一个节点到叶子节点,经过的黑色节点数目是一样
阅读全文
数据结构 玩转数据结构 13-3 红黑树与2-3树的等价性
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15082 1 重点关注 1.1 2-3树和红黑树的等价性归纳 2-3树的2节点为黑 2-3树的3节点左侧为红,2-3树的3节点右侧为黑 1.2 2-3树和红黑树的等价性分析 2 课程内容 3 C
阅读全文
数据结构 玩转数据结构 13-2 2-3树的绝对平衡性
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15081 1 重点关注 1.1 2-3树的绝对平衡性演示推导 1.2 2-3树的绝对平衡性归纳 a 插入2节点,直接融合 b 插入3节点,融合后向上分裂 c 循环 3节点分裂后依次判断父节点是2
阅读全文
数据结构 玩转数据结构 13-1 红黑树与2-3树
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=15086 1 重点关注 1.1 红黑树的特性 1.2 2-3树的特性 满足二叉树性质 2-3树是一棵绝对平衡的树(从根节点到任一节点经过节点数相同) 2 课程内容 2.1 2-3树定义 每个节点
阅读全文
数据结构 玩转数据结构 12-8 基于AVL树的集合和映射
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=14353 1 重点关注 1.1 本节要点 基于avl树的map和set实现及性能测试 2 课程内容 2.1 性能测试 见3.1和3.2 3 Coding 3.1 coding Set的avl树实
阅读全文
数据结构 玩转数据结构 12-7 从AVL树中删除元素
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=14352 1 重点关注 1.1 本节要点 前两节新增节点后维护平衡的方法直接拿过来用即可 1.2 修改删除元素维护平衡后需要注意的情况 a removMin方法有可能打破平衡b node 查找到
阅读全文
数据结构 玩转数据结构 12-6 LR和RL的实现
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=14351 1 重点关注 1.1 破坏二分搜索树的四种情况 左左LL:新插入的节点导致不平衡,向上回溯找到第一个不平衡的节点在左孩子的左侧 右右RR:新插入的节点导致不平衡,向上回溯找到第一个不平
阅读全文
数据结构 玩转数据结构 12-5 左旋转和右旋转的实现
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=14350 1 重点关注 1.1 破坏二分搜索树的四种情况 左左LL:新插入的节点导致不平衡,向上回溯找到第一个不平衡的节点在左孩子的左侧 右右RR:新插入的节点导致不平衡,向上回溯找到第一个不平
阅读全文
数据结构 玩转数据结构 12-3 检查二分搜索树性质和平衡性
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=14348 1 重点关注 1.1 代码草图 1.2 代码实现检查二分搜索树和平衡性 利用了二分搜索树中序遍历由小到大的特性 和 平衡二叉树的平衡因子大于1的特性 //1 校验二分搜索树(中序遍历参
阅读全文
数据结构 玩转数据结构 12-1 平衡树和AVL
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=14346 1 重点关注 1.1 本节关注重点 平衡二叉树的重新定义,标注节点高度,平衡因子 1.2 平衡二叉树的重新定义 和堆,线段树等对比,这里的平衡二叉树指的是 对于任一节点,左子节点和右子
阅读全文
数据结构 玩转数据结构 9-7 更多线段树相关的话题
摘要:0 课程地址 https://coding.imooc.com/lesson/207.html#mid=13849 1 重点关注 2 课程内容 2.1 区间更新 懒惰更新方法,使用lazy数组记录未更新的内容。 更新的时候只需要更新到节点,以后再做查询或者更新的时候,再对节点及子节点进行操作。 2.
阅读全文