自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 8.stack和queue

双端队列,是一种双开口的“连续”空间的数据结构,是vector和list的“缝合怪”deque由一段段连续的小空间拼接而成,类似于一个动态的二维数组,由一个**指针数组(中控数组)**来进行控制(2)deque的优缺点①deque的头/尾插效率很高,甚至高于vector和list②deque的随机访问效率略逊于vector③deque在中间位置插入和删除数据效率很低(3)选择deque作为stack和queue默认底层容器的原因:栈和队列不需要也无法访问中间的数据,

2025-02-07 20:34:01 527

原创 7.list

list的底层是带头循环双向链表带头:含哨兵位循环:尾节点的next指针指向哨兵位双向:每个节点具有两个指针域,一个指针指向前一个结点。

2025-02-07 17:29:28 463

原创 6.vector

本博客对C++中的vector进行梳理。

2025-02-06 20:15:34 471

原创 5.string类

本博客对C++中的string类进行梳理。

2025-01-15 17:18:41 270

原创 4.模板初阶

class 类模板名// 类内成员定义对模板,不要把声明和定义分离到两个文件,.h和.cpp会出现链接错误。

2024-10-29 15:57:31 233

原创 3.C++内存管理

多种初始化方式在申请自定义类型空间时,new会调用构造函数,delete会调用析构函数(malloc和free不会)申请和释放单个元素的空间:用new和delete操作符;申请和释放连续的空间,使用new[]和delete[],要匹配使用。

2024-10-29 15:56:05 376

原创 2.3类和对象(下)

的地方3.必须在初始化列表初始化的成员。

2024-10-19 17:13:35 869

原创 2.2类和对象(中)

(1)是一个特殊的构造函数(2)第一个参数是自身类类型的引用,且任何额外的参数都有默认值。

2024-10-10 15:40:36 1170

原创 2.1类和对象(上)

class。类中的变量称为类的属性/成员变量,类中的函数称为类的方法/成员函数(2)为区分成员变量,一般会加点特殊标识(比如 _ )(3)C++中struct升级成了类,也兼容C的用法,但建议平时还是用class定义类,便于区分(4)定义在类里面的成员函数默认为inlineclass Datepublic:_day = day;private:// 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如_//成员变量放在成员函数的上面/下面无所谓int _year;

2024-10-10 15:39:34 521

原创 1.C++入门基础

(1)关键字:namespace,后面跟命名空间的名字,再接一对{}。可以定义变量/函数/类型等(2)namespace的本质:定义一个域,有了域隔离,命名冲突就解决了(3)namespace只可以定义在全局,支持嵌套定义——即命名空间里面还可以有命名空间(4)工程上,多文件中的同名namespace会认为是同一个命名空间,不会冲突(5)C++标准库都放在std命名空间中(standard)// bit是命名空间的名字,一般开发中是用项目名字做命名空间名。int val;

2024-09-21 23:11:41 771

原创 6.4排序——归并排序

1.时间复杂度:O(N·logN)2.空间复杂度:O(N)3.稳定性:稳定4.缺点在于需要O(N)的空间复杂度,归并排序更多是解决在磁盘中的外排序问题。

2024-09-12 17:11:47 467

原创 6.3排序——冒泡排序+快速排序

(1)整体综合性能和使用场景都较优(这也是为什么这个排序敢叫快速排序)(2)时间复杂度:o(N·logN)(3)空间复杂度:o(logN)(4)稳定性:不稳定。

2024-09-12 17:10:52 971

原创 6.2排序——选择排序与堆排序

(1)效率不是很好,实际中很少使用(2)时间复杂度:o(N²)(3)空间复杂度:o(1)(4)稳定性:不稳定。

2024-09-06 20:04:11 248

原创 6.1排序——插入排序与希尔排序

(1)时间复杂度:o(N²)(2)空间复杂度:o(1)(3)稳定性:稳定(4)元素集合越接近有序,算法效率越高(1)希尔排序是对直接插入排序的优化(2)gap>1时是预排序,目的是让数组更接近有序。当gap==1的时候,数组已经接近有序了,此时进行直接插入排序就会很快,性能得到了优化(3) 希尔排序时间复杂度计算难度大,限于本人水平,只能在这里写个结论,大约是o(N^1.3)

2024-09-06 10:25:09 1250

原创 5.4二叉树——经典OJ题

本篇博客手撕几道经典的二叉树OJ题,它们都很好地体现了二叉树中蕴含的题目均已插入超链接,点击即可跳转~

2024-08-31 16:07:02 1136

原创 5.3二叉树——二叉树链式结构实现

的。

2024-08-31 15:22:43 721

原创 5.2二叉树——堆

开始,往前依次遍历,有需要就调整思想:先把小的树调成堆,再逐层往上,不断扩大“堆的势力范围”特点:节点数量多的层调整次数少,节点数量少的层调整次数多。

2024-08-28 10:38:11 1213

原创 5.1二叉树——基本概念梳理

(2)满二叉树(特殊的完全二叉树):每层的节点数都达到最大。

2024-08-25 11:23:17 420

原创 4.2较难的栈和队列OJ

本篇博客来手撕三道稍有难度的栈和队列相关OJ,题目均已插入超链接,点击即可跳转~

2024-08-24 17:56:49 664

原创 4.1栈和队列基本概念+经典OJ题

