- 博客(66)
- 收藏
- 关注
原创 AVL树实现(沉淀中)
AVL树是一种自平衡二叉搜索树,通过控制左右子树的高度差(不超过1)来保持平衡。它得名于其发明者Adelson-Velsky和Landis。AVL树通过引入平衡因子(右子树高度减去左子树高度)来监控树的平衡状态。插入节点时,AVL树首先按照二叉搜索树的规则插入,然后更新从新节点到根节点的平衡因子。如果更新过程中发现不平衡,则通过旋转操作(左旋、右旋、左右双旋、右左双旋)来恢复平衡。旋转操作不仅使树重新平衡,还降低了子树的高度,确保不会影响上层节点的平衡。AVL树的高度始终保持在O(logN),使得增删查改操
2025-05-17 17:19:33
638
原创 红黑树实现(沉淀中)
红黑树是一种自平衡的二叉搜索树,通过在每个节点上增加颜色标记(红或黑)并遵循四条规则来确保树的平衡性。这些规则包括:每个节点非红即黑、根节点为黑、红色节点的子节点必须为黑、从任一节点到其所有空子节点的路径包含相同数量的黑色节点。红黑树通过这些规则确保最长路径不超过最短路径的两倍,从而保持近似平衡,其增删查改操作的时间复杂度为O(logN)。红黑树的实现包括节点结构定义、插入操作(涉及变色和旋转)、查找操作以及验证规则的过程。插入操作根据父节点和叔节点的颜色分为不同情况处理,确保树的平衡性。红黑树相较于AVL
2025-05-17 17:18:06
845
原创 异常(沉淀中)
异常处理是编程中用于管理运行时错误的一种机制,允许程序在检测到错误时,将错误信息传递给特定的处理模块进行处理,从而实现错误的检测与处理分离。与C语言中的错误码相比,异常通过抛出对象的方式提供更全面的错误信息。异常的抛出和捕获过程涉及栈展开,即程序在抛出异常后,会沿着调用链查找匹配的catch子句,若未找到匹配项,则程序终止。异常处理中,允许从派生类向基类类型的转换,便于捕获多种异常。此外,异常可以重新抛出,允许在某些情况下对错误进行分类处理,并将无法处理的异常传递给外层调用链。通过异常机制,程序能够更灵活地
2025-05-11 23:00:03
1039
原创 进程(沉淀中)
本文主要介绍了计算机进程的基本概念及其管理机制。首先,通过冯诺依曼体系结构阐述了计算机硬件的基本组成和数据流动方式,强调了CPU与内存之间的交互。接着,探讨了操作系统的核心功能,即作为软硬件资源的管理者,通过系统调用为用户程序提供执行环境。操作系统通过描述和组织被管理对象来实现高效管理,其中进程控制块(PCB)是描述进程属性的数据结构。在Linux系统中,PCB表现为task_struct,包含进程的标识符、状态、优先级等信息,并通过链表形式组织所有进程。最后,文章介绍了如何查看和管理进程,包括通过系统调用
2025-05-11 22:58:48
77
原创 Linux环境基础开发工具使用(沉淀中)
(1)在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.(2)但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.(3)软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.
2025-04-25 14:46:55
175
1
原创 Linux 常见指令2(沉淀中)
(1)目录的可执行权限是表示你可否在目录下执行命令。(2)如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)(3)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限(4)所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。以上就是权限的全部内容了,非常重要,大家可以反复观看,进行理解使用。
2025-04-25 14:46:04
27
原创 map和set的使用
set的声明如下,T就是set底层关键字的类型• set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模版参数• set底层存储数据的内存是从空间配置器申请的,如果需要可以⾃⼰实现内存池,传给第三个参数。• ⼀般情况下,我们都不需要传后两个模版参数。• set底层是⽤红⿊树实现,增删查效率是 ,迭代器遍历是⾛的搜索树的中序(左根右),所以是有序的。O(logN)
2025-04-06 12:12:24
1190
原创 二叉搜索树(沉淀中)
以上就是二叉搜索树的全部内容了,重点在删除部分,可以反复观看, key/value搜索场景也很重要,在生活中非常的常见。喜欢博主写的内容可以一键三连支持博主。
2025-04-06 12:11:42
929
原创 多态(沉淀中)
多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。⽐如Student继承了Person。Person对象买票全价,Student对象优惠买票。以上就是多态的全部内容,喜欢本篇内容,可以一键三连支持博主。
2025-04-03 12:34:26
1091
原创 模版进阶(沉淀中)
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。本质:不存在链接要去找的问题,定义就在.h,在编译的时候就已经确定地址了。a.h//函数模版【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。
2025-04-03 12:33:36
970
原创 stack和queue(沉淀中)
1#include<stack>//后进先出#include<queue>//先进先出int main()st.push(1);st.push(2);st.push(3);st.push(4);while (!st.pop();return 0;queue.h#include<queue>//先进先出public:queue() {}private://咱们实现用到的不是listqueue.cpp1//#include<stack>//后进先出。
2025-04-02 15:22:39
984
原创 继承(沉淀)
继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称派⽣类。继承呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复⽤,继承是类设计层次的复⽤。1//普通public://进入校园等身份验证//....//学习//..protected://姓名//地址//电话//年龄int _stuid;// 学号。
2025-04-02 15:21:49
888
原创 vector(沉淀)
vector参考文献以上就是vector的全部内容了,写了好多天,一次没看懂,可多次阅读文章。喜欢博主写的内容,可以一键三连支持博主。
2025-03-18 23:23:41
843
1
原创 String类(沉淀中),非常详细,进来看就是赚到!!!!!
以上就是string的全部内容了,关于string的使用和模拟实现,深浅拷贝较难,请大家多次阅读文章。喜欢博主写的文章可以一键三连。
2025-03-09 16:05:34
1092
原创 1005.k次取反后最大化的数组和(贪心)思路解析+源码
以上就是1005.k次取反后最大化的数组和(贪心)思路解析+源码的全部内容了,喜欢博主写的文章可以一键三连支持博主。
2025-02-24 23:38:28
62
原创 专题三 二分查找算法,超详细快来看啊!!!!
查找左区间查找右区间口诀:当下面出现-1的时候,上面就+1 ,分类讨论的代码,就提论题即可这就是专题三 二分查找算法的全部内容了。喜欢博主写的内容可以一键三连支持博主!!!
2025-02-23 14:43:18
1414
原创 走向STL(沉淀中)
是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。以上就是走向STL全部内容了,喜欢这篇博客的可以一键三连,支持博主!!!!
2025-02-22 00:06:52
633
原创 122.买股票的最佳时机II(贪心)源码+详细解析
以上就是122.买股票的最佳时机II(贪心)源码+详细解析的全部内容了,喜欢博主写的这篇文章,可以一键三连支持博主。有啥问题在评论区留言,博主会及时回应。
2025-02-20 01:35:55
203
原创 300.最长递增子序列(动态规划)
以上就是300.最长递增子序列(动态规划)的全部内容了。后续还有300.最长递增子序列(贪心算法),注意up主更新时间。喜欢博主的可以一键三连,支持博主。
2025-02-18 01:24:56
341
原创 初触模板(沉淀中)
class 类模板名// 类内成员定义// 类模版public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误,具体原因后面会讲// 扩容++_size;以上就是摸板的全部内容了,喜欢博主写的内容可以一键三连,支持博主。欢迎大家在评论区留言。
2025-02-16 21:54:15
699
原创 如何学好内存管理,快来看这篇文章吧!!!
int main()//new/delete 和malloc/free最大区别 new/delete 对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;//内置类型是几乎一样的free(p3);delete p4;free(p5);return 0;
2025-02-16 21:53:30
618
原创 超详细的数据结构3(初阶C语言版)栈和队列。
以上内容就是超详细的数据结构3(初阶C语言版)栈和队列的全部内容,喜欢博主内容的可以一键三连,支持博主!!
2025-02-11 23:21:25
824
原创 376摆动序列(贪心算法)分析+源码+证明。祝大家新年快乐,新年第一篇博客!!!!!
以上就是376摆动序列(贪心算法)分析+源码+证明的全部内容了。喜欢博主内容的可以一键三连。最后,祝大家新年快乐,天天开心。
2025-02-06 13:17:03
75
原创 项目实践:贪吃蛇-上 必须要掌握的知识点(Win32 API)!!!!
Windows 这个多作业系统除了协调应⽤程序的执行、分配内存、管理资源之外, 它同时也是⼀个很⼤的服务中心,调⽤这个服务中心的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程序达到开启视窗、描绘图形、使⽤周边设备等目的,由于这些函数服务的对象是应⽤程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows32位平台的应用程序编程接口。
2025-01-25 22:51:31
773
原创 179最大数(贪心算法)分析+源码+证明
以上就是179最大数(贪心算法)分析+源码+证明的全部内容了,非常详细。给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。证明出这道题满足:1.完全性2.反对称性3.传递关系。补充知识:全序关系(要满足:1.完全性2.反对称性3.传递关系)3.优化:(1)把数转化为字符串,然后拼接字符串,比较字典序。思考:1.贪心在哪体现:体现在比较,确定谁前谁后这个过程。正常排序的本质:确定元素先后顺序:谁在前,谁在后。2.这个排序规则,为啥能排序:具有传递性。
2025-01-20 23:50:57
1505
原创 2280将数组和减少的最少操作次数(贪心算法) 分析+源码+证明
以上就是将数组和减少的最少操作次数(贪心算法) 分析+源码+证明的全部内容了。非常的详细,喜欢博主写的这篇博客,可以一键三连,鼓励博主。
2025-01-20 22:34:05
475
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人