自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【编程Tool】小熊猫C/C++的安装使用及配置保姆级教程

学校大多数用的都是Dev C++软件,因为比较,一些竞赛使用的也是Dev C++,但是Dev C++在早期维护了之后,目前已经不再继续维护了。小熊猫C/C++是提供了比旧版Dev-C++更完善的功能,且适合C/C++初学者使用。

2024-04-23 20:17:09 1515 14

原创 【Linux】进程的程序地址空间①

程序运行时,每个进程都要有自己的pcb,都会有自己的进程地址空间,对于这个进程的数据肯定是存放在物理内存中的,但是,我们的进程运行时如何拿到或者访问到这块内存,拿到数据,我们在操作系统内部还存在一种映射关系,大家可以理解为一张表,这个映射表,会将虚拟地址和物理地址建立一个映射。这是一个进程,子进程也是会拥有同样的配置。同样的子进程将相同的映射关系也继承了下来:所以子进程指向同一个物理地址,所以虚拟地址打印也会是一样的。

2024-04-22 15:22:59 1581 10

原创 【编程Tool】VS code安装与使用配置保姆级教程

Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器,可在桌面上运行,并且可用于Windows,macOS和Linux。

2024-04-21 23:05:02 2039 10

原创 【编程TOOL】VC++6.0下载安装配置使用保姆式教程

Visual C++ 6.0简称VC或者VC6.0,是微软1998年推出的一款C/C++ IDE,界面友好,调试功能强大。VC6.0是一款革命性的产品,非常经典,至今仍然有很多企业和个人在使用,很多高校也将VC6.0作为C语言的教学基础,作为上机实验的工具。

2024-04-17 23:01:21 3339 26

原创 【Linux】环境变量(main函数三个参数的用途揭秘)

环境变量是系统内置的,具有特殊用途的变量。接下来bash定义了一个字符数组,用户输入指令,bash将指令看做一个字符或者字符串存入数组中,看似我们输入以空格分割了,实际上我们输入的是一个大字符串,这个字符串被bash读到,bash按照空格作为分隔符,将其转换为小的字符串,将字符串一变多,我们目前就认为bash为了保存这些小串给我们维护了一个char* 类型的数组,以NULL结尾,定义一个count来记录小串的数量,接下来执行程序,将数组和count按照一定的方式(这里不做探讨)传给我们的main函数。

2024-04-17 22:35:08 1726 2

原创 【编程Tool】DevC++的安装配置及使用保姆级教程

Dev-C++(或者叫做Dev-Cpp)是Windows环境下的一个轻量级C/C++集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。Dev-C++集合了功能强大的源码编辑器、MingW64/TDM-GCC编译器、GDB调试器和AStyle格式整理器等众多自由软件,适合于在教学中供C/C++语言初学者使用,也适合于非商业级普通开发者使用。一般蓝桥杯等比赛采用的都是DevC编译器。

2024-04-16 22:41:40 1449 16

原创 【编程Tool】Visual studio 2022社区免费版本的下载安装及使用

推荐下载Community版本主要是其免费提供了全功能的IDE,完全足够普通开发者的学习和使用。双击这个文件。

2024-04-15 20:49:58 1863 22

原创 【Linux】进程的优先级及linux下进程的调度于切换

优先级决定了进程享受资源的前后,如果进程的优先级很小,调度器cpu在短时间内较大概率会频繁的调度这个进程,导致调度不太平衡,导致优先级高的优先得到资源,后续还有源源不断的进程产生,最后会导致常规进程很难得到cpu资源,意味着这个进程很长时间不被调度,作为一个要运行的进程,变得很卡顿,而其他优先级高的进程很快就跑完了,所以,这种情况称之为“进程饥饿”,就像去打饭长由于被插队长时间打不到饭。为什么需要运行队列,cpu只有一个。当前进程的信息都在寄存器保存,如果进程运行时间片到了,进程切换时,将临时数据带走,

