自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C/C++ 高阶数据结构 —— 二叉搜索树(二叉排序树)

二叉查找树(BST)摘要 二叉查找树(BST)是一种特殊的二叉树结构,其核心特性是:对于任意节点,其左子树所有节点值都小于该节点,右子树所有节点值都大于该节点。这种结构使得查找、插入和删除操作的时间复杂度平均为O(logN)。删除操作需根据节点类型(叶子节点、度为1节点、分支节点)采取不同策略:直接删除、用子节点替换或递归替换前驱/后继节点。BST的中序遍历会产生一个递增序列,使其成为高效的数据存储和检索结构。文章通过图示详细解析了BST的删除逻辑和实现方法,并提供了C++代码示例。

2025-08-31 23:20:16 1598 26

原创 进程状态 —— Linux内核(Kernel)

状态符号含义是否消耗资源运行/可运行R正在或即将使用CPU是可中断睡眠S等待事件,可被信号唤醒否(等待中)不可中断睡眠D等待I/O,不可被信号唤醒否(等待中)僵尸Z已终止,等待父进程回收否(但占用PID)停止T被信号暂停执行否🌟各位看官好我是工藤新一¹呀~🌈愿各位心中所想,终有所致!

2025-08-31 23:05:21 1914 29

原创 Linux —— 进程的程序替换[进程控制]

为什么要做语言级别的封装呢:在做程序替换时,我们要面对各种各样不同的上层替换所需的场景。的样子,方便我们使用。我们知道:每一进程都存在命令行参数(argc, argv),所以我们曾经并不知道我们自己进程的命令行是谁传入的?,顾名思义,就是将一个进程当前正在运行的程序(代码、数据、堆栈等),使得同一个进程可以执行不同的程序代码(允许一个正在运行的进程。换句话说:一旦替换成功,程序的后半段源代码是不会被执行的。进程替换的本质:让进程执行全新的 代码 & 数据[程序],转而执行一个全新的、磁盘上的程序文件。

2025-09-15 23:57:55 851 6

原创 Linux —— 进程控制

系统调用: — 一次调用,两次返回进程调⽤fork,当控制转移到内核中的fork代码后,内核做:一个进程既可以属于全局的链表,又可以属于某个调渡队列当父子进程任意一方试图写⼊,便以写时拷贝的方式各⾃⼀份副本。写时拷贝是⼀种延时申请技术为什么需要写时拷贝?关键思想:为什么要在进程一开始就把它可能永远用不到的东西全部加载好呢?进程终止的本质是释放系统资源,就是释放进程申请的相关内核数据结构(PCB,页表…)和对应的数据和代码。我们曾经学过有种进程状态:僵尸状态。僵尸进程一旦终止时,其 会维持起来,方便我们获取

2025-09-15 23:53:01 698 12

原创 Linux —— 虚拟进程地址空间

页表是虚拟内存系统的核心数据结构,是连接虚拟地址和物理地址的“地图”或“翻译官”;是Kernel为每个进程维护的一个映射表,它记录了该进程的虚拟内存页对应到物理内存帧的映射关系简单来说,它的工作就是回答这个问题:“这个进程看到的虚拟地址 X,实际上在物理内存的哪个地方?OS 会将进程物理地址隐藏起来,我们只能观测到进程的虚拟地址。

2025-09-07 21:38:26 1769 35

原创 Linux2.6内核进程O(1)调度队列

🌟。

2025-09-04 23:54:04 636 6

原创 Linux —— 环境变量

环境变量(environment variables)⼀般是指在OS中⽤来指定OS运行环境的⼀些参数如:我们在编写 C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪⾥,但是照样可以链接成功,⽣成可执⾏程序,原因就是有相关环境变量帮助编译器进行查找环境变量通常具有某些特用途,还有在系统当中通常具有全局特性。

2025-09-04 23:48:10 1225 12

原创 Linux - 进程切换

特性独立并发并行竞争核心思想互不干扰交替推进**(时间段)**同时执行**(时间点)**时序错误依赖硬件无单核即可必须多核无(但并行会加剧)共享资源无可能有可能有必须有是否期望是(简化设计)是(提高效率)是(提高性能)否(必须避免)你编写了一个并发的程序(多线程)来解决一个问题,期望它能利用多核特性并行执行以提高速度。如果这些并发/并行的线程访问了非独立的(即共享的)数据,并且你没有做好同步保护,那么就会产生竞争条件,导致程序出错。

2025-09-02 23:58:11 1004 12

原创 进程优先级(Process Priority)

🌟。

2025-09-02 23:53:51 1047 3

原创 Linux 孤儿进程 (Orphan Process)

孤儿进程是指在父进程执行完毕并终止后,其仍然还在运行的一个或多个子进程。简单来说,就是一个孩子还在,但它的父母已经不在了。⽗进程如果提前退出,那么子进程后退出,进⼊“Z”状态后,那该如何处理呢?父进程先退出,子进程就称之为 “孤儿进程”孤儿进程被1号systemd进程领养孤儿进程是活进程:它还在运行,只是父亲没了。内核安全网:内核通过让init 进程(PID 1)自动收养所有孤儿进程来避免问题。这是一个关键的设计,保证了系统的健壮性。无害性。

2025-09-01 21:43:57 1414 12

原创 Linux 进程状态 — 僵尸进程

故事插入:如上所述,僵尸进程是一个已经终止但尚未被其父进程回收的进程。

2025-09-01 21:36:53 1739 4

原创 C/C++ 数据结构 —— 线索二叉树

注意:度为 0/1 的节点才需线索化C++// 线索标志THREAD // 1 节点指向nullptr// 枚举:孩子 or 线索// 定义树节点的存储类型// 线索标志默认为 0// 初始化字段 - 也要添加标志位初始化。

2025-08-27 22:30:51 1189 10

原创 C/C++ 数据结构 —— 树的遍历(3)

反之,给我们一组线性化的序列,能否将原来的二叉树复原(换句话说,复原后的二叉树是唯一的吗?:否)🌟各位看官好,我是工藤新一¹呀~🌈愿各位心中所想,终有所致!

2025-08-27 00:48:29 745 6

原创 C/C++ 数据结构 —— 树(2)

​ 🎁个人主页:工藤新一¹​ 🔍系列专栏:C++面向对象(类和对象篇)​ 🌟心中的天空之城,终会照亮我前方的路​ 🎉欢迎大家点赞👍评论📝收藏⭐文章树是一种递归的结构在树形结构中,我们最常用的就是二叉树。一颗二叉树的节点是一个有限的集合,该集合由一个根节点,再加上两颗别称为左子树和右子树的二叉树组成二叉树不存在 “度” 大于 的节点二叉树的子树一定有序(有左右之分),次序不能颠倒,因此二叉树是一颗有序树对于深度为 ,有 个节点的二叉树,当且仅当其每

2025-08-26 22:04:35 792 5

原创 C/C++数据结构 —— 树(1)

​ 🎁个人主页:工藤新一¹​ 🔍系列专栏:C++面向对象(类和对象篇)​ 🌟心中的天空之城,终会照亮我前方的路​ 🎉欢迎大家点赞👍评论📝收藏⭐文章树是一种非线性的数据结构,是由有层次关系的 N 个节点组合的有限集合,存在分支的节点被称为分支节点,这些没有分支的节点(树的终点、端点)被称为叶子节点我们要知道,编程语言中的树与现实世界中的树的区别:编程语言中的树其实就是对现实生活中的树的非常形象的比喻简而言之,树描述的是有层次关系的数据如图,在树中子树所对

2025-08-26 00:18:58 1119 5

原创 类和对象(中)

🌟。

2025-07-30 17:33:39 647 12

原创 深度理解指针(3)

🌟。

2025-07-18 00:47:46 1375 8

原创 Linux自动化构建工具(二)

🌟。

2025-07-18 00:39:34 990 11

原创 Linux自动化构建工具(一)

🌟。

2025-07-11 23:49:44 1627 24

原创 Linux权限的概念

🌟。

2025-07-11 23:41:15 1253 20

原创 Linux 开发工具

🌟。

2025-07-10 00:26:44 1948 21

原创 Linux

🌟。

2025-07-10 00:14:37 396 9

原创 滑动窗口算法

🌟。

2025-05-20 00:21:45 929 25

原创 C++ —— Lambda 表达式

🌟。

2025-05-19 14:11:39 1877 18

原创 深度理解指针(2)

🌟。

2025-05-14 23:44:48 796 14

原创 深入理解指针(1)

🌟。

2025-05-14 23:37:44 1670 10

原创 蓝桥杯算法题 -蛇形矩阵(方向向量)

🌟。

2025-05-10 22:58:58 1246 17

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 22)

