c++数据结构
文章平均质量分 86
数据结构
憧憬成为原神糕手
我要成为原神糕手,顺便写写代码。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树 和 二叉树 和 堆 之间的关系
一个结点含有的子树的个数称为该结点的度;如上图:A的为6.:度为0的结点称为叶结点;如上图:B、C、H、I...等结点为叶结点:度不为0的结点;如上图:D、E、F、G...等结点为分支结点:若一个结点含有子结点,则这个结点称为其子结点的父结点;如上图:A是B的父结点:一个结点含有的子树的根结点称为该结点的子结点;如上图:B是A的孩子结点:具有相同父结点的结点互称为兄弟结点;如上图:B、C是兄弟结点:一棵树中,最大的结点的度称为树的度;如上图:树的度为6。原创 2024-06-11 19:56:24 · 1009 阅读 · 0 评论 -
vector 常见函数
如果 n 小于当前容器大小,则内容将减少到其前 n 个元素,删除超出此部分的元素(并销毁它们)。也大于当前容器容量,则会自动重新分配分配的存储空间(capacity)。大于当前容器大小,则通过在末尾插入所需数量的元素来扩展内容,以达到。在所有其他情况下,函数调用不会导致重新分配,并且向量容量不受影响。的副本,否则,它们将进行值初始化.,则新元素将初始化为。从任意位置删除一个元素。原创 2024-09-03 14:50:44 · 684 阅读 · 0 评论 -
map和set和pair
一般情况下,我们都不需要传后两个模版参数。set底层是用红黑树实现,增删查效率是O(logN),迭代器遍历是走的搜索树的中序,所以是有序的。map,set 和 vector/list等容器的使用,STL容器接口设计,高度相似。map的声明如下,Key就是map底层关键字的类型,T是map底层value的类型,set默认要求Key支持小于比较,如果不支持或者需要的话可以自行实现仿函数传给第二个模版参数,map底层存储数据的内存是从空间配置器申请的。一般情况下,我们都不需要传后。原创 2024-11-05 20:39:42 · 960 阅读 · 0 评论 -
c++的 stack 和 queue(deque) 和 priority_queue 和 适配器
2.1. 队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。2.2 queue的使用3.1priority_queue的介绍优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用默认情况下priority_queue是大堆。3.2 priority_queue的使用。原创 2024-09-12 20:51:32 · 1087 阅读 · 0 评论 -
string的常用函数
擦除字符串的内容,该字符串将变为空字符串(长度为 0 个字符)。而cin>> 遇到空格(' ')就会停止输入。请求根据计划的大小更改调整空间的大小。在pos 位置 插入 字符 或 字符串。请求更改容量(capacity)可以参考返回值,判断是否相同。直到遇到 ‘\n’ 才会停止。rbegin 指向尾。计算分配的空间的大小。都是增加字符串的函数。原创 2024-08-24 16:33:47 · 2568 阅读 · 0 评论 -
二叉搜索树
那么这样的效率显然是无法满足我们需求的,我们后续课程需要继续讲解二叉搜索树的变形,平衡二叉搜索树AVL树和红黑树,才能适用于我们在内存中存储和搜索数据。二叉搜索树中可以支持插入相等的值,也可以不支持插入相等的值,具体看使用场景定义,后续。另外需要说明的是,二分查找也可以实现 O(logN)级别的查找效率,但是二分查找有。,因为这两个结点中任意一个,放到N的位置,都满足二又搜索树的规则。4.无法直接删除N结点,因为N的两个孩子无处安放,只能用替换法删除。2.最多查找高度次,走到到空,还没找到,这个值不存在。原创 2024-10-25 12:50:44 · 790 阅读 · 0 评论 -
c++_list
kw=liststd:: list列表列表是序列容器,允许对序列中任意位置的恒定时间插入和擦除操作,以及双向迭代。列表容器实现为双向链表;双向链表可以将它们包含的每个元素存储在不同且不相关的存储位置。排序在内部通过与指向其前面的元素的链接和指向其后元素的链接的每个元素的关联来保持。它们与非常相似:主要区别在于对象是单链表,因此它们只能向前迭代,以换取更小、更高效。与其他基本标准序列容器(arrayvector和deque。原创 2024-09-17 15:39:18 · 1232 阅读 · 0 评论 -
AVL树解析
2.AVL树实现这里我们引入一个平衡因子(balance factor)的概念,每个结点都有一个平衡因子,任何结点的平衡因子等于右子树的高度减去左子树的高度,也就是说任何结点的平衡因子等于0/1/-1。1.AVL树是最先发明的自平衡二叉查找树,AVL是一颗空树,或者具备下列性质的二叉搜索树:它的。在parent的左子树,parent平衡因子--,parent的平衡因子初始化为 0.在parent的右子树,parent的平衡因子++,这里是二叉搜索树的,简单的代码总结。太长了,随便写点了,脑子坏了!原创 2024-11-12 20:46:11 · 985 阅读 · 0 评论 -
红黑树简单讲解
红黑树是一棵二叉搜索树,他的每个结点增加一个存储位来表示结点的颜色,可以是红色或者黑色。通过对任何一条从根到叶子的路径上各个结点的颜色进行约束,,因而是接近平衡的。原创 2024-11-26 12:39:43 · 616 阅读 · 0 评论 -
数据结构排序合集(笔记)
插入排序:希尔排序(原创 2024-07-21 13:51:43 · 333 阅读 · 0 评论 -
哈希表以及封装unordered_map及其set
当key是string 等类型时,key不能取模,那么我们需要给其增加一个仿函数,这个仿函数支持把key转换成一个可以取模的整形,如果key可以转换为整形并且不容易冲突,那么这个仿函数就用默认参数即可,如果这个Key不能转换为整形,我们就需要自己实现一个仿函数传给这个参数。理想情况是找出一个好的哈希函数避免冲突,但是实际场景中,冲突是不可避免的,所以我们尽可能设计出优秀的哈希函数,减少冲突的次数,同时也要去设计出解决冲突的方案。断往后探测,直到寻找到下一个没有存储数据的位置为止。原创 2025-03-20 15:16:52 · 1208 阅读 · 0 评论
分享