2024-04-15 20:35:30 846 2

原创 【算法】回溯:与递归,dfs的同质与分别,剪枝与恢复现场的详细理解,n皇后的回溯解法及算法复杂度分析。

本文先带大家了解什么是回溯:走不通回头,然后给出了第一个回溯算法的定义,然后给大家区分了递归和深度搜素和回溯的区别,然后引出了对回溯的剪枝和恢复现场的讲解,接着通过二叉树路径这道简单题目让大家对以上概念得到运用和更深入理解,最后使用递归解决了n皇后的问题,分析了时间复杂度和空间复杂度。创作不易,希望大家多多指教,如果觉得今天讲解的有学到东西,可以留下一个三连,持续关注后续的文章。

2024-04-14 22:17:58 1759 54

原创 【Linux】进程的状态(运行、阻塞、挂起)详解,揭开孤儿进程和僵尸进程的面纱,一篇文章万字讲透!!!!进程的学习②

今天的主要内容是进程的排队,进程状态在操作系统学科层次的理解和linux操作系统下的观察。扩展了很多内容,补充了僵尸进程和孤儿进程,后续进程的优先级和进程相关内容,欢迎大家关注。创作不易,如果大家觉得有所收获,欢迎关注,一起交流互进。

2024-04-09 17:15:25 2072 48

原创 【Linux】进程学习① (进程的PCB(task_struct)&&进程的标识符详解&&进程的创建fork函数)

今天的主要内容是进程、进程的pcB,以及linux下进程pcb-task_struct中众多属性的第一个进程的标识符。扩展了很多内容,后续更新进程的状态,僵尸进程、孤儿进程的讲解,欢迎大家关注。创作不易,如果大家觉得有所收获,欢迎关注,一起交流互进。

2024-04-07 19:02:12 1858 18

原创 【C++】引用

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。简单说引用就是取别名,比如孙悟空,齐天大圣、弼马温、猴子、美猴王都是说的孙悟空一样。

2024-04-06 20:10:51 849 7

原创 【C++】缺省参数和函数重载

因为害怕函数声明的时候是一个参数值,函数定义的时候又是一个参数值,没有办法有一个标准但是也不能定义是缺省参数,函数声明没有, 所以如果声明和定义分离,只能在声明地方给缺省参数。因为有些地方只用到函数的声明,所以以声明为主,然后定义可以不用给。缺省值一般是常量或者全局变量,但是一般是变量 ,c语言不支持缺省。

2024-04-06 13:49:42 785 3

原创 【Linux】-进程知识铺垫①计算机硬件的组织:冯诺依曼体系结构详细解读②关于操作系统对软硬件及用户的意义

最简单的计算机模型:输入--计算--输出计算机有各种各样的硬件(显卡、硬盘、键盘等)这些能够看到 和软件(看不到)的组成,而所有的硬件单元都要由一定的体系结构组织起来才能形成我们的计算机,软件也是由一定的软件结构组织起来。计算机有很多很多的组织方式也就是体系结构,被保留的叫做冯诺依曼体系结构。历史:在计算机诞生之前,人们在计算的精度和数量上出现了瓶颈,对于计算机这样的机器的需求就十分强烈,冯·诺依曼的逻辑和计算机思想指导他设计并制造出历史上的第一台通用电子计算机。他的计算机理论主要受自身数学基础影响,且具有

2024-04-04 22:54:05 1489 1

原创 【C+ +】第一个C+ + 项目的创建及namespace命名空间解释&C++中的输入输出

二者不同的点:头文件不同这个可以理解因为可能包含了我们输出输出函数的不同要包含不同的头文件,突兀的是这一行代码:这个是什么含义呢?有什么用是干什么的?这是我们进入c++的第一个问题。c++语言是c语言生长起来的, 兼容百分之九十的c语言,所以我们在c++中仍然可以使用c的代码:只是一些细节不兼容。c++是面向对象的语言,具有泛型,弥补c语言的不足,那么这个就是为了弥补c语言中一些命名冲突而诞生的我们称为命名空间。接下来我们就详细聊一下这个命名空间。2.命名空间2.1 C++关键字。

