- 博客(35)
- 收藏
- 关注
原创 【数据结构初阶】顺序结构二叉树(堆)接口实现超详解
1树1.1 树的概念与结构1.2 树的相关术语1.3 树的表示1.4 树形结构实际运用场景2二叉树2.1 概念与结构2.2 特殊的二叉树2.2.1 满二叉树2.2.2 完全二叉树2.3 二叉树存储结构2.3.1 顺序结构2.3.2 链式结构3实现顺序结构二叉树(小堆)3.1 堆的概念与结构3.2 堆的实现3.2.1 堆的定义3.2.2 初始化与销毁3.2.3 交换3.2.4 入堆与向上调整函数3.2.5 判空与取堆顶数据与堆的大小3.2.6 出堆与向下调整大堆
2024-09-17 19:01:47 1172 102
原创 【数据结构初阶】队列接口实现及用队列实现栈超详解
1. 概念1. 1 队列底层结构选型1. 2 队列定义2. 接口实现2. 1 初始化2. 2 判空2. 3 入队列2. 4 出队列2. 5 队尾元素和队头元素和队列元素个数2. 6 销毁2. 7 接口的意义3. 经典OJ题3. 1 用队列实现栈3. 1. 1 栈的定义3. 1. 2 栈的初始化3. 1. 3 入栈3. 1. 4 出栈3. 1. 5 取栈顶元素3. 1. 6 判空3. 1. 7 销毁
2024-09-14 17:30:37 1176 120
原创 【数据结构初阶】栈接口实现及经典OJ题超详解
1. 概念与结构1. 1 栈底层结构选型2. 栈实现2. 1 栈的定义2. 2 栈的初始化2. 3 入栈2. 4 判空2. 5 出栈2. 6 取栈顶元素2. 7 栈大小2. 8 栈销毁2. 9 打印3. 经典OJ题3. 1 有效的括号
2024-09-13 10:44:04 1015 82
原创 【数据结构初阶】链表分类与双向带头循环链表接口实现
1. 链表的分类2. 双向带头循环链表接口实现2. 1 结点声明2. 2 创建链表节点2. 3 初始化链表2. 4 打印链表2. 5 尾插2. 6 判空2. 7 尾删2. 8 头插2. 9 头删2. 10 查找2. 11 在指定位置删除与插入2. 12 销毁3. 链表接口测试4. 单链表与双链表5. 顺序表与链表
2024-09-07 15:58:54 1413 121
原创 大二必做项目贪吃蛇超详解之下篇游戏核心逻辑实现
5. 核心逻辑实现分析5. 3 GameRun5. 3. 1 PrintScore5. 3. 2 CheckVK5. 3. 3 BuyNewNode5. 3. 4 NextIsFood5. 3. 4 EatFood5. 3. 5 NotFood5. 3. 6 CheckIsWall和CheckIsSelf5. 4 GameOver6. 已知Bug与一些可能的改进意见
2024-09-03 21:59:19 2171 126
原创 大二必做项目贪吃蛇超详解之中篇游戏设计与分析
1. 地图1. 1 本地化1. 2 类项1. 3 setlocale函数1. 4 宽字符的打印1. 5 地图坐标2. 蛇身和食物3. 数据结构设计4. 游戏流程设计5. 核心逻辑实现分析5. 1 游戏主逻辑5. 2 GameStart5. 2. 1 SetInit5. 2. 2 Welcome5. 2. 3 InitMap5. 2. 4 InfoPrint5. 2. 5 SnakeInit5. 2. 6 CreatFood
2024-09-01 13:21:40 2192 113
原创 大二必做项目贪吃蛇超详解之上篇win32库介绍
1. 游戏背景2. 游戏效果演示3. 项目目标4. 前置知识5. Win32 API5. 1 控制台程序(Console)5. 2 控制台屏幕上的坐标 `COORD`5. 3 GetStdHandle5. 4 GetConsoleCursorlnfo5. 4. 1 CONSOLE_CURSOR_INFO5. 4. 2 SetConsoleCursorlnfo5. 5 SetconsoleCursorPosition5. 6 GetAsyncKeyState
2024-08-26 15:59:58 2235 127
原创 【数据结构初阶】单链表接口实现超详解
1. 顺序表问题与思考2.单链表2. 1 概念与结构2.1.1 结点2.1.2 链表的性质3. 单链表实现3. 1 单链表初始化3. 2 单链表的打印3. 3 头插3. 4 创建新节点3. 5 尾插3. 6 头删和尾删3. 7 查找3. 8 在指定位置之后插入或删除3. 9 在指定位置前面插入或删除指定位置3. 10 销毁
2024-08-22 19:35:48 2030 107
原创 【数据结构初阶】顺序表接口实现及双指针法超详解
1. 线性表2. 顺序表概念与结构3. 顺序表分类3. 1 静态顺序表3. 2 动态顺序表3. 2. 1 前期准备3. 2. 1 创建与销毁3. 2. 2 打印3. 2. 3 尾插3. 2. 3 检查空间是否足够3. 2. 4 头插3. 2. 5 尾删和头删3. 2. 6 查找3. 2. 7 插入与删除3. 2. 8 注意事项总结3. 2. 8 最终测试4. 双指针法4. 1 移除元素4. 2 删除有序数组中的重复项4. 3 合并两个有序数组
2024-08-20 14:36:36 1618 70
原创 VS2022实用调试技巧超详解
1. 什么是 bug2. 什么是调试(debug)3. Debug和 Release4.VS调试快捷键4.1 环境准备4.2 调试快捷键5. 监视和内存观察5.1 监视5.2 内存6. 调试举例17. 调试举例29. 编程常见错误归类9. 1 编译型错误9.2 链接型错误9. 3 运行时错误
2024-08-17 19:18:19 1762 75
原创 数据结构初阶——算法复杂度超详解
1.数据结构前言1.1 数据结构1.2 算法2.算法效率2.1 复杂度的概念3. 时间复杂度3.1 大O的渐进表示法3.2 时间复杂度计算示例 示例1 示例2 示例3 示例4 示例5 示例6 示例74. 空间复杂度4.1 空间复杂度计算示例4.1.1 示例14.1.2 示例25. 常见复杂度对比6.复杂度算法题——[旋转数组](https://leetcode.cn/problems/rotate-array/description/)思路1思路2思路3
2024-08-15 21:12:13 1682 64
原创 C语言预处理超详解
1. 预定义符号2. `#define` 定义常量3. `#define`定义宏4. 带有副作用的宏参数5.宏替换的规则6. 宏函数的对比7. #和##7. 1 #运算符7. 2 ## 运算符8. 命名约定9. `#undef`10. 命令行定义11. 条件编译12. 头文件的包含12. 1 头文件被包含的方式:12. 1. 1 本地文件包含12. 1. 2 库文件包含12. 2 嵌套文件包含13. 其他预处理指令
2024-08-14 15:28:06 1275 49
原创 C语言编译和链接超详解
1. 翻译环境和运行环境2. 翻译环境2.1 预处理(预编译)2. 2 编译2. 2. 1 词法分析2. 2. 2 语法分析2. 2. 3 语义分析2. 3 汇编2. 4 链接3. 运行环境
2024-08-12 08:00:00 1284 76
原创 C语言文件操作超详解
1. 为什么使用文件2. 什么是文件2. 1 程序文件2. 2 数据文件2. 3 文件名3. 二进制文件和文本文件?4. 文件的打开和关闭4. 1 流和标准流4. 1. 1 流4. 1. 2 标准流4. 2 文件指针4. 3 文件的打开和关闭5. 文件的顺序读写5. 1 顺序读写函数介绍5. 2 对比一组函数:6. 文件的随机读写6. 1 fseek7. 2 ftell6. 3 rewind7. 文件读取结束的判定7. 1 被错误使用的 `feof`8.文件缓冲区
2024-08-10 18:17:16 2344 62
原创 C语言动态内存管理超详解
1.为什么要有动态内存分配2.malloc 和 free3.calloc 和 realloc4.常见动态内存错误4.1对 NULL 指针的解引用操作4.2对动态开辟空间的越界访问4.3对非动态开辟内存使用 free 释放4.4使用free释放一块动态开辟内存的一部分4.5对同一块动态内存多次释放4.6动态开辟内存忘记释放(内存泄漏)5.柔性数组5.1柔性数组的特点5.2柔性数组的使用5.3柔性数组的优势6.动态内存经典笔试题分析7.补充——C/C++中程序内存区域划分
2024-08-07 20:15:46 1213 79
原创 C语言自定义类型联合体与枚举超详解
1. 联合体1. 1 联合体类型的声明1. 2 联合体的特点1. 3 相同成员的结构体和联合体对比1. 4 联合体大小的计算1. 5 联合体的练习2. 枚举2. 1 枚举类型的声明2. 2 枚举类型的优点2. 3 枚举类型的使用2. 4 枚举类型的实际使用
2024-08-05 11:41:56 1523 71
原创 C语言自定义类型结构体与位段超详解
1. 结构体类型的声明1. 1 结构体声明1. 2 结构体变量的创建和初始化1. 3 结构体的特殊声明1. 3 结构体的自引用2. 结构体内存对齐2. 1 对齐规则2. 2 为什么存在内存对齐2. 3 修改默认对齐数3. 结构体传参4. 结构体实现位段4. 1 什么是位段4. 2 位段成员的内存分配4. 3 位段的跨平台问题4. 4 位段的使用4. 5 位段使用的注意事项
2024-08-02 20:25:34 1690 88
原创 C语言数据在内存中的存储超详解
1. 整数在内存中的存储2. 大小端字节序和字节序判断2. 1 什么是大小端?2. 2 为什么会有大小端?2. 3 练习3. 浮点数在内存中的存储3. 1 一个代码3. 2 浮点数的存储3. 2. 1 浮点数存的过程3. 2. 2 浮点数取的过程3. 3 题目解析
2024-08-01 22:15:47 2018 82
原创 C语言内存函数超详解
1. memcpy1. 1 memcpy 的使用1. 2 memcpy 的模拟实现2. memmove2. 1 memmove 使用3. memset3. 1 memset 函数的使用3. 2 memset 的模拟实现4. memcmp4. 1 memcmp 函数的使用4. 2 memcmp 的模拟实现
2024-07-30 15:31:23 1662 79
原创 C语言字符函数与字符串函数超详解
1.字符分类函数2.字符转换函数3.1strlen 的使用3.2strlen 的模拟实现4.1strcpy 的使用4.2strcpy 的模拟实现5.1strcat 的使用5.2strcat 的模拟实现6.1strcmp 的使用6.2strcmp 的模拟实现7.strncpy 函数的使用8.strncat 函数的使用9.strncmp 函数的使用10.1strstr 的使用10.2strstr 的模拟实现11.strtok 函数的使用12.strerror函数的使用
2024-07-27 22:17:23 1371 37
原创 C语言指针超详解——最终篇一
1. 回调函数是什么2. qsort 函数2.1 概念2.2 qsort 排序 int 类型数据2.3 使用 qsort 排序结构体数据3. 模拟实现 qsort 函数4. sizeof 与 strlen 的对比4.1 sizeof4.2 strlen4.3 sizeof 与 strlen 的对比5. 数组和指针笔试题解析5.1 一维数组5.2 字符数组
2024-07-21 16:48:48 1738 17
原创 C语言指针超详解——进阶篇
C语言指针系列文章目录,字符指针变量,数组指针变量, 概念,数组指针变量的初始化, 二维数组传参的本质,函数指针变量,函数指针变量的创建,指针变量的使用, 两个有趣的代码,代码一,代码二,typedef 关键字,函数指针数组,转移表,
2024-07-17 17:44:00 1283 15
原创 C语言指针超详解——强化篇
assert 断言 指针的使用和传址调用 strlen的模拟实现 传值调用和传址调用数组名的理解 使用指针访问数组 一维数组传参的本质6. 冒泡排序 二级指针 指针数组 指针数组模拟实现二维数组
2024-07-15 12:22:44 1311 17
原创 c语言指针超详解——入门篇
内存与地址,指针变量和地址,取地址操作符,指针变量和解引用操作符 ,指针变量的大小,指针变量类型的意义指针的解引用指针+-整数void* 指针const 修饰指针const 修饰指针指向的变量const 修饰指针变量指针运算指针+-整数指针 - 指针指针的关系运算野指针野指针的成因如何规避野指针指针初始化小心指针越界指针变量不再使用时,及时置NULL,指针使用之前检查有效性避免返回局部变量的地址
2024-07-13 21:07:13 1244 6
原创 c语言操作符万字超详解
原码,反码,补码,错误表达式分析,优先级,结合性,移位操作符,位操作符,逗号表达式,下标引用操作符,函数调用操作符,结构成员访问操作符
2024-07-10 11:19:41 1258 10
原创 C语言分支与循环基础知识详解
C语言是结构化的程序设计语言,这里的结构指的是顺序结构选择结构循环结构,C语言是能够实现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合。
2024-06-17 20:46:14 1283 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人