🌟。

2025-05-06 23:35:03 566 23

原创 C++类和对象进阶 —— 与数据结构的结合

classStack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加或者m开头,注意 C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求定义在类中的成员函数默认为 inline(内联)public://成员函数//1、对栈初始化");exit(1);top = 0;//2、入栈操作。

2025-05-06 23:24:52 1393 14

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 21)

🌟。

2025-05-04 23:33:51 1335 21

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 20)

🌟。

2025-05-03 23:57:17 520 14

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 19)

🌟。

2025-05-03 23:53:04 1163 9

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 18)

🌟。

2025-05-01 23:44:11 784 14

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 17)

🌟。

2025-05-01 23:33:57 403 7

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 16)

🌟。

2025-04-29 21:30:36 1089 15

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 15)

🌟。

2025-04-29 21:19:42 419 9

原创 C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 14)

🌟。

2025-04-27 23:50:46 1695 16

原创 C++/SDL进阶游戏开发 —— 双人塔防游戏(代号:村庄保卫战 13)

🌟。

2025-04-25 23:09:44 1780 18

原创 C++/SDL 进阶游戏开发 —— 双人塔防游戏(代号:村庄保卫战 12)

🌟。

2025-04-25 23:02:12 551 8

原创 C++/SDL 进阶游戏开发 —— 双人塔防游戏(代号:村庄保卫战 11)

🌟。

2025-04-23 23:56:18 733 15

Markdown(Typora)(含下载安装方式)新手使用教程

本文档是关于Markdown(尤其是Typora编辑器)使用的新手教程,涵盖标题、段落处理、文字显示样式、列表形式展示(如无序、有序以及带有任务完成度标志的任务列表),还介绍了区块、行内代码和代码块的不同表示方法、链接设置(内部链接到标题或其他位置及外部网站链接)、插入图片的基本用法以及表格创建规则等常用编辑功能的操作指南。针对一些特色功能,例如表达情感的表情符号运用也有所提及。最后附有下载Typora这款编辑工具的方法。 适用人群:初次接触Markdown书写规范或刚开始使用Typora软件的用户,以及希望加深理解Markdown语法特性的人群。 使用场景及目标:适用于需要撰写技术文档、博客文章或者其他基于文本创作场合的技术爱好者;旨在帮助用户掌握Markdown语法规则以便更加便捷高效地利用该格式进行写作,提高打字效率并让文档布局更具美感。 同时提醒读者,在实际操作过程中可以参考文中提供的众多快捷键辅助自己更快地上手各种编辑技巧。通过本教程的学习不仅可以掌握基本的语法应用,更能深入了解到Markdown背后的简易哲学——简单至上。

2025-03-03

空空如也

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

TA关注的人

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