数据结构
文章平均质量分 80
数据结构
蝎子莱莱xo
这个作者很懒,什么都没留下…
展开
-
数据结构 -- 顺序表
关于顺序表的概念、实现及其优缺点的介绍原创 2022-08-08 10:52:12 · 106 阅读 · 0 评论 -
数据结构 -- 链表
本文简单介绍了单链表和双向带头循环链表的结构、实现即特点原创 2022-08-08 16:28:59 · 117 阅读 · 0 评论 -
数据结构 -- 栈和队列
本文主要介绍了栈和队列的结构、实现和特点。原创 2022-08-09 12:04:51 · 303 阅读 · 0 评论 -
数据结构 -- 二叉树
二叉树、遍历、堆、堆排序、二叉树链式结构、二叉树顺序结构实现原创 2023-01-15 17:17:19 · 113 阅读 · 0 评论 -
排序 -- 选择排序、冒泡排序和堆排序
本文简单介绍了三种排序方式:选择排序、冒泡排序和堆排序。原创 2022-08-05 17:26:05 · 277 阅读 · 1 评论 -
排序 -- 插入排序和希尔排序
本文简单介绍了直接插入排序和希尔排序的思想、代码与特性。原创 2022-08-05 12:08:33 · 96 阅读 · 0 评论 -
排序 -- 快速排序
快速排序是一种效率很高的排序算法,本文主要介绍了快速排序的基本写法及挖坑法、前后指针法、非递归法等多种方式的实现。原创 2022-08-06 10:07:09 · 60 阅读 · 0 评论 -
排序 -- 归并排序与计数排序
本文主要介绍了归并排序的递归写法和非递归写法,以及计数排序的实现。原创 2022-08-06 12:31:35 · 119 阅读 · 0 评论 -
C++知识点 -- 二叉搜索树
二叉搜索树原创 2023-03-22 20:23:10 · 65 阅读 · 0 评论 -
C++知识点 -- AVL树
此时,根节点左子树的右侧节点(60)的平衡因子为-1,先对30进行左单旋,将该树变为单纯的左边高,再对90进行右单旋,达到平衡;subRL的平衡因子为-1,双旋后,subR的平衡因子需更新为1,parent的平衡因子需更新为0;subRL的平衡因子为1,双旋后,subR的平衡因子需更新为0,parent的平衡因子需更新为-1;这种情况的平衡因子更新为:根节点为0,根节点左孩子节点为-1,右孩子节点为0;这种情况的平衡因子更新为:根节点为0,根节点左孩子节点为0,右孩子节点为1;判断该树是否为平衡的;原创 2023-04-03 10:57:05 · 144 阅读 · 0 评论 -
C++知识点 -- 红黑树
benchmark引用传参,走完第一条路经后,benchmark是0,就把blackNum给benchmark,等走完第二条路径后,benchmark是上一条路径的引用,不是0了,而是上一条路径的黑色节点数量,就可以作为基准值了;第二种:如果u节点存在,则其一定是黑色的,那么cur节点原来的颜色一定是黑色的,现在看到其是红色的原因是因为cur的子树在调整的过程中将cur节点的颜色由黑色改成红色。红黑树用枚举类型来表示每个节点的颜色,使用三叉链来作为基本的结构,节点中的数据还需包含一个节点颜色;原创 2023-04-13 18:14:23 · 94 阅读 · 0 评论 -
C++知识点 -- 使用红黑树封装map和set
typename是告诉编译器这是类型名,不是静态变量名(因为静态变量也可以这样直接从类域中取);原创 2023-04-13 21:53:03 · 91 阅读 · 0 评论 -
C++知识点 -- 哈希表
线性探测在某个位置冲突很多的情况下,会出现效率低下的情况,此时可以使用二次探测,当发生哈希冲突时,并不是从冲突位置依次向后探测,而是每次向后探测 i ^ 2个位置,每次发生哈希冲突时,都++i;其中,State是用来表明每个哈希单元的状态的,EMPTY表示该单元是空的,EXIST表示该单元已存储了数据,DELETE表示该单元的数据已经被删除;哈希删除时,不能随便删除哈希表中已有的元素,若直接删除元素,将会影响其他元素的搜索,因此线性探测采用标记的伪删除法来删除一个元素;原创 2023-04-17 19:23:54 · 64 阅读 · 0 评论 -
C++知识点 -- 哈希的应用
同样可以使用哈希切分来将大文件切分为小文件,那么相同的IP地址一定会进入相同的小文件中,我们只需依次使用map<string, int>对每个小文件统计次数即可;在进行字符串去重时,如果只将字符串通过哈希算法转换为整型值,不可避免地会出现相同码值的字符串,就会造成误判,这时就需要引入布隆过滤器;可以使用多个位表示一个数据的布隆过滤器,每个位被选中后,次数就+1,删除时该位的次数就-1,这样一个数据的删除就不会影响到其他数据了;但是如果这样设计,就会消耗更多的空间,布隆过滤器的优势就削弱了;原创 2023-04-19 15:20:15 · 176 阅读 · 0 评论 -
C++知识点 -- 使用Hash开散列封装unordered系列容器
哈希表同样是通过第二个模板参数T来确定封装的是map还是set,unordered_map第二个参数传的是pair,unordered_set第二个参数传的是K;++先在当前桶中寻找下一个节点,当前桶找完了,就去寻找下一个有数据的桶;KeyOfT这个模板参数是仿函数,是用来取出T类型数据中的Key的;涉及到比较_data中的key的地方,都需要使用仿函数取key;返回值改为pair<iterator, bool>;返回值改为iterator,返回待寻找元素的迭代器;哈希表的迭代器是单向迭代器,只支持++;原创 2023-04-17 21:26:08 · 92 阅读 · 0 评论