自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux进程控制

进程终止 | 进程等待 | 程序替换 | 制作一个简易版的shell

2023-10-27 21:18:32 180

原创 进程概念[下]

进程优先级 | 环境变量 | main函数参数 | 环境变量通常具有全局属性 | 程序地址空间&进程地址空间

2023-10-18 12:33:19 135

原创 进程概念[上]

冯诺依曼体系结构 | 操作系统概念 | 进程 | 查看进程 | 创建子进程 | 进程的状态信息

2023-10-13 21:29:42 170

原创 make&Makefile

make&makefile | 实例代码 | 进度条编写

2023-10-06 14:49:42 109

原创 VIM编辑器

yum | vim | gcc&g++ | Debug调试

2023-10-04 19:30:34 128

原创 vector 练习

vector相关的一些练习,要不要看看你是否掌握?

2023-06-06 22:36:13 441 2

原创 Linux 权限

shell | Linux权限

2023-05-30 22:12:52 700

原创 vector容器 [上]

你真的了解vector容器吗?

2023-05-17 20:25:54 423

原创 String类 [下]

你真的了解String类吗?

2023-05-14 22:24:29 494

原创 String类 [中]

如果成员变量是内置类型char* ,那么s2会和s1所指向的空间地址是相同的,但是在析构的时候,后创建的先析构,也就是先析构s2,而s1也是指向这块空间的,再析构不就会出现err了嘛。②如果自己给自己赋值,如s3 = s3,而开始s3这块空间已经被释放了,之后又去开一块这样的空间,然后又去访问被释放掉的空间中的值,这样难免会出错,所以判断一下,防止自己给自己赋值。①如果s3空间比s1大或者相等,那没问题,但是如果比它小,还要考虑其他情况所以不如释放空间,重新创建和s1一样大的空间,再进行赋值。

2023-05-08 09:52:32 421

原创 String类 [上]

你真的了解STL中的Sring类吗

2023-02-17 13:21:49 296

原创 栈和队列的应用

数据结构之栈和队列的应用

2023-01-26 19:37:37 709

原创 初始Linux

初始操作系统 | 用户管理 | Linux的基本指令

2023-01-02 20:23:23 206 1

原创 王道第二章链表相关oj题及之后的练习(详解)

此篇为参考王道即力扣相关的题目以及自己的思路,只为参考,只是本人的学习思路

2022-08-22 09:58:30 316

原创 C++模板初阶

C++模板初阶

2022-08-12 14:09:49 255

原创 C/C++内存管理

C/C++内存管理你真的学会了吗?

2022-08-08 11:50:28 140

原创 类与对象 (下)

你真的了解C++的类与对象吗?

2022-08-04 22:11:37 155 1

原创 类和对象(中)

一、6个成员函数简要介绍如果一个类中什么成员都没有,那么简称空类,那么空类中是什么都没有吗?当然不是,因为任何一个类在不写的情况下,都会生成6个默认成员函数,分别如下:1.初始化:构造函数主要完成初始化的工作,相当于C语言中的写的Init();2.清理:析构函数主要完成清理工作,相当于C语言中写的Destory();3.拷贝:拷贝构造是使用同类对象来初始化创建对象4.赋值:赋值重载主要是把一个对象赋值给另一个对象5.取地址和重载:主要是对普通对象和const对象取地址(很少自己实现)

2022-06-02 23:16:02 196 1

原创 类与对象(上)

一、面向过程与面向对象的初步认识C语言是面向过程,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。当设计比如简单的外卖系统,面向过程关注的主要是下单、接单、送餐这些过程。体现到代码层面主要是方法或者函数。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。当设计比如简单的外卖系统时,面向对象关注的是实现类对象及类对象间的关系,用户、商家、骑手以及他们之间的关系。体现到代码层面主要是类的设计及类之间的关系。C++虽然说是面向对象的,但是.

2022-05-24 16:46:25 235 3

原创 【C++入门基础篇】---- 万字解析

一、命名冲突在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。 命名空间中的内容,既可以定义变量,也可以定义函数,类型命名空间可以嵌套 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。命名空间的使用:加命名空间名称及........

2022-05-22 20:42:59 755 4

原创 数据结构之排序 三

一、归并排序基本思想:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。1.1 递归方法静态图归并递归方法 代码://归并递归函数void _MergeSort(int* a,int left,int right,int* temp){ //不...

