- 博客(29)
- 收藏
- 关注
原创 [C++刷怪笼]:红黑树--更为优雅的二叉搜索树
红黑树是一种自平衡的二叉搜索树,总体而言,其自平衡的特性以及在时间复杂度方面的优势,在众多需要高效数据组织和操作的领域有着广泛且重要的应用,是一种非常经典且实用的数据结构。
2025-09-09 21:04:58
851
原创 [C++刷怪笼]:AVL树--平衡二叉查找树的先驱
AVL 树是一种自平衡二叉搜索树,它在二叉搜索树的基础上,通过特定的机制保证树的高度始终维持在一个相对平衡的状态,即任意节点的左右子树高度差的绝对值不超过 1。这个特性使得 AVL 树在进行插入、删除等操作后,依然能够保持较好的查找性能,时间复杂度稳定在 O(logn),其中 n 是树中节点的数量。总体而言,AVL 树以其良好的平衡性和稳定的操作复杂度,在众多需要高效数据处理的领域发挥着重要作用,尽管存在一定的缺点,但在合适的应用场景下能展现出明显的优势。
2025-09-08 21:24:42
922
原创 [C++刷怪笼]:set/map--优质且易操作的容器
•set的声明如下,T就是set底层关键字的类型•set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模版参数•set底层存储数据的内存是从空间配置器申请的,如需要可以⾃⼰实现内存池,传给第三个参数。•⼀般情况下,我们都不需要传后两个模版参数。•set底层是⽤红⿊树实现,增删查效率是 ,迭代器遍历是⾛的搜索树的中序,所以是有序的。OlogN•前⾯部分我们已经学习了vector/list等容器的使⽤,STL容器接⼝设计,⾼度相似,所以这⾥我们。
2025-09-07 21:29:27
956
原创 [C++刷怪笼]:搜索二叉树--便利的查找工具
总之,二叉搜索树是一种基础且重要的数据结构,理解它的原理、操作以及优缺点等,对于进一步学习更复杂的数据结构和算法有着重要的铺垫作用。
2025-09-06 21:27:39
1042
原创 C++刷怪笼(10)多态
上一篇文章我们对继承进行了细致的学习,作为C++三大特性中的另一大--多态,它也拥有灵活多变的作用来让我们的代码变得更加简洁,也能让我们能实现更多有用的快捷操作,接下来我们将对多态进行学习。多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。⽐如Student继承了Person。Person对象买票全价,Student对象优惠买票。实现多态还有两个必须重要条件:• 必须指针或者引⽤调⽤虚函数• 被调⽤的函数必须是虚函数。
2024-10-31 18:38:19
700
原创 C++刷怪笼(9)继承
前面我们对C++的STL容器进行了一系列的学习,相信大家肯定有收获吧,接下来我们来学习C++三大特性中最具有创造性的一个特性--继承。继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称派类。继承呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复⽤,继承是类设计层次的复⽤。
2024-10-29 18:37:37
1639
2
原创 C++刷怪笼(8)vector
上面的链接是C++官方对vector的解读文档,大家多看多了解。使用STL的三个境界:能用,明理,能扩展 ,那么下面学习vector,我们也是按照这个方法去学习。
2024-10-15 19:22:45
805
原创 C++刷怪笼(7)string类
前面我们对C++的封装这一大特性进行了详细的学习,接下来我们来欣赏C++的另一大杰作——STL容器。其包含许多工具,其中string类就是最常见的工具之一。我们为什么要熟练掌握string类?首先,C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。
2024-10-11 11:48:44
1592
原创 C++刷怪笼(6)模板初阶
class 类模板名// 类内成员定义// 类模版public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误// 扩容++_size;
2024-09-19 19:56:57
1061
1
原创 C++刷怪笼(5)内存管理
int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间// 还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;
2024-09-19 14:13:13
1678
1
原创 C++刷怪笼(4) 类和对象的探索-下
目录1.前言2.正文2.1对构造函数的再了解2.2类型转换2.3static成员2.4友元 2.5内部类2.6匿名对象2.7对象拷⻉时的编译器优化3.小结经过前面两篇博客我们对类和对象有了大致的了解,以及熟悉了相关的用法,最后一篇博客的文章我们会对构造函数,类型转化,static成员......进行学习,旨在对类型和对象的知识点进行深入学习,希望各位点赞加关注,便于以后的复习,画不对说,我们直接开始。• 之前我们实现构造函数时,初始化成员变量主要使⽤函数体内赋值,构造函数初始化还有⼀种⽅式,就是初始化列表
2024-09-09 19:54:45
736
原创 C++刷怪笼(3)类和对象的探索-中
上一篇文章作者对C++这一门面向对象语言的第一个重点——类和对象进行了一些简单的介绍,以及类和对象相应的一些简单用法,都知道C++的学习难度是逐级递增的,因此我们今天来尝试对类和对象进行过更深一步的探索。
2024-09-05 16:21:49
658
原创 C++刷怪笼(2)类和对象的探索-上
• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_或者m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。
2024-09-03 19:31:47
817
1
原创 数据结构之栈和队列
大家好久不见,这段时间由于忙去了。就没有即使维护我的博客,先给大家赔个不是。我们还是规矩不乱,先赞后看~今天讲的内容是数据结构中非常重要的一个部分:栈和队列。它在今后的学习中也会再次出现(c++)话不多说,直接进入正题!
2024-04-07 21:14:24
756
14
原创 数据结构之带头双向链表(易学版)
链表的学习我认为是一个先苦后甜的过程,把单链表的原理搞懂之后,再使用双链表就完全是如鱼得水了。学习也是一样,先吃苦,以后才能尝到生活的甜头。最后关于链表的问题,我强烈建议大家刷题巩固,踏实稳重,才能把数据结构这个难关拿下。
2024-03-19 11:59:50
1746
16
原创 数据结构之顺序表(包学包会版)
顺序表属于线性表中简单的一部分,但其作用是相当大的,我们需要充分掌握它,达到能自己徒手敲出来的地步,相信你们,各位未来高薪程序员,一起加油吧!
2024-03-16 15:24:58
2020
21
原创 数据结构之单链表
概念:链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑结构是通过链表中的指针链接次序实现的。注意:1.链式结构再逻辑上是连续的,但在物理上不一定连续2.现实中的结点一般都是从堆上申请到的3.在堆上申请的空间,是按一定的策略来分配的,两次申请的空间可能连续,也可不连续。
2024-03-16 15:24:22
1088
14
原创 数据结构之时间复杂度和空间复杂度
数据结构是计算机存储,组织数据的方式,之相互之间存在一种或多种特定关系的数据元素的集合,即在内存中管理数据(包括增删查改)算法是定义良好的计算过程,它取一个或一组值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列计算步骤,用来将输入数据转化为输出结果。
2024-03-03 20:10:43
1206
19
原创 C语言之函数递归
halo~又与大家见面了,俗话说:“寒假肯吃苦,开春猛如虎。”各位高薪程序员们已经开始疯狂内卷了吧。今天,也给大家奉上鄙人对函数递归的一些见解,话不多说,正文开始。
2024-02-01 16:50:35
2311
22
原创 C语言之数据在内存中的存储(浮点型篇)
在上一篇博文介绍了整型在内存中的存储方式,今天将为大家介绍浮点型数据在内存中的存储。浮点型就是我们数学中常说的小数,它之所以叫浮点型,是因为在科学计数法的表示方法下,它可以根据10的次数的改变来让小数点的位置“浮动”,这样理解就比较直观了。另外,浮点数在内存中的存储是和整型有着较大区别的,所以在打印相关数据时占位符一定不要选错!!!
2024-01-18 15:45:06
1122
7
原创 C语言之数据在内存中的存储(整型篇)
各位读者在日常学习和工作中肯定对各种数据类型的变量是不陌生的了,但是不知道您有没有想过它们在计算机内部是如何保存的呢?今天就让我来为大家回答这一疑惑。首先,字节序是以字节为单位讨论存储顺序的。大小端大端(存储模式):数据的低位保存到内存的高地址中,数据的高位保存到内存的低地址中小端(存储模式):数据的低位保存到内存的低地址中,数据的高位保存到内存的高地址中在弄清顺序之前,我们得先知道为什么有大小端这一说法计算机系统中内存是以字节为单位进行编址的,每个地址单元都唯一的对应着1个字节(8 bit)。
2024-01-16 21:49:18
1050
2
原创 C/C++ 算法之高精度加法
在算法题中,我们经常碰到大数据运算,此时int类型甚至是long long类型都不能满足运算的要求,此时就有高精度运算来助我们一臂之力。高精度运算我们通常分四种:1.两个超级大的数据相加。2.两个超级大的数据相减。3.一个超级大的数据和一个较小的数据相乘(数据小于等于10的9次方)4.一个超级大数据除以一个较小数据(<=10的9次方)所谓高精度,就是把一个很大的数据存在数组里面,这样就不会存在数据过大引起的溢出。而高精度加法则是两个数组的对应元素相加,遇到相加大于10的时候就在下一次计算时加1,可以把它模拟
2023-12-20 21:39:50
914
2
原创 基础算法之快速排序和归并排序
顾名思义,能很快的完成排序。其本质是利用数组把数字存储起来,然后在数组的首尾各设一个指针来指向首尾两个元素,再设置一个参考值(即用一个新的指针来指向首,尾,中三个位置的任意一个{一般我都指向中间元素,这样不容易TLE})。为了完成排序我们需要一个两重循环。第一个循环的条件是第一个指针的位置小于第二个指针,两指针一旦相遇则循环停止先从首元素开始循环比较,由于是在数组前端,为了排序,我们需要当指针指向的值小于参考值,则指针向右移动一位,直到遇到大于参考值时指针停止移动, 二重循环停止。
2023-12-15 19:42:54
325
原创 C语言常见概念的总结
如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为 了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C 语⾔中的字符就遵循了 ASCII 编码的⽅式。这些函数组成了⼀个函数库,被称为标准 库,这些函数也被称为库函数。eg.对于字符串“abcd”,实际只看到4个字符:a,b,c,d,但是实际上最后还有个看不见的\0的转义字符来作为字符串结束的标志。(注:字符串的特殊之处---在字符串的末尾还有一个\0,这个\0字符是字符串结束的标志。
2023-11-30 20:53:10
116
原创 第一篇博客(致每一位和我一样的初学者)
但也别贪小便宜,毕竟有时候免费的往往是最贵的。我打算从c语言入手应该是最正常的一个初学者入口了,紧接着把c++也纳入自己的技能包,过后深入学习考研必备的数据结构和算法分析,计组,计网以及操作系统,让自己在考研路上能笨鸟先飞,也为自己的就业打牢基础。除此之外,java和pthyon和是必不可少的当今世界最流行的语言,顺应时代的发展,学习多种语言也是必不可少的。我相信四年后再次看到我的第一篇博客时,自己会流出喜悦的泪水,最后祝每位it人都能身体健康的工作和学习,以及有个满意的offer。
2023-11-22 19:32:34
145
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