
数据结构
文章平均质量分 73
云的小站
我是小区保安,爱吃小熊饼干
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
链表带环问题:双指针必定相遇证明与头节点寻找算法证明
链表带环问题:双指针必定相遇证明与头节点寻找算法证明原创 2023-03-09 17:22:24 · 375 阅读 · 3 评论 -
链表排序(空间复杂度为O(1)算法)
链表排序(空间复杂度为O(1)算法)原创 2023-02-21 13:17:17 · 893 阅读 · 0 评论 -
复制带随机指针的链表又名深度拷贝
复制带随机指针的链表又名深度拷贝原创 2023-03-17 00:30:21 · 271 阅读 · 0 评论 -
链表与顺序表优差点
链表与顺序表优差点原创 2023-03-06 22:16:15 · 73 阅读 · 0 评论 -
堆结构的细节处理(向上调整与向下调整)
堆结构的向下调整与向上调整一些细节原创 2023-03-10 19:52:04 · 199 阅读 · 2 评论 -
时间复杂度
个人文章原创 2023-02-19 15:37:00 · 87 阅读 · 0 评论 -
vector【实现】:迭代器失效以及非法的间接寻址、深拷贝中的浅拷贝。
1)迭代器失效2)非法的间接寻址3)深拷贝中的浅拷贝。原创 2023-05-16 17:59:39 · 1325 阅读 · 1 评论 -
vector模拟实现
【代码】vector模拟实现。原创 2023-05-16 13:49:13 · 121 阅读 · 0 评论 -
哈希桶的增删查改简单实现
个人简单笔记。什么是哈希桶呢?这是一个解决哈希数据结构的一种解决方法,在STL中的unorder_map与unorder_set的底层结构就是使用它来实现的。原创 2023-07-03 20:10:51 · 498 阅读 · 1 评论 -
树的前中后序遍历-非递归的迭代写法
就是要我们非递归其实就是模仿递归的写法,类如递归一样遍历一棵树,但是却不是递归的写法,防止栈溢出。原创 2023-06-17 23:41:10 · 367 阅读 · 0 评论 -
reverse_iterator反向迭代器的实现
根据我们的认为下(我真的是只有认为)rend()、end()、begin()、rbegin(),是这样的指向设计。只要是允许双向迭代器(bidirectional iterator)都是这样使用反向迭代器的。我们的利用迭代器遍历我的list是都是从(1)遍历的(5)最后it指向head,结束遍历。如果重新写list反向迭代器,是没有必要的,我们会发现我们的反向迭代器行为是与正向相反的。将我们的反向迭代器指向改成了这样,那么我们的访问数据这是个问题。反向迭代器遍历反向是由数据(5)遍历到(1)的。原创 2023-07-20 16:07:54 · 149 阅读 · 2 评论 -
哈希的应用->布隆过滤器
这个是基于位图的一个超级牛皮的一个数据结构。举个例子,假设我们创建Steam账号,我们的账户名字是不允许重复的,所以我们需要找到一个没有人使用过的名字,但是我们得知道现在这个名字是否有人用过,就得去访问服务器数据库查询名字是否被使用,由于服务器的交互远程的方式,所以我们“名字”这个数据需要去服务器中查询是否重复。但是如果一个名字就要直接访问服务器存储空间,效率是底下的,数据在服务器是以磁盘方式存储,在远端又是磁盘存储,访问速度大大降低,你也不想一个名字访问这么久吧?原创 2023-07-12 14:14:22 · 176 阅读 · 1 评论 -
哈希的应用->位图
ps:左移位并不是向左移动位,而是低数据位向高数据位挪动。原创 2023-07-11 21:06:56 · 320 阅读 · 3 评论 -
AVL树原理以及插入代码讲解(插入操作画图~细节)
AVL 树是一种平衡搜索二叉树,得名于其发明者的名字( Adelson-Velskii 以及 Landis)。(可见名字长的好处,命名都能多占一个字母出来)。我们以SGI版本AVL树先来查看树中每个结点内容。左子树与右子树指针我们不做过多介绍。我们存储AVL树是一种存储key_value数据的树,所以我们使用pair库中类型存储数据。原创 2023-06-20 00:29:35 · 980 阅读 · 4 评论 -
带你见见红黑树-概念+插入篇
写的不好,见谅~原创 2023-06-23 16:00:41 · 224 阅读 · 3 评论 -
红黑树-迭代器实现
这时我们在it++,当前结点没有右子树返回上级,但是我们的上级结点1已经被访问过了,所以我们需要在当前结点右子树为空的时候返回上级需要判断。然后再次it++,当前结点存在右子树,it来都右子树的最左结点(没有2结点没有左子树,那么自己就是最左结点)。虽然看图我们知道下一个我们是遍历1结点,但是我我们并不知道0的右边有没有东西,所以我们需要判断。会发现我们遍历的时候我们迭代器是根据红黑树的最左边结点进行遍历数据的。当我们没有当前结点没有右子树就会访问当前结点的上层结点。迭代器自减就是和自增反向的逻辑。原创 2023-06-24 23:33:19 · 262 阅读 · 1 评论