自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程的状态

(stopped): 可以通过发送。

2025-10-31 18:15:13 599

原创 Linux进程的概念

计算机管理硬件。

2025-09-20 16:56:52 973

原创 Linux的基础工具

在Linux下安装软件, ⼀个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些⼈把⼀些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在⼀个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

2025-09-08 15:30:48 809

原创 Linux指令的详细学习

以这个范例来说,我先将工作目录变换到/usr/local/src 底下,并且解开/tmp/etc.tar.gz ,则解开的目录会在 /usr/local/src/etc 呢!head 与 tail 就像它的名字⼀样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。另外,它也可以用来取代exit。• 如同时指定两个以上的文件或目录,且最后的目的地是⼀个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。

2025-09-03 14:14:05 641

原创 红黑树详解:从原理到实现,一篇文章带你彻底掌握

本文深入解析红黑树,先讲其核心规则,推导最长路径特性与 O (logN) 效率,对比 AVL 树优势。接着展示节点与类结构,重点剖析插入流程,分二叉搜索树插入与平衡修复(变色、单旋 / 双旋 + 变色),结合实例与代码说明。还介绍查找与平衡验证,对比红黑树和 AVL 树适用场景,助力读者掌握红黑树平衡实现逻辑,夯实算法基础。

2025-07-31 15:04:46 1187

原创 二叉搜索树详解:从概念到实战,一篇搞定 BST 所有知识点

本文介绍二叉搜索树(BST):左子树节点值≤根节点,右子树≥根节点,左右子树亦为 BST,支持或不支持相等值插入依场景定。性能最优为完全二叉树(O (log₂N)),最差退化为单支树(O (N)),平衡 BST 可优化。相比二分查找更灵活。插入按 “左小右大” 找空位;查找从根开始按值左右找;删除分四种情况,左右非空用替换法。提供 key 和 key-value 两种 C++ 实现,应用于车牌验证、字典、停车收费等场景。

2025-07-29 15:08:35 1036

原创 AVLTree的实现(重难点)

• 更新后parent的平衡因子等于2 或 -2,更新前更新中parent的平衡因子变化为1->2 或者 -1->-2,说明更新前parent子树⼀边高⼀边低,新增的插入节点在高的那边,parent所在的子树高的那边更高了,破坏了平衡,• 跟左右双旋类似,下⾯我们将a/b/c子树抽象为高度h的AVL子树进⾏分析,另外我们需要把b子树的细节进⼀步展开为12和左子树高度为h-1的e和f子树,因为我们要对b的父亲15为旋转点进⾏右单旋,右单旋需要动b树中的右子树。

2025-07-28 16:34:19 962

原创 C++中的stack和queue(难点)

stack的文档queue的文档介绍队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。empty:检测队列是否为空size:返回队列中有效元素的个数front:返回队头元素的引用back:返回队尾元素的引用。

2025-07-11 09:43:47 839

原创 C++中的list的学习

list的文档介绍这张图展示了 C++ 标准库中 list 的底层结构和关键概念,重点体现了 list(双向循环链表)的工作原理。核心结构:双向循环链表每个节点有 前驱指针(指向前一个节点)和 后继指针(指向后一个节点)。链表首尾相连,形成一个环(end() 不指向 nullptr,而是指向一个 “哨兵节点”)。关键组件解析定义了一个存储 int 类型的 list 对象 ilist,底层是双向循环链表。(2) 哨兵节点(_M_node 所指节点)

2025-07-10 16:40:03 997

原创 C++中vector的理解

vector的文档构造函数声明接口说明vector()(重点)无参构造构造并初始化n个valvector(const vector&x)(重点)拷贝构造使用迭代器进行初始化构造。

2025-07-10 09:11:50 1045

原创 C++String的学习

