![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 84
数据结构总结
梨子栗子狸
这个作者很懒,什么都没留下…
展开
-
并查集
1. 简介并查集(Union Find)也叫做不相交集合并查集有两个核心操作查找(Find):查找元素所在集合合并(Union):将两个元素所在集合合并为一个集合两种常见实现思路QuickFind:查找 —— O(1),合并 —— O(n)QuickUnion(常用):查找 —— O(logn)可优化至O(5),合并 —— O(logn)可优化至O(5)2. 并查集如何存储数据以存储整形数据为例,可以用数组实现并查集。比如数组的索引表示数据,值代表所属集合。3. 实现原创 2021-01-31 10:22:10 · 301 阅读 · 0 评论 -
堆
一、简介是一种树状的数据结构常见的堆有:1. 二叉堆(完全二叉堆,其逻辑结构就是一棵完全二叉树)2. 多叉堆3. 索引堆4. 二项堆5. 斐波那契堆6. 左斜堆性质1. 任意节点的值总是 >= 或 <= 子节点的值2. 如果任意结点的值 >= 子节点的值,则称为大根堆或最大堆3. 如果任意结点的值 <= 子节点的值,则成为小根堆或最小堆4. 上一层的值不一定全都大于下一层的值。二、二叉堆(数组存放,最大堆为例)数组索引的规律(n是元素数量)原创 2020-07-31 19:09:45 · 165 阅读 · 0 评论 -
B树学习
一、什么是B树B树又称多路平衡搜索树,多用于文件系统或数据库的实现。B树有如下特点:结点中可以含有多个元素,且这些元素是有序的。拥有某些搜索二叉树的性值,比如红框中的元素均大于33,蓝框中的元素介于18到33之间。每个结点可以有多棵子树。平衡,所有结点的平衡因子为0。B树的阶数为所有结点中孩子数的最大值,图中的树即为3阶B树。二、m阶(m >= 2)B树的性质假设一个结点存储的元素个数为x。根结点中存储的元素个数:1 <= x <= m-1非根结点,存储的元素原创 2020-07-25 21:29:28 · 207 阅读 · 0 评论 -
课程表
思路1:BFS 分析题目可知,某些选修课程是有选秀前提的,即必需要先完成某门课程。我们可以将课程之间的关系用有向无环图表示,判断是否可能学完所有课程就意味着这个图中不能有环,试想如果课程A与课程B构成一个环,那么他们就互为彼此的先修课程,显然这是不对的。 下面介绍一下拓扑排序,拓扑排序是针对有向无环图而言的,是一个由有向无环图中的所有顶点组成的序列,这个序列有以下要求: 1. 每个顶点在序列当中且只能出现一次。 2. 若顶点A在序列中,且在B之前,那么在图中不可能存在一条由B到A的路径。.原创 2020-07-24 21:09:26 · 115 阅读 · 0 评论 -
二叉树的遍历
思路:遍历二叉树使用递归的方式是比较简单、清晰的,但是这种方法会导致性能的下降,这是因为每次在调用函数时需要为当前函数保存现场,为新调用的函数申请空间,同时如果我们忘记设置递归结束条件还会引起内存栈的溢出。这里讲述的方法是使用迭代的方法实现递归的工作流程。首先递归的本质实际上是压栈,即在又一次调用自身之前,向栈中压入当前函数的状态。我们可以建立辅助栈模拟压栈,对于二叉树的遍历顺序而言,我们要考虑结点入栈的顺序,因为栈先进后出的工作特点,所以向栈中压入结点的顺序直接影响到了我们的访问顺序。而且注意原创 2020-07-12 10:03:24 · 81 阅读 · 0 评论