![](https://img-blog.csdnimg.cn/dbdd7fa6c60241fba742c64d6e372992.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 65
记录数据结构笔记~
X.Dragon
前PLA队员 在校大学生 C+方向,主修C+、Linux、计算机网络、网络编程、MySQL,分享学习记录,期待大家一起交流和学习...
展开
-
一篇博客搞定海量数据处理之布隆过滤器(附测试代码+核心思想讲解)
引言我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的?用服务器记录了用户看过的所有历史记录,当推荐系统推荐新闻时会从每个用户的历史记录里进行筛选,过滤掉那些已经存在的记录。如何快速查找呢?用哈希表存储用户记录,缺点:浪费空间用位图存储用户记录,缺点:位图一般只能处理整形,如果内容编号是字符串,就无法处理了。将哈希与位图结合,即布隆过滤器。原创 2023-06-09 17:16:28 · 441 阅读 · 0 评论 -
一篇博客搞定海量数据处理之位图算法(附测试代码+核心思想讲解)
位图(Bitmap)是一种数据结构,用于表示一组元素的集合,其中每个元素占据一个位或一个比特位。在位图中,每个位的值表示相应元素的存在与否或某种状态。位图通常用于解决某些需要高效地判断元素是否存在的问题,尤其是在元素的取值范围较小且空间利用效率要求较高的情况下。它的优势在于可以用较小的空间消耗来表示大量的元素,并能够在常数时间内进行元素的插入、删除和查询操作。在位图中,通常使用一个数组来表示位的序列,每个元素(通常是一个字节)中的每一位都对应一个元素。原创 2023-06-07 14:51:07 · 687 阅读 · 1 评论 -
“哈希表的精髓:深入探索哈希桶数据存储与检索“(附源码+解析)
Insert(const T& data) 函数的复杂度:平均情况下,插入操作的时间复杂度为 O(1),即常数时间。这是因为哈希桶使用拉链法解决冲突,将数据存储在链表中,插入操作只需在对应的链表头部插入新节点。最坏情况下,插入操作的时间复杂度为 O(n),其中 n 是哈希桶中元素的个数。当哈希桶的负载因子超过阈值,需要进行扩容,将所有元素重新哈希到新的表中。Find(const K& key) 函数的复杂度:平均情况下,查找操作的时间复杂度为 O(1),即常数时间。原创 2023-06-05 13:44:18 · 1840 阅读 · 0 评论 -
红黑树封装实现Map和Set(C++、数据结构)
在C++的标准库中,map和set容器是通过封装红黑树实现的。这些容器使用红黑树作为底层数据结构来存储和组织元素,以提供高效的查找、插入和删除操作。红黑树作为一种自平衡二叉搜索树,具有良好的平衡性质和高效的操作复杂度。在map容器中,每个元素由一个键(key)和一个值(value)组成,而在set容器中,每个元素仅由一个键组成。这些容器利用红黑树的特性来维护元素的有序性,并通过红黑树的搜索、插入和删除操作来支持其功能。原创 2023-05-31 14:59:34 · 44 阅读 · 0 评论 -
揭秘哈希表:高效数据存储与检索的利器(附代码+详细解析)
哈希本质上建立一种映射关系,按映射关系去查找数据效率会快得多。参考:链接:来吧!一文彻底搞定哈希表!原创 2023-05-30 12:21:09 · 215 阅读 · 0 评论 -
C++手撕AVL树
由于要实现AVL树的增删改查,所以定义AVL树的节点,就需要定义parent,否则插入节点时,不知道要链接到树里面哪个节点下面。//左子树 AVLTreeNode < K , V > * _right;//右子树 AVLTreeNode < K , V > * _parent;//父亲 int _bf;//平衡因子 pair < K , V > _kv;//节点 AVLTreeNode(const pair < K , V > & , kv) {} };转载 2023-04-27 13:38:52 · 58 阅读 · 0 评论 -
C++中Map的使用及介绍+operator[ ]的底层实现(超详细版本+代码+底层剖析)
链接:Map帮助文档主要介绍遍历和输出打印。原创 2023-04-26 16:57:48 · 1264 阅读 · 0 评论 -
C++中set使用及介绍(超详细+入门+代码解析)
C+帮助文档:链接:Set的文档介绍set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。原创 2023-04-24 17:31:44 · 5317 阅读 · 0 评论 -
二叉树超全面试题,涵盖各类题型,刷题看这就够啦!(超详细版本 附解题思路+代码)
二叉树面试题超详细版本1.根据二叉树创建字符串题目题解代码实现2.二叉树的层序遍历1题目题解代码实现3.二叉树的层序遍历2题目题解4.二叉树的最近公共祖先题目题解1.暴力法逻辑代码实现时间复杂度分析2.找路径法逻辑代码实现时间复杂度3.遍历法逻辑代码实现时间复杂度5.二叉树搜索树转换成排序双向链表题目题解代码实现:6.根据一棵树的前序遍历与中序遍历构造二叉树题目题解代码实现7.根据一棵树的中序遍历与后序遍历构造二叉树题目题解代码实现8.二叉树的前序遍历,非递归迭代实现题目题解9.二叉树中序遍历 ,非递归迭代原创 2023-04-21 18:42:41 · 170 阅读 · 0 评论 -
搜索二叉树实现和讲解包含递归和非递归写法!(超详细解读+源代码)
二叉搜索树知识体系+代码实现超详细介绍基本操作实现构造函数析构函数插入函数非递归写法实现逻辑图:递归写法逻辑实现插入函数总结删除函数非递归写法递归写法总结介绍二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树基本操作实现构造函数普通构造函数用编译期生成的就够用,我们主要实现拷贝构造函数,方便后续开发。需要注意的是:当我们自主原创 2023-04-17 18:03:58 · 202 阅读 · 0 评论 -
数据结构---队列
C语言实现队列基本操作。原创 2022-10-08 17:36:55 · 94 阅读 · 0 评论 -
数据结构---栈
1.栈的概念及结构2.栈的实现3.用C语言实现栈 子系统。原创 2022-10-08 14:40:10 · 58 阅读 · 0 评论 -
数据结构线性表操作系统
线性表系统原创 2022-09-25 22:17:09 · 265 阅读 · 0 评论 -
环形链表2
环形链表原创 2022-09-20 19:21:36 · 52 阅读 · 0 评论 -
数据结构、环形链表
数据结构 环形链表原创 2022-09-20 18:18:18 · 77 阅读 · 0 评论 -
相交链表
数据结构、相交链表原创 2022-09-20 17:05:53 · 44 阅读 · 0 评论 -
链表回文结构
链表回文结构、数据结构原创 2022-09-20 16:28:05 · 164 阅读 · 0 评论 -
合并两个有序链表
数据结构、合并链表原创 2022-09-18 12:15:27 · 207 阅读 · 0 评论 -
链表中倒数第K个结点||数据结构||单链表
数据结构、链表、原创 2022-09-17 18:06:16 · 92 阅读 · 0 评论 -
快慢指针||给定一个头结点为 head 的非空单链表,返回链表的中间结点
数据结构、快慢指针、链表的中间节点原创 2022-09-17 18:03:15 · 170 阅读 · 0 评论 -
数据结构||反转单链表
数据结构、单链表、链表反转原创 2022-09-17 16:10:18 · 82 阅读 · 0 评论 -
移除链表元素val
数据结构、移除链表元素、单链表原创 2022-09-17 15:47:36 · 140 阅读 · 0 评论 -
删除数组中重复的元素 C语言
数据结构原创 2022-09-05 17:57:54 · 1217 阅读 · 2 评论