- 博客(71)
- 收藏
- 关注
原创 Linux~~~基础指令
(a以及a后面的都会删除),但需要先回到a的上一级,才可以删除a以及a后面的,因为要指定相对路径或者绝对路径,直接写a的话是相对路径,但是如果现在处于a,在当前的目录找不到a的,这样就出错了】在执行指令时,可以是单纯的指令,也可以是指令+选项,选项可以让同一个指令展现出不同的功能(选项一般前面带一个横杆,指令和选项之间使用一个空格)如果想看root的113的内容怎么办,使用相对路径,先回到上一级root,再去113,只能采取相对/绝对路径。若在指定文件的内容之后,再写入内容而不清空原来的内容,则使用。
2025-09-29 19:26:53
573
原创 C++红黑树
红黑树摘要 红黑树是一种自平衡二叉查找树,通过颜色规则确保近似平衡。其核心规则包括:根节点必黑、红色节点不能相邻、所有路径黑节点数相同。这些规则保证了最长路径不超过最短路径的两倍,维持了O(log n)的时间复杂度。 红黑树插入涉及多种情况处理: 变色情况:当父节点和叔节点都为红时,进行变色处理 单旋+变色:当叔节点不存在或为黑且父子节点在一条直线上时 双旋+变色:当叔节点不存在或为黑且父子节点在折线上时 相比AVL树,红黑树对平衡要求更宽松,旋转次数更少,但同样保证了高效性。其实现通过颜色标记和旋转操作来
2025-09-18 17:53:37
905
原创 AVL树---平衡二叉查找树
平衡二叉查找树(AVL树)摘要 AVL树是一种自平衡二叉查找树,通过平衡因子(右子树高度减左子树高度)确保树的高度平衡。当插入或删除节点导致平衡因子超出[-1,1]范围时,通过旋转操作(左旋、右旋或双旋)恢复平衡。旋转分为单旋和双旋两种情况:直线型不平衡(同号)采用单旋,折线型不平衡(异号)采用双旋。AVL树保持接近完全二叉树的结构,确保增删查改操作的时间复杂度为O(logN)。实现时需维护每个节点的平衡因子,并在插入后沿路径向上更新,必要时进行旋转调整。
2025-09-15 07:00:00
894
原创 C++之多态
动态多态通过虚函数和继承机制实现,核心是运行时类型识别和虚函数表的动态调度。多态的核心在于通过基类指针或引用调用虚函数时,实际调用的是派生类的函数,从而实现不同的行为。
2025-05-17 19:02:44
1312
11
原创 C++之“继承”
C++中的继承是面向对象编程的三大特性之一,允许派生类复用基类的成员变量和函数,从而减少代码冗余。继承通过class 派生类 : 继承方式 基类的语法实现,public继承最常用。C++支持多继承,但多继承容易引发菱形继承问题,导致数据冗余和二义性。虚继承(virtual)是解决菱形继承问题的机制,确保共同基类只被继承一次。组合(has-a关系)是另一种代码复用方式,通常比继承更灵活且耦合度低,优先推荐使用组合。
2025-05-08 21:43:54
1329
10
原创 构造和赋值的简单写法
当第三种swap与算法库的swap同时存在时(第三种就相当于普通函数,算法库的swap就是一个函数模板,它还需要先走实例化),这样对比之下,第三种就相当于预制菜,直接吃,算法库的就像是从做菜开始–>吃。最终:this指向的是没交换前tmp指向的内容(即str2),tmp是nullptr(tmp是在作用域才构造的,当出作用域的时候,就会调用析构销毁tmp)这个函数是在string类里面的,它的第一个参数是隐藏的this,第二个是在参数列表的那个。str1传给了隐藏的this,str2传给了s。
2024-12-04 08:15:00
1592
原创 string接口的模拟实现
当我们想把声明写在.h里面,定义写在.cpp里面的时候这样写会报错,所以我们需要在string.cpp里(1)写上类域(2)再写一下命名空间一个命名空间是可以写多个的,多个文件的同一个命名空间会被合并为(认为)一个命名空间的已经声明和定义了,还有一个需要注意的内容是,缺省值只能在声明的时候给(定义那里不可以写缺省值)。但是char* _str的缺省值不可以是nullptr,可以给一个'\0'或者直接“”(字符串默认后面会加'\0'的)
2024-11-22 18:22:52
819
原创 接口小练习
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。输出描述:输出一个整数,表示输入字符串最后一个单词的长度。示例1输入:hello nowcoder输出:8注意点不管是scanf还是cin,都支持从流里面连续的输入东西。我们输入的东西会先输入到缓冲区(但我们有可能输入多个值,所以默认空格和换行是多个值之间的分割)
2024-11-21 22:54:57
505
原创 构造小练习
先走全局,再main函数,而局部静态的函数是走到它那里才开始初始化。所以先构造C,再A,B,最后D。所以先析构后定义的局部的函数B,先定义的A,然后析构后定义的,生命周期是全局的函数:D,先定义的C。先析构局部的,再析构全局的。(全局函数和静态函数的生命周期是全局]。
2024-11-01 22:17:02
368
原创 链表题目训练
链表的相交和数学的直线相交不一样。因为链表只要有一个结点是一样的,那next也是一样的,之后都是相同的。第六题:回文结构(正序和倒序,顺序一样)第三题:链表的中间结点。第一题:移除链表元素。第四题:合并有序列表。
2024-09-10 22:42:45
369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