自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 红黑树的底层原理实现

4.对于每个结点,从该结点到其所有后代叶节点的简单路径上,均 包含相同数目的黑色节点。else //叔叔不存在或者存在且为黑。else //叔叔不存在或者存在且为黑。//存在不相等的黑色节点的数量。//叔叔存在且为红,变色即可。5.每个叶子结点都是黑色的(此处的叶子结点指的是空节点)//parent 的颜色是黑色,就结束了。3.如果一个节点是红色的,则它的两个孩子节点是黑色的。//存在连续的红色节点。AVL树:严格平衡因子。红黑树:近似平衡因子。

2024-05-17 23:54:27 549

原创 关于平衡二叉搜索树中的AVL树

1、AVL树是按照搜索树规则进行插入的2、更新插入节点的祖先节点的平衡因子(1)插入父亲的左边,父亲的平衡因子--(2)插入父亲的右边,父亲的平衡因子++(3)父亲的平衡因子 == 0,父亲所在的子树高度不变,不再继续往上更新,插入结束了(3)父亲的平衡因子 == 1 or -1,父亲所在的子树高度变了,继续往上更新(3)父亲的平衡因子 == 2 or -2,父亲所在的子树不平衡了,需要旋转处理了。

2024-05-12 01:27:40 593

原创 map、set

map<string,string> dict2 = {{"left","左边"},{"right","右边"},{"string","字符串"}};dict.insert(pair<string,string>("left","左边"));pair<string,string> kv2 = {"string","字符串"};map<string,string> kv1("sort","排序");dict.insert(make_pair("right","右边"));sort是快排,快排不稳定。

2024-04-29 14:16:30 229

原创 二叉搜索树

else if(cur->_right == nullptr)//右为空。else if(cur->_right == nullptr)//右为空。if(cur->_left == nullptr)//左为空。if(cur->_left == nullptr)//左为空。cout << "查无此单词" << endl;//替换法:找一个节点替代你,左子树最大节点或者右子树最小节点。//替换法:找一个节点替代你,左子树最大节点或者右子树最小节点。private: //套一层壳。

2024-04-28 13:14:12 284 2

原创 理解string

if(len == npos || pos > = _size - len) //【写成pos + len>= _size】有溢出风险。//:_str(new char [strlen(str)+1]) //这里strlen调用了三次。【智能指针】引用计数:析构时检查引用计数,如果减完以后计数 == 0 代表当前是最后一个管理资源的对象,那就释放。发生写时拷贝:检查引用计数,如果 == 1,说明资源是自己独占的,不用拷贝。

2024-03-25 21:22:40 601

原创 数据结构-排序

i += gap) //每组进行的循环,间隔为gap。if (tmp < a[end]) // 如果 tmp 小于前面的元素,则将前面的元素后移。if (left >= right) // 左右边界相等或左边界大于右边界,直接返回。//把现在的数标记为mini。//把现在的数标记为maxi。if (maxi == begin) //这里做出判断是为了防止。while (end >= 0) // 从当前元素开始向前遍历。// [begin, mid][mid+1, end]归并。

2024-01-17 20:15:24 355 1

原创 关于Linux的一些基本的操作指令

查看当前路径。

2023-11-29 14:20:34 37 1

原创 数据结构第三课:链表

相对于顺序表这种存放这连续内存地址的而言,每次都需要扩容然而扩容又有很多缺点:1、如果扩容扩少了,就需要多次扩容2、如果扩容扩多了,那又会造成空间浪费这个时候我们就要想到链表,因为链表和顺序表不一样链表是由一个个不同的空间组成的,他们在物理结构上是不连续的,但是在逻辑结构上是连续的由于单项无头结点不循环链表最难,所以我们从这个开始讲起。

2023-11-20 23:54:43 22 1

原创 关于c语言的基础内容做一个大概的知识框架构建

自定义类型就是自己定义用来方便表示的类型:有结构体、枚举、联合体等__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则为未定义。

2023-11-10 19:37:09 62 1

原创 数据结构第二课:顺序表

加入所占的20个字节的空间不足,它会在其他空间地址处申请一块21字节的空间,然后把数据。

2023-10-30 11:23:51 32 1

原创 数据结构——时间复杂度和空间复杂度

时间复杂度的定义:算数的复杂度是一个函数,它定量描述了算法的运行时间一个算法执行所花费的时间,从理论上是不能够算出来的,只有你在机器上跑出来,才可以知道。

2023-10-27 20:54:10 26 1

原创 【无标题】

if (sum + tot > target) { //如果sum + tot > target,说明当前的值已经超过了i的平方,因此退出循环。int punishmentNumber(int n) { //函数punishmentNumber用来遍历1到n所有的数,找出符合条件的数,并将其平方的值加到res中返回。i*的十进制表示的字符串可以分割成若干连续子字符串,且这些子字符串对应的整数值之和等于i。// target表示i的值,即要判断是不是i的平方。

2023-10-26 00:13:13 33

原创 寻找十个数中的最大值

for (i = 0;i++)//循环增加,直到十个数。for (i = 1;i++)//循环增加,直到十个数。//先给数组一个定义。if (arr[i] > max)//找最大值。//定义最大值的初始化。//设置数组,有十个数。

2023-08-05 21:48:11 52 1

原创 代码对于素数的检索,以及程序的优化

再次基础上,为了减轻算法压力,提高运算效率,有如下修改。素数:只含有关于自身以及和一有关的公因数。

2023-07-25 22:38:05 20

原创 关于分支和循环

goto是指在起点处输入“goto”,传送点输入"goto next",意味着跳到该处,但不建议多次使用,会导致整个程序进行乱码。continue是指跳过本次循环,进行下一次循环。break是指中止该循环,回到上一个循环。

2023-07-25 14:43:35 34

原创 一枚c语言小萌https://mp.csdn.net/edit新

我是一名来自高考完的大学生,虽然不太厉害,但我相信在四年内我会努力学习计算机,我目前准备在四年内努力备战考研,未来就业方向为Linux嵌入式开发工程师,每天都会抽出两小时的时间来学习,目前最想就业的一个公司是百度的嵌入式工程师。

2023-07-20 22:18:58 49

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除