2022-05-18 19:57:16 321 2

原创 数据结构之排序 二

目录一、冒泡排序1.1 动态图1.2 代码1.3 优化1.4 特性1.5 三种排序的比较二、快速排序2.1 hoare版本静态图2.2 单趟 容易出现的问题2.2.1 特殊场景一2.2.2特殊场景二:2.3 单趟 正确的代码为(hoare版本)2.4 整体代码(递归)2.5 递归分析2.6 特性2.7 快速排序有序数组优化:三数取中法2.7.1 问题1:那么有什么方法可以解决快速排序有序数组的问题呢?2.7.2 问题2:为什么要解决..

2022-05-14 20:05:32 476 7

原创 数据结构之排序 一

一、 直接插入排序直接插入排序是一种简单的插入排序法,其基本思想是: 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。举例: 如我们玩扑克牌时,就用了插入排序的思想 动态图:代码:void InsertSort(int* a,int n){ //比较的次数为n-2次 for (int i = 0;i < n-1;i++) { int end = i; int x = a[end+1].

2022-05-13 14:03:54 591 6

原创 数据结构之二叉树 二

一、堆排序(1)方式一思路:建立堆,然后获取堆顶元素,再插入数组,在进行堆顶与最后一个元素交换,删除最后一个元素,从堆顶向下调整找到次大或次小的元素,依次重复//堆排序方式一:void HeapSort(int* arr,int n){ HP hp; HeapInit(&hp); int i = 0; //排成升序,建立一个n个元素的小堆,每次取堆顶的元素,堆顶的元素每次都是最小的,然后删除堆顶元素,之后就是次小的在堆顶 for (i = 0;i < n;i++) {

2022-05-07 14:20:39 241

原创 数据结构之二叉树基础相关oj题

一、单值二叉树965. 单值二叉树 - 力扣(LeetCode) (leetcode-cn.com)题目:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。思路一:在左右子树都存在的情况下,用根和左右子树相比较,如果都相等,则再比较根的左子树和其左右子树是否相等,直到其根为空,右子树也是如此。代码:/** * Definition for a binary tree node. * stru

2022-04-26 22:57:48 1111 6

原创 函数栈帧的创建和销毁(了解)

使用的环境是vs2013,不要使用太高级的编译器,越高级的编译器,越不容易学习和观察并且在不同的编译器环境下,函数调用的栈帧创建略有差异,具体细节取决于编译器的实现。1.寄存器:包括eax,ebx,ecx,edx 还有ebp,esp函数栈帧:ebp,esp这俩个寄存器中存放的是地址,这俩个地址是用来维护函数栈帧的...

2022-04-20 19:32:07 238 1

原创 数据结构之二叉树 一

一、树的概念及其结构树是一种非线性的数据结构,它由n(n>=0)个有限节点组成的一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。(1)有一个特殊的结点,称为根节点,根节点没有前驱结点。(2)除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、...、Tm,其中每一个集合Ti(1<=i<=m)又是一颗结构与树类似的子树。每颗子树的根节点有且只有一个前驱,可以有0个或多个后继,因此,树是递归定义的。生活中的..

2022-04-17 13:08:30 803 1

原创 初学matlab(第三天)

一、变量的类型转换比如:将变量类型转换int81.char字符ASCLL码:2.string(1)字符串连接方式一(2)字符串连接方式二3. 逻辑操作与赋值(1)字符串数组(2)字符比较(每个位置分别做逻辑运算)(3)字符串与字符串的比较说明:tf=strcmp(s1,s2)比较s1和s2,如果二者相同,则返回1(true),否则返回0(false)。如果文本的大小和内容相同,则它们将视为相等。返回结果...

2022-04-14 22:56:43 866

原创 数据结构之循环队列

目录一、循环队列的概念二、设计循环队列思路一:数组实现思路二:链表实现一、循环队列的概念为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。环形队列可以使用数组实现,也可以使用循环链表实现。重点:循环队列,无论使用数组实现还是链表实现,都要多开一个空间,也就意味着,要是一个存.

2022-04-12 21:23:26 7178 6

原创 数据结构之队列

一、队列(1)队列的概念队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出(FIFO)的原则。入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为对头如图:二、队列的实现队列既可以用数组和也可以用链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,每次删除队头,后面的元素就要向前移动,所以效率比较低(1)问题1:结构体和指针变量传参 1.当我们创建的只是一个指针变量的时候,如果我们要改变这个指针变..

2022-04-11 23:14:02 2217 10

原创 数据结构之栈

一、栈(1)栈的概念:是一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据元素遵循后进先出或者先进后出的原则。如图:(2)压栈:栈的插入操作叫做进栈、压栈或者入栈,从栈顶压入数据 出栈:栈的删除操作叫做出栈。出数据也在栈顶如图 进栈:如图 出栈:(3)栈的实现:栈的 实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小如图 ...

2022-04-08 15:26:22 2615 4

原创 带头结点双向循环 -- 双向链表

一、双向链表初始化图解:phead链表的最后一个节点要指向第一个节点,第一个节点要指向最后一个节点,而第一个节点和最后一个节点都是第一个节点,所以phead->next = phead->prev = phead;代码:LTNode* InitList(){ //带头节点,循环链表 //哨兵位头结点 LTNode* phead = (LTNode*)malloc(sizeof(LTNode)); phead->next = phead->prev = phe

2022-04-06 15:05:56 2901 8

原创 初学matlab(第二天)

一、创建并运行第一个script步骤一:创建+代码步骤二:运行点击运行或按键盘F5二、常用快捷键%:单行注释ctrl + r:多行注释ctrl + t:取消多行注释ctrl + i:智能缩进%%:指定节ctrl + enter:执行节f5:运行程序三、debug调试程序第一步:加断点第二步:F5运行程序第三步:清除断点并且退出调试四、条件语句(1) if elseif else格式:if condi...

2022-04-04 19:40:11 2273 15

原创 链表相关oj题 三

一、环形链表II142. 环形链表 II - 力扣(LeetCode) (leetcode-cn.com)题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际..

2022-04-04 15:43:47 913 9

原创 初学MATLAB(第一天)

一、练习:%第一题:>> cos(((1+2+3+4)^3/5)^0.5)ans = -0.0050%第二题:>> sin((pi)^0.5) +log(tan(1))ans = 1.4228第三题:>> 2^(3.5*1.7)ans = 61.8199第四题:% Y = exp(X) 为数组 X 中的每个元素返回指数 e^x>> exp(sin(10))ans = 0..

2022-04-02 23:11:41 2118 6

原创 无头节点--单链表

目录一、单链表打印:二、增容三、单链表尾插四、单链表头插五、单链表尾删六、单链表头删七、单链表的查找八、单链表在pos之后插入X九、单链表在pos之前插入X十、删除pos位置十一、删除pos之后的位置十二、销毁链表总代码:Slistexe.hSlistexe.ctest.c部分运行结果:​一、单链表打印://打印void SListprint(SL* phead){ SL* cur = phead; whil...

2022-04-01 17:39:24 1676 9

原创 链表相关oj题 二

一、分割链表86. 分隔链表https://leetcode-cn.com/problems/partition-list/题目:给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。图解:代码:struct ListNode* partition(struct ListNode* head, int x){ //新建立俩个链表,链表1为less(..

2022-03-29 20:48:33 1018 3

原创 链表相关oj题 一

203. 移除链表元素 - 力扣(LeetCode) (leetcode-cn.com)题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。图解分析:代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; ...

2022-03-27 16:16:04 705 4

原创 数据结构之顺序表

定义:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。静态顺序表:#define N 1000typedef int SLDataType;//重新定义容易更改类型//静态顺序表 typedef struct SeqList{ SLDataType a[N]; int size;//表示数组存储了多少个数据}SL;动态顺序表:typedef int SLDataType;//动态顺序表 typ

2022-03-23 20:01:12 1629 2

原创 文件操作 --- 知识点整理

一、文件1.使用文件我们可以将数据直接存放在电脑的硬盘上,做到数据的持久化。2.文件分为俩种:程序文件、数据文件程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj)可执行程序(windows环境下后缀为.exe)3.文件名:一个文件需要有一个唯一的文件表示,例如:c:\code\test.txt文件名包含3部分:文件路径c:\code文件主干:\test文件后缀 .txt二、文件的打开和关闭2..1文件指针每个被使用的文件都

2022-03-19 16:15:17 390 2

空空如也

空空如也

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

TA关注的人

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