2024-04-03 19:01:57 1004 2

原创 【C+ +初阶】前言篇章---C+ +的广袤

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的 程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机 界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言 应运而生。 1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一 种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而 产生的,它既

2024-04-02 23:08:27 1354 1

原创 【Linux】调试器-gdb使用(指令调试常用大全,实用性高!!)

那我们就不得不提及那个开拓时代,和那段在编程世界的神话;与“阿兰·图灵、史蒂夫·乔布斯、比尔·盖茨”等一同入选“IT界十大最有远见的人才”的唯一一位女性——格蕾丝·赫柏大家可以点击链接了解她的故事,现在我们来看一下她是如何发现并命名世界上第一个“BUG”的。赫柏从海军学校毕业后,因为出色的数学背景,被分配到美国船舶局位于哈佛大学的战时科研中心。彼时,军方正在开展世界第一台大型数字计算机的研究项目——马克一号。赫柏被任命为著名计算机专家霍德艾肯博士的助手,成为这个项目的第三名程序员。

2024-04-01 13:19:50 718 2

原创 【数据结构与算法初阶(c语言)】插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序-全梳理(万字详解,干货满满,建议三连收藏)

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

2024-03-31 20:56:25 1844 1

原创 Linux项目自动化构建工具-make/ makefile及其应用:多文件编写第一个linux程序:进度条(懒人学习必备博文!!!)

make是一个命令,makefile是一个文件(主旨)而makefile是需要在当前工作目录下需要我们自己创建的一个文件。保存的是依赖关系和依赖方法。

2024-03-29 14:09:04 934

原创 【Linux】 gcc(linux下的编译器)程序的编译和链接详解