本篇博客来梳理栈和队列基本概念以及一道经典OJ题,题目已插入超链接,点击即可跳转~

2024-08-22 18:21:02 383

原创 3.2较难的链表OJ

本篇博客来解析三道较有难度的链表OJ题,题目均已插入超链接,点击即可跳转~

2024-08-18 18:14:22 505

原创 3.1链表基本概念+经典OJ题

本篇博客来探讨数据结构当中的链表,并且来手撕一些经典算法OJ题,OJ题已插入超链接,点击可直接跳转~

2024-08-18 09:32:36 596

原创 2.2算法的时间复杂度与空间复杂度——经典OJ

这里需要理清这个算法的时间复杂度,解析如图(设numsSize=N)从示例1不难看出,真实旋转次数是k%numsSize,也就是k%N,从周期的角度就可以理解这一点;每转一次就要把整个数组动一遍,那转k次就要动k*N遍,时间复杂度就出来了,显然不符合题目要求。

2024-08-17 20:05:59 420

原创 2.1算法的时间复杂度与空间复杂度

本篇博客介绍算法的时间复杂度与空间复杂度。

2024-08-17 18:34:35 368

原创 17.贪吃蛇——具体代码实现

本篇博客梳理贪吃蛇小游戏具体的代码实现。

2024-08-12 11:41:20 527

原创 16.贪吃蛇——游戏的核心逻辑与准备工作

在梳理完前置知识之后,就可以正式进入贪吃蛇游戏的设计了,本篇博客梳理游戏的核心逻辑与开始写代码之前的准备工作。

2024-08-11 22:29:07 524

原创 15.贪吃蛇——前置准备知识

函数,枚举,结构体,动态内存管理,预处理指令,链表,WIN32 API等键盘上每个键对应虚拟键值,传给vKey之后,函数通过返回值分辨按键的状态1)最高位=1:说明被按下2)最高位=0:说明是抬起状态3)最低位=1:该按键被按过,否则为0当我们要判断一个按键是否被按过,封装一个宏即可1 : 0)1 : 0)1 : 0)1 : 0)1 : 0)1 : 0)0x11 : 0)?

2024-08-10 17:45:43 608

原创 1.顺序表

本篇博客探讨数据结构当中的顺序表。

2024-07-31 17:16:03 147

原创 14.编译和链接

本篇博客从宏观角度梳理编译和链接。

2024-07-29 16:59:46 265

原创 13.文件操作

本篇博客探讨C语言中的文件操作。

2024-07-29 09:38:56 627

原创 12.动态内存管理

本篇博客探讨C语言中的动态内存管理。

2024-07-29 09:11:26 399

原创 11.自定义类型:联合与枚举

本篇博客探讨C中除了结构体以外的两种自定义类型:联合和枚举。

2024-07-28 20:06:34 288

原创 10.自定义类型:结构体

(1)位段的成员可以是int,unsigned int,signed int或者是char(2)位段的成员名后面有一个冒号和数字,表示该成员占多少个bit位struct Aint _a:2;//_a占2个bit位int _b:5;//_b占5个bit位int _c:10;//_c占10个bit位int _d:30;//_d占30个bit位。

2024-07-21 15:11:31 708

原创 9.整数和浮点数在内存当中的存储

小端存储模式==>数据的低位字节存放于低地址,大端反之,即数据的高位字节存放于低地址。

2024-07-14 09:02:07 513

原创 8.C语言内存函数

本篇博客介绍C语言内存函数。

2024-07-09 10:54:46 237 1

原创 7.C语言字符函数和字符串函数

本篇博客介绍C语言当中的字符函数和字符串函数。

2024-07-09 10:44:21 1060

原创 6.指针(4)指针进阶部分

把函数的指针(地址)作为参数传递给另一个函数,该指针被用来调用其所指向的函数时,被调用的函数就是回调函数。

2024-04-04 11:39:28 181 1

原创 5.指针(3)指针进阶部分

/利用函数指针数组实现计算器int add(int a, int b) //加法函数int sub(int a, int b) //减法函数int mul(int a, int b) //乘法函数return a*b;int div(int a, int b) //除法函数int main()int x, y;//转移表doprintf( "请选择:" );printf( "输⼊操作数:" );

2024-03-29 21:33:47 372 1

原创 4.指针(2)指针进阶部分

本篇继续对指针的知识进行梳理。

2024-03-18 23:41:39 345

原创 3.指针(1):指针基础知识

(1)地址总线:32位机器有32根地址总线,每根线有两态(0/1),可以表示个不同的地址。(2)不能直接进行指针的±整数和解引用的运算(不知道访问几个字节)3.指针变量的大小:地址线(平台)决定指针变量的大小,(2)|指针-指针|(绝对值)=两个指针之间元素的个数。(2)小心指针越界(C语言本身不会检查数组的越界行为)(3)指针指向的空间释放**(空间还给操作系统)**(1)指针初始化:不明确在指针指向哪里,可以。(2)指针越界访问(通常是超出数组的范围)(4)避免返回局部变量的地址【1.(3)】

2024-03-09 21:21:09 863

贪吃蛇源码压缩包,读者可自行下载

贪吃蛇源码压缩包

2024-08-12

C语言扫雷游戏代码文件

包含game.h,game.c,test.c

2024-01-23

聊聊C语言的分支与循环

简单介绍一下C语言的分支和循环结构~

2023-12-03

空空如也

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

TA关注的人

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