自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

隐含的this指针、什么是类、struct与class、访问限定符、封装、类和对象的存储

2024-04-29 00:08:37 446

原创 从C语言到C++过渡篇(快速入门C++)

C语言->C++的过渡(快速入门C++)命名空间、C++输入与输出(cout && cin)、缺省参数、函数重载引用、内联函数、auto 关键字、区别于C语言的空指针(nullptr)

2024-04-27 00:43:41 685

原创 常见七大排序(汇总)

快速排序(快排)(递归&非递归) 、 归并排序(递归&非递归) 、 希尔排序 、 堆排序 、 直接插入排序 、 选择排序 、冒泡排序 汇总

2024-04-24 20:47:51 583

原创 数据结构——二叉树链式结构(递归实现)

二叉树的遍历分为前序 —— 根 左子树 右子树中序 —— 左子树 根 右子树后序 —— 右子树 左子树 根层序 —— 一层一层往下遍历我们在看二叉树时应该这样看:如下这是一棵二叉树最上面的节点是根,下面是两大棵树,左节点以下的是左子树,右边的则是右子树接下来假设我们先遍历左,那么我们就该这么看:这一个整个左子树里面接着分成——根、左子树、右子树再往下分:根、左子树、右子树。

2024-03-20 01:29:22 902 1

原创 数据结构——树(二叉树)的基础知识 & 堆 & 堆排序 & 时间复杂度讲解 & topk问题(详解)

由于堆的本质是满二叉树,且堆实现的底层结构也和二叉树有关,所以在这里我们需要先介绍一下树的相关知识如上是一棵树之所以叫做树,是因为他看起来像是一棵倒挂的树,根朝上,叶子朝下,如上,我们的 1 号节点就是这棵树的根,而 2、3、4 号都是 1 的子树但是有一个点需要注意:子树之间是不能相连的,或者说是不能成环的,如下:这样就不是一棵树了,因为子树之间相连了如上,这也不是一棵树每个节点的度不大于 2 的树,就是二叉树。

2024-03-14 00:01:13 809

原创 数据结构——栈和队列(详解)

栈,一种仅允许在一端进,一端出的结构如上图所示,进数据和出数据的一端叫做栈顶,而相反的一段则叫做栈底数据从栈顶入,从栈顶出我们可以以吃货的视角打开栈:栈就像一个肉串,串肉要从尖的一段串进去,同时也是从尖的一端被吃掉我们还能发现,先被串进去的肉,会最后被吃掉栈也是如此,符合FILO原则,FILO就是 first in last out,翻译过来就是先进后出就像我们日常生活中的排队一样,队列就是从一端进,从另一端出。

2024-03-09 20:38:00 732 1

原创 初阶数据结构——链表专题——双链表详解

至此,我们对双链表相关内容的讲解就结束啦!如果对你有帮助,希望可以多多支持!!!

2024-03-03 00:28:41 646 1

原创 初阶数据结构——链表专题——单链表详解

我们设想一个场景:假如现在有一排连在一起的房间,而我们现在在第一个房间里,每个房间都有一扇通往下一个房间的门,但是上了锁,每个锁都不一样,如下:问:我们如何从第一间房间走到最后一间房间呢?答:在每一间房间里都放上通往下一间房间的钥匙就可以了链表的核心原理就是如此我们的链表里面不仅存着其应该带的数值,还存放着指向下一个节点的地址,地址连着地址,就像一根链子一样把数据都串起来,所以才叫链表至此,我们单链表的相关知识就讲完啦!!接下来为各位带来的是双链表的相关知识。

2024-03-01 12:17:28 749 1

原创 初阶数据结构——通讯录项目(顺序表的应用)

/通讯录数据类型int age;}Info;我们的通讯录包含了 姓名,年龄,性别,电话号码,地址因为每次都写 struct PersonInfo 会很麻烦,所以我们就用 typedef 对该结构体进行了重命名——Info,后续要引用该结构体时,我们只需要写 Info 就可以了至此,我们的通讯录实现,就讲完啦如果觉得对你有帮助的,希望可以多多支持喔!!!

2024-02-28 16:14:17 1010 1

原创 初阶数据结构——顺序表(详解)

数据结构,就是数据和结构我们平常看到的各种页面,每个人的身份信息等等,这些都是数据而结构,就是我们用不同的方式管理数据,看个例子:我们看到百度热搜部分,数据以 1、2、3、4、5 的方式被管理了起来,这是一种结构再比如我们去饭店吃饭,我们有时可能需要拿号等位置,因为饭店需要以这种方式管理顾客,才能防止场面过于混乱,这也是一种结构而我们的数据在我们的电脑里也需要被管理起来,所以才有了数据结构至此,我们初阶数据结构里,顺序表的相关知识就讲完啦接下来会给大家带来顺序表的应用——通讯录的相关讲解。

2024-02-26 23:48:19 984 1

原创 C语言——动态内存管理