说明:在上述代码中String类里面没有显示实现拷贝构造函数和赋值运算符重载,当s1取赋值s2的时候编译器就会走默认的拷贝构造函数,那么s1和s2就会指向同一个地址空间,当其中一个地址空间被销毁了之后,另外一个以为还存在,则会以为有效,当运行时就会出现报错,(在释放时同一块空间被释放多次而引起程序崩溃),这就是上述的浅拷贝。C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想(即。,后来这个不重要了。

2025-06-04 12:20:37 866

原创 C++模板的理解(初阶)

模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误。模板的编译机制在 C++ 里,模板并不是真正的函数或类,而是一种生成函数或类的蓝图。编译器在遇到模板定义时,并不会立即生成具体的代码,

2025-03-16 21:55:29 914

原创 C++的内存管理(详细理解)

int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间//还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;注意。

2025-02-09 10:46:56 894

原创 类和对象(下)

2024-12-25 11:29:00 1138

原创 C++类和对象(中)

析构函数与构造函数功能相反,析构函数不是完成对对象本⾝的销毁,比如局部对象是存在栈帧的,函数结束栈帧销毁,他就释放了,不需要我们管,C++规定对象在销毁时会自动调⽤析构函数,完成对象中资源的清理释放⼯作。构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象(我们常使⽤的局部对象是栈帧创建时,空间就开好了),⽽是对象实例化时初始化对象。除⾮⼀些很特殊的场景,⽐如我们不想让别⼈取到当前类对象的地址,就可以⾃⼰实现⼀份,胡乱返回⼀个地址。

2024-09-24 18:11:29 874

原创 C++类和对象(上)

• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看情况的要求。

2024-09-18 18:00:45 759

原创 C++的入门学习

•定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。• C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响。

2024-09-03 17:35:04 822

原创 数据结构初阶之排序

3. 计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。4. 时间复杂度:O(MAX(N,范围))5. 空间复杂度:O(范围)

2024-08-31 17:09:38 1005

原创 数据结构二叉树、堆的理解

对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。要注意的是满二叉树是一种特殊的完全二叉树。如上图:B、C是兄弟结点,D、E是兄弟结点等等(即连接在同一个根结点上的两个子结点叫做兄弟结点);:一个二叉树的每一层结点数都达到最大值,则为满二叉树,也就是说当一个二叉树的结点为K层的时候,此时二叉树的结点个数是2^k-1个。2、堆属性:如上所述,堆中的每个节点都满足堆属性,即父节点的值与子节点的值之间的关系(取决于是最大堆还是最小堆)。

2024-08-29 17:59:14 1187

原创 数据结构队列的理解

使用数组来存储队列元素,但需要两个指针(或索引)来分别指示队首和队尾的位置。这种实现方式需要处理“假溢出”的问题,即当队列尾部的元素被移除后,队列的前部还有空间可以利用,但此时因为尾部索引已经到达数组末尾,所以无法再向队列中添加新元素。队列(Queue)是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。

2024-08-07 16:47:49 405

原创 数据结构栈的理解

/ 支持动态增长的栈int _top;// 栈顶// 容量}Stack;// 初始化栈// 入栈// 出栈// 获取栈顶元素// 获取栈中有效元素个数// 检测栈是否为空,如果为空返回非零结果,如果不为空返回0// 销毁栈栈的结构体中包含一个指针域,两个数据域,typedef: typedef是C语言中的一个关键字,用于为已存在的类型定义一个新的名称。在这个例子中,它用于为struct Stack这个结构体类型定义了一个别名Stack。

2024-07-13 16:33:00 783

原创 数据结构(利用题目理解链表)

链表的题目主要是学会画图,结合题目实际情况去攻克难关!定义链表节点结构体:包含数据域和指针域。编写链表操作函数:如初始化链表、插入节点、删除节点、查找节点和遍历链表等。在主函数中调用这些函数,以演示链表的使用。编写简单的链表程序,如实现一个整数链表,并对其进行插入、删除、查找和遍历等操作。尝试解决与链表相关的算法问题,如链表反转、合并两个有序链表等。

2024-05-14 22:05:26 1076 2

原创 C语言内存函数的理解

内存函数的学习是为了以后更好的进行内存管理,故要多加练习理解

2024-04-10 13:49:47 1970 1

原创 浮点数在内存中的存储

简单来说就是小数,常⻅的浮点数:3.14159、1E10等,浮点数家族包括: float、double、long double 类型。浮点数表⽰的范围: float.h 中定义。根据国际标准IEEE(电⽓和电⼦⼯程协会)754,任意⼀个⼆进制浮点数V可以表⽰成下⾯的形式:• (−1)^S 表⽰符号位,当S=0,V为正数;当S=1,V为负数• M 表⽰有效数字,M是⼤于等于1,⼩于2的• 2^E 表⽰指数位。

2024-03-31 13:40:33 2339 1

原创 C语言内存函数

1、函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。1、和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。3、如果source和destination有任何的重叠,复制的结果都是未定义的。memset是⽤来设置内存的,将内存中的值以字节为单位设置成想要的内容。2、 如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。⽐较从ptr1和ptr2指针指向的位置开始,向后的num个字节。

2024-03-17 22:11:46 360 1

原创 assert(断言)的理解

assert是一个宏,通常定义在头文件assert.h中,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。但实际上,assert的实现要复杂一些,它会在编译时检查是否定义了宏NDEBUG。如果定义了NDEBUG,那么assert宏在预处理阶段就会被忽略,不会进行任何操作。这通常用于发布版本的程序,以避免assert带来的性能开销和不必要的检查。

2024-03-14 22:55:53 643 1

原创 C语言扫雷小游戏(保姆级教程)

计算机编程的世界中,C语言一直以其高效、直接和灵活的特性而备受赞誉。对于初学者来说, C语言不仅是一种编程语言,更是一种理解和掌握计算机底层运作机制的桥梁。而扫雷游戏,作为一款经典的益智游戏,以其独特的游戏机制和挑战性,深受广大玩家喜爱。接下来我将引领你一起探索如何使用C语言编写一个扫雷小游戏。在这个过程中,我们将深入了解C语言的语法、数据结构和算法,同时掌握如何使用C语言进行游戏编程。

2024-01-19 11:51:26 2413 1

原创 踏上编程的奇幻领域

学习C的精神食粮!!!

2023-11-18 23:00:32 171 1

原创 C语言入门

希望你在C语言的世界里像雄鹰一样翱翔!!!加油打工人!!!

2023-11-17 22:58:29 192 1

空空如也

空空如也

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

TA关注的人

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