数据结构
cb李先生
这个作者很懒,什么都没留下…
展开
-
B+Tree
演示地址 https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html 能减少树查询时的越级寻址 每个树非叶子节点上,可能有多个数据, 并且有子节点地址 可以指定每个树节点上最大的数据长度,如果根节点超过最大长度, 树会加深 叶子节点维护了有序链表 应用 mysql的索引 Innodb索引和数据都在一起(聚簇索引)的形式 MyISAM 索引指向磁盘文件的地址, 索引和数据分开 虽然hash索引不需要寻址(不考虑hash冲突), 但是在范围原创 2020-06-28 00:03:42 · 102 阅读 · 0 评论 -
哈希表
演示动画 https://www.cs.usfca.edu/~galles/visualization/OpenHash.html 哈希表 由一个数组实现, 因为数组有下标, 而且连续 ,方便拿到哈希索引直接找到对应位置 哈希算法 java HashMap 哈希表为特殊的哈希表,长度为2的整数幂 每个value根据hashCode处理后,与哈希表长度按位&, 正好能得到0 -> 哈希表长度减一几种类型的数据 除留余数(实现简单) 根据固定的规则拿到代表value的数字除以哈希表的长度原创 2020-06-27 23:41:56 · 101 阅读 · 0 评论 -
线性表
栈 后进先出 应用 函数执行模型 任意树的深度遍历算法 … 队列 先进先出 应用 有序的任务列表(消息队列, Lock线程执行队列, 线程池任务队列) 任意树的广度遍历算法 … 数组 可以对,栈,队列都可以进行实现 内存连续, 能够根据首地址,计算指定下标处的值. 查询效果好, 频繁插入删除, 涉及挪动操作位置后所有元素的位置,性能差 链表 可以对,栈,队列都可以进行实现 每个元素都是一个节点, 每个节点都有指向上一个或下一个元素的地址 插入,删除时,只需把操作元素两侧的元素相关联即可原创 2020-06-27 23:19:10 · 68 阅读 · 0 评论 -
红黑树
红黑树的特征要求 所有节点不是红色的就是黑色的. 根节点是黑色的. 所有叶子都是NUIL节点, 所有叶子都是黑色. 每个红色节点的两个子节点都是黑色, 也就是不可能有两个相连的红色节点 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点. ( 两个相连的黑色节点算一步, 一个节点 ...原创 2020-06-27 22:56:41 · 97 阅读 · 0 评论