C语言还提供了另一种开辟内存空间的函数——calloc参数 1 是需开辟的元素个数参数 2 是每个元素的大小(如:int 的大小是4个字节)if (!p)return 1;realloc的出现,使得动态内存管理变得更加灵活当我们用malloc或calloc开辟的空间用完了时,我们就可以使用realloc函数对空间进行扩容参数 1 是指向要扩容空间的指针参数 2 是扩容之后新的空间的总大小如果申请失败,那么realloc函数会返回一个空指针(NULL)

2024-02-22 22:21:38 966 1

原创 C语言——贪吃蛇(详解)

背景音乐播放贪吃蛇地图的打印吃食物边长贪吃蛇的移动计算得分撞墙与撞自身结束游戏并打开原神相关网站贪吃蛇的加速减速暂停游戏Win32 API 中有许多函数,我们今天将会学习里面的几种函数以帮助我们实现贪吃蛇小游戏//蛇身结点的定义int x;int y;到这里,我们的贪吃蛇就完结,撒花啦!各位如果要看总代码的话,可以点开下方我的gitee如果各位喜欢的话,希望可以多多支持!!!

2024-02-10 20:55:21 1498 3

原创 C语言——结构体详解

至此,我们的结构体就讲完了,如果对你有帮助的话,希望可以留下一个赞!

2024-02-03 12:36:58 870 2

原创 C语言——指针详解

如上就是指针相关知识的讲解了,如果喜欢的话希望可以多多关注!

2024-01-17 11:23:35 805 2

原创 函数栈帧的创建与销毁(汇编代码角度详解)

我们在调用函数的时候,都会在内存里的栈区上开辟一块空间,而这块空间,我们就称之为是该函数的函数栈帧。如下,假设我们有一个函数叫Add,那么如图所示的空间就叫做Add函数的函数栈帧而在正式开始介绍之前,我们还需了解两个主要的寄存器:esp 和 ebp,这两个寄存器中放的是地址,而这两个地址是用来维护函数栈帧的。我们这么来理解,一个函数的创建需要在内存上面开辟空间,而这块空间就是由esp和ebp来共同维护的,两者中间的那块空间就是正在执行的函数的函数栈帧。而esp又被称为栈顶指针,ebp又被称为栈底指针。

2023-11-17 08:05:25 56

原创 C语言——分支与循环(全)

在C语言中共有三种结构:顺序结构,选择结构,循环结构我们都知道 if 的意思为如果,那么我们在C语言该怎么使用他呢?我们先来看一看下面这一串代码int main()printf("可以谈恋爱了\n");return 0;我们可以知道,当我们输入的结果为 18 的时候,则屏幕上会告诉你 你可以谈恋爱了。如果 age 不为 18 的时候,则不会有任何结果。那么问题来了,我们如果真的要进行判断的话,仅仅只是一个if真的够吗?我们能否有办法实现如果未成年,就执行不给谈恋爱的方法呢?

2023-11-01 12:48:09 61

原创 C语言,冒泡排序(含qsort函数的使用与实现(回调函数))

cmp_float 将两个元素的地址用void* 接收,并分别命名为a b,既然是void*,我们就将其强制类型转换成float* ,又因为是地址,所以我们需要将其解引用一下,就得到了 * ( flaot* ) a,同理,我们也可以得到 * ( flaot* ) b,又因为要返回一个整数,那我们就将两个相减之后的值强制类型转换为int再 return 回去不就可以啦!我们且看,我们传过去的是一个char类型的地址,那swap函数就应该拿一个char*来接收吧,那接收完之后,就该开始交换了。

2023-10-23 23:52:23 942

原创 (C语言) strlen函数的实现

那既然如此的话,我们就可以让电脑一个一个地数,数完一个之后就换下一个,当他碰到'\0'的时候就停下来不数了。那么,每当他递归一次,他就应该离'\0'更近一点,当他递归到'\0'时,就return 0。我们都知道字符的最后一位藏着一个'\0',而'\0'是识别字符的结束标志,简单点理解就是电脑在看到'\0'时便不会再向后识别。那这么想的话,我们是不是只需要将'\0'的地址用指针表示出来,再与首字母的地址相减,就可以得到我们想要的字符的长度啦呀!在介绍三种实现方法之前,我们先来简单提一下main函数里的内容。

2023-10-09 20:23:26 152 1

原创 C语言——扫雷(含递归展开)

我们仔细看一看这张ASCII码表就会发现,字符‘0’的大小为48,而其他字符的值减去字符‘0’的值都等于我们想要的数字,比如字符‘1’的值为49,‘1’ - ‘0’ == 49 - 48 = 1。那进入函数主体之后,我们先让该坐标在show上变成空格(能进入函数主体的周围一圈都没有雷),而后我们发现,我们需要让这个函数做的,是让其扩张一圈,那我们总该需要知道其周围一圈各自的坐标吧,随后再用双层 for 循环代表这一圈里的内容,易得 x 的坐标是从x-1到x+1的,y的坐标则是从y-1到y+1。

2023-10-02 22:19:01 209 1

空空如也

空空如也

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

TA关注的人

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