gcc是linux下的一款编译器,可以在指令级别将代码编译形成可执行程序格式gcc [选项要编译的文件选项] [目标文件】我们手动编写一个简单的程序使用指令gcc 文件名进行编译也可以在底行模式中直接编译生成一个a.out的可执行程序./a.out运行这个程序这是gcc的一个快速认识关于gcc其他的指令-E只激活预处理这个不生成文件你需要把它重定向到一个输出文件里面-S编译到汇编语言不进行汇编和链接-c编译到目标代码-o文件输出到 文件。

2024-03-28 14:12:47 1281

原创 【数据结构和算法初阶(c语言)】二叉树系列oj题目图文详解

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回false。解题思路:先判断根和它的左右子树相等不相等,都相等再次判断左右子树和他们的孩子是否相等。(递归的思想)先判断根再判断左右子树属于前序遍历。题解代码://如果根为空,这里根据示例1可以返回空//根节点不为空了,现在就来看一下左右孩子的值等不等于根//首先要判断左右孩子有没有,然后再判断两个值是否相等,左子树值与根相等,右子树值与根相等,判定三个节点的值相等。

2024-03-27 23:34:51 929

原创 【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法

以上就是关于vim的使用及配置,有些东西不是很具体,大家可以多做扩展。

2024-03-26 16:29:11 2162

原创 【数据结构和算法初阶(C语言)】二叉树的链式结构--前、中、后序遍历实现详解,节点数目计算及oj题目详解---二叉树学习日记③

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。通常的方法是 链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所 在的链结点的存储地址。链式结构又分为二叉链和三叉链。

2024-03-25 23:23:50 1281

原创 【数据结构和算法初阶(C语言)】二叉树的顺序结构--堆的实现/堆排序/topk问题详解---二叉树学习日记②12

底层是一个顺序表//底层是一个顺序表,但是数据不是随便存储,逻辑结构是二叉树int size;}HP;//先为i堆空间申请两个节点exit(-1);以上就是本期的所有内容,知识含量蛮多,大家可以配合解释和原码运行理解。

2024-03-20 23:57:18 1612

原创 【数据结构和算法初阶(C语言)】二叉树学习日记①--树的概念/二叉树的概念、知识和存储结构

以上就是这篇开启二叉树数据结构的铺垫内容,后续有完全二叉树顺序结构实现--堆结构的详解以及二叉树链式存储实现和应用的详解。本篇文章讲述了树的概念和一些数据特点,以及树的分类,二叉树的一些结构概念和数据特点,是一篇先作铺垫。

2024-03-17 11:30:11 1193

原创 【C语言】函数栈帧---函数的创建于销毁过程剖析(一览无遗)

学习这么久以来,可能有很多疑问:局部变量怎么创建的?为什么局部变量的值是随机的?函数是怎么传参的?传参的顺序是怎么样的?形参和实参是什么样的关系?函数调用是怎么做的?函数调用结束后是怎么返回的?那么本篇博文就来一一讲解一下。环境:vs2021,大家也可以使用更低版本的编译器更容易观察出现象。(推荐vc6.0)在不同的编译器下面,函数调用的过程中栈帧的创建是稍有差异的,大体逻辑是一样的具体差异的细节取决于编译器的实现。

2024-03-16 15:34:21 785

原创 【数据结构和算法初阶(C语言)】二叉树铺垫--栈帧的创建与销毁--细节全解

将rbp和rid出栈(这里由于我重新启动了一次所以数据不一样,不过还是可以看到rbp和rsp之间相差20.回到了起点,原先的空间被释放了)刚进入,我们的rbp和rsp在为我们的调用main函数的函数维护栈帧,进入main函数过后。return后,将rbp+E8h给rsp,相当于销毁了add的栈帧。寄存器中有eax/ebx/ecx/ edx /ebp/esp。那么现在的rbp和rsp就维护了main函数维护的这块空间。先将edx的值放到rsp+10的位置。将ecx的值放到rsp+8的位置。

2024-03-16 15:31:18 814

原创 【数据结构和算法初阶(C语言)】队列实操(概念实现+oj题目栈和队列的双向实现以及循环链表难点题目详解!)

是否需要带哨兵位的链表:哨兵位是为了解决二级指针(可以将头尾指针封装为结构体进行传参,这样就可以改变真实的指针了,所以哨兵位可要可不要),尾插少一次判断。单向还是双向:选择单向,双向的优势是方便找前一个1节点,没有这个需求。那么后续有新数据要进入我们自己的“栈”直接进入有元素的队列尾进就好了,然后一样的办法进行出栈。数组和链表都可以实现队列,但是链表的头插尾插,头删尾删要方便些,所以首选链表。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,出队列:进行删除操作的一端称为。

2024-03-16 12:31:56 1560

原创 【Linux】-Linux下的软件商店yum工具介绍(linux和windows互传文件仅仅一个拖拽搞定!!!!)

以上就是本期内容,和技术的关联不大,但是可以为liNux的构建体系打一个好的基础。要注重知识本身,如果大家有补充的欢迎评论区偶遇。

2024-03-13 23:00:35 1196

原创 【数据结构和算法初阶(C语言)】栈的概念和实现(后进先出---后来者居上的神奇线性结构带来的惊喜体验)

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,出栈:栈的删除操作叫做出栈。栈中的数据后面进的先出,也就是说不能够任意访问,添加和删除数据只能在栈顶进行操作。

2024-03-11 21:11:29 824

原创 【Linux】shell理解及linux权限解读(“花花公子Root”的自由人生)

主要工作: 将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者在用户和核心之间:一方面获取用户输入,获取指令,交给用户拿到执行结果在反馈给我们用户对于本期 Linux下的权限讲解就到这里。

2024-03-10 21:14:01 1396

原创 【Linux】Linux的常见指令详解(爆肝一周!!!!!!)

以上就是linux的常见的命令,关于指令大家可以不用就是刻意去记住,要用可以查询,多用就会熟悉,大家可以多做了解,看一下linux下还有那些好玩的指令比如sl:知识含量蛮多,大家可以配合解释和原码运行理解。

2024-03-10 13:40:25 1226

原创 【数据结构和算法初阶(C语言)】复杂链表(随机指针,随机链表的复制)题目详解+链表顺序表结尾

链表和顺序表的知识到这里基本就告一段落,那么大家可以从知识到解题详细回顾一下。可以结合图解多看一下代码,结合理解。以上就是本期的所有内容,知识含量蛮多,大家可以配合解释和原码运行理解。

2024-03-05 18:06:05 1133

原创 【数据结构和算法初阶(C语言)】带环链表问题详解(快慢指针的烧脑应用)

带环链表的题目涉及到数学分析,从解题的过程中我们也能感知到,可以结合图解多看一下代码,结合理解。以上就是本期的所有内容,知识含量蛮多,大家可以配合解释和原码运行理解。t=N7T8t=N7T8. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。

2024-03-04 17:58:05 1249

原创 【数据结构和算法初阶(C语言)】双向循环带头链表的增删查改详解(天才设计的链表结构,应用简单逆天!!!!!)

先写一个打印函数来方便后续测试:while (cur!= phead)双向链表是一个快捷使用的数据结构,非常实用,不过对于初学建议画图来理解增删查改。很大程度上增删查改避免了二级指针的传参,就是因为使用了哨兵位的好处。以上就是本期的所有内容,知识含量蛮多,大家可以配合解释和原码运行理解。

2024-03-04 14:48:44 513

原创 【数据结构和算法初阶(C语言)】顺序表+单链表经典例题图文详解(题解大合集,搭配图文演示详解,一次吃饱吃好)

1.移除链表元素1.1思路1:遍历删除1. 2 思路2:尾插法2.反转链表3.链表的中间节点3.1解题思想及过程3.2快慢指针思想解题---变式:返回链表的倒数第K个节点4.合并两个有序链表4.1解题思想 1取小的尾插5.反转链表6、CM11链表分割 (比较难)描述7.OR36链表的回文结构8.相交链表9.结语

2024-03-02 21:57:05 1339

原创 【Linux】入门篇-Linux的历史及发展历程(linux小型化成为安卓竟然有一段那么有趣的历史!!!)

谈论起源是一件颇具争议的事,誰才是门派正宗,正本清源,这些问题过于难缠,本篇文章的目的是通过对计算机的由来,硬件到软件等的大概发展历史中讲述linux的故事,给今后的linux学习或者讲解做一定的铺垫。(肚中有粮,前路不慌)那么接下来就让我们打开这神秘的面纱。

2024-02-29 21:30:08 1329

原创 【Linux】基础篇-Linux四种环境搭建的方式(详细安装说明步骤,搭载下载安装地址)

以上就是今天所有的内容,方法有很多,大家可以根据造作步骤一一进行实践,祝愿大家的LInux之旅途愉快。

2024-02-28 21:22:12 1422

原创 【数据结构和算法初阶(C语言)】链表-单链表(手撕详讲单链表增删查改)

顺序表知识回顾//数据领域//定义指针领域,方便保存下一个节点的地址}SLNode;为了后期使用方便,我把整型这个类型重新定义了一下,后续如果需要改变我们这个程序中的数据类型,比如换成doubble类型,我们换一下宏定义就好。今天的重点在于理解单链表的增删查改,特别是什么时候需要传输二级指针,什么时候不传。以上就是本期的所有内容,知识含量蛮多,大家可以配合解释和原码运行理解。

2024-02-27 20:16:31 1531

原创 【数据结构和算法初阶(C语言)】探究顺序表的私房干货(OJ例题+知识代码双管齐下)

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。 线性表中比较重要的是顺序表和·链表

2024-02-26 19:55:38 1500

空空如也

空空如也

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

TA关注的人

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