- 博客(124)
- 资源 (2)
- 收藏
- 关注
原创 数据结构 学习 图 2025年6月14日 12点57分
强连通:在有向图中,如果从顶点u到v有一条路径,且从v到u也有一条路径,则称u和v强连通强连通分量:有向图的极大强连通子图关节点(割点):删除该顶点会增加图的连通分量数量桥(割边):删除该边会增加图的连通分量数量双连通分量:不含关节点的极大连通子图欧拉回路:图中经过每条边恰好一次并回到起点的闭合路径欧拉路径:图中经过每条边恰好一次的路径(不一定闭合)欧拉图:存在欧拉回路的图半欧拉图:存在欧拉路径但不存在欧拉回路的图哈密尔顿路径:经过图中每个顶点恰好一次的路径哈密尔顿回路:闭合的哈密尔顿路径(起点=终点)
2025-06-14 15:30:38
391
原创 数据结构 学习 队列 2025年6月14日 11点22分
单调队列是一种特殊的队列数据结构,它保持队列中元素的单调性(单调递增或单调递减)。)原则,但与普通队列不同的是,循环队列的最后一个元素连接回第一个元素,形成一个环形结构。单调队列通过维护数据的单调性,将原本O(nk)的滑动窗口问题优化到O(n),是解决一类极值问题的有效工具。双向队列是一种非常实用的数据结构,它提供了比普通队列和栈更灵活的操作方式,在算法设计和系统开发中都有广泛应用。它结合了栈和队列的特性,提供了更灵活的数据操作方式。:既可以作为队列使用(FIFO),也可以作为栈使用(LIFO)
2025-06-14 12:36:40
496
原创 数据结构 学习 栈 2025年6月14日 11点09分
单调栈通过维护数据的单调性,将原本O(n²)的暴力解法优化到O(n),是解决一系列区间极值问题的利器。掌握单调栈的关键在于理解问题本质并选择合适的单调性方向。:考虑数组边界情况,可添加哨兵元素简化逻辑。:有时需要先从左到右扫描,再从右到左扫描。:根据问题决定栈内存储元素值还是索引。:根据问题需求选择递增栈还是递减栈。:栈内元素从栈底到栈顶保持递增顺序。:栈内元素从栈底到栈顶保持递减顺序。找下一个更大元素 → 单调递减栈。找下一个更小元素 → 单调递增栈。只需要比较值 → 存储值。寻找下一个更大/更小元素。
2025-06-14 11:18:20
90
原创 数据结构 学习 链表 2025年6月14日08点01分
它主要用于解决如数独、N皇后等约束满足问题,其核心思想是使用双向十字循环链表来高效实现回溯算法中的覆盖与恢复操作。一种概率性数据结构,它允许在有序序列中进行快速的搜索、插入和删除操作,平均时间复杂度为O(log n)。它由William Pugh于1989年提出,结合了链表和二分查找的优点。每一高层都是下一层的"快速通道",元素以一定概率出现在更高层。前进指针数组(forward),指向各层的下一个节点。// 头部删除 尾部删除 指定位置删除。只有一个指向下一个节点的指针。节点链接:左、右、上、下。
2025-06-14 11:08:08
177
原创 数据结构 线性表 学习 2025/6/12 21点27分
元素之间具有顺序关系(除首尾元素外,每个元素有且仅有一个直接前驱和一个直接后继)线性表是数据结构的基础,理解它对学习更复杂的数据结构非常重要。存储线性表的数据元素,通过指针连接元素。逻辑上相邻的元素物理位置不一定相邻。:受限的线性表(只能在端点操作)逻辑上相邻的元素物理位置也相邻。:用数组实现的链表(游标实现)依次存储线性表中的数据元素。随机访问(通过下标直接访问):每个节点包含前驱和后继指针。插入/删除需要移动大量元素。插入/删除不需要移动元素。元素具有相同数据类型。
2025-06-13 00:52:56
180
原创 数据结构 散列表 学习 2025年6月12日15:30:48
通过哈希函数将键(key)映射到存储位置,从而实现快速的插入、删除和查找操作。语言中的字典/映射结构(如Python的dict,Java的HashMap)哈希表是现代编程中最重要的数据结构之一,几乎所有编程语言都提供了内置实现。链接地址法 每个桶使用链表 储存多个元素。开放寻址法 寻找下一个可用位置。查找数据时 计算哈希值 直接访问对应位置。插入数据时 计算哈希值 确定储存位置。不支持有序遍历(除非使用特殊实现):存储数据的容器,通常是一个数组。:不同键映射到相同哈希值的情况。缓存实现(如Redis)
2025-06-12 18:18:19
302
原创 编译原理 学习 2025年6月10日11:17:54
根据语法规则 构建抽象语法树(AST) 检查程序结构 是否正确。Windows安装的工具需要在原代码调用的前提上添加 win_ 这样才会识别。将高级编程语言编写的源代码转换成机器可执行的代码(二进制或汇编代码)分解源代码为单词 识别 其中。如果遇到运行问题可把以下地址添加到PATH(环境变量))静态分析工具(检测代码风格和漏洞 如:ESLint)领域特定语言(DSL快速构建小型语言的处理工具)删除冗余代码、循环优化等技术提升程序性能。编译器开发(GCC.LLVM等工具链实现)关键字 变量名 运算符。
2025-06-10 23:07:40
926
原创 操作系统 学习 2025年6月10日09:40:48
操作系统(Operating System,OS)管理计算机软件硬件资源的系统软件给用户和应用程序提供。
2025-06-10 10:22:05
141
原创 C语言 学习 静态与动态库构建 2025年6月10日08:53:59
符号冲突运行时才会暴露,版本管理通过后缀名(例:libfoo.so.1.2) 运行时被加载 构建时需要位置 和代码无关(PIC)在运行时才被加载,多个程序可共享同一库文件。优点是节省磁盘和内存空间,更新库无需重新编译程序,但需确保运行时环境存在正确的库版本。动态库和静态库的核心作用是将代码以二进制形式封装,便于代码复用、模块化开发和管理。动态库:替换库文件即可(需保持ABI兼容)。动态库:内存中仅加载一份,共享使用。动态库:存在加载和符号解析的开销。静态库:每个程序包含库的副本。
2025-06-10 09:38:02
234
原创 C语言 学习 C程序的内存模型 2025年6月10日08:55:13
调试时使用!确保每次malloccalloc后均有对应的free,复杂逻辑可通过注释标记释放位置。
2025-06-10 08:52:10
376
原创 C语言 学习 模块化编程 2025年6月9日19:39:17
优点:便于维护 修改单一功能小程序 只需要重新编译该小程序文件即可。把一个大型程序 分成 多个单一功能的小程序 由主函数调用。getText.c 函数实现。getText.h 函数声明。通过 预留的接口 实现互通。main.c 主程序中调用。.c文件中实现函数逻辑。
2025-06-10 00:07:42
338
原创 C语言 学习 宏命令(预处理) 2025年6月9日14:41:39
define 宏名 替换内容 //无类型检查 简单文本替换#define min 1234 //创建一个宏定义#ifdef min //判断宏定义是否存在 存在输出提示字#endif#undef min //取消一个宏定义#ifdef min //判断宏定义是否存在 存在输出提示字#endif2.#include 指令(ai提供)场景描述引入标准库函数如分离项目结构将函数声明放入.h,实现放入.c模块化开发各个模块独立编写.h和.c宏定义共享将公共宏定义放在.h。
2025-06-09 19:17:39
234
原创 C语言 学习 文件操作(开关,读写,定位,大小)操作 2025年6月8日12:19:24
操作完成后 一定要关闭 文件!和读取结构体数据(文本格式)结构体数据(文本格式)
2025-06-09 14:34:51
935
原创 C语言 学习 数组(一维数组,多维数组,字符数组,字符串) 2025年6月8日09:21:39
数组下标不能越界(否则行为未定义)数组名arr可以看作指向首元素的指针。
2025-06-08 12:17:22
146
原创 STM32 Keil工程搭建 (手动搭建)流程 2025年5月27日07:42:09
startup_stm32f10x_md.s # 用于 Medium-density 系列(如 STM32F103xB/C),Flash = 64~128KB。STM32F10x标准外设库(StdPeriph_Lib)发行说明。STM32F10x标准外设库(StdPeriph_Lib)使用手册。由于库版本比较低,所以会出现关于 core_cm3.c 代码报错。8. 在MyProjects 中创建 main.c。新建项目,选择手动建立的 文件夹。6. 按需求选择对应的启动文件。选择魔法棒 设置关键路径。
2025-05-27 10:02:37
1130
原创 关于AT+CIPSEND 透传模式下失效解决办法2025/5/25
常见场景为:AT tcp服务 打开透传后 该指令 无效.报错等。设置 单链接 -> 链接服务器 ->设置透传模式->进入直连。
2025-05-25 01:52:31
225
原创 和风天气 API 获取天气预报 2025/5/21
打开 fxLink 网页 https://www.qweather.com/weather/"windDir": "东风","text": "晴",北京为例子,返回结果如下。URL请求格式为GET。
2025-05-21 19:23:05
646
原创 51单片机快速入门之 SPI通信 2025年4月29日09:26:32
SPI(Serial Peripheral Interface)通信是一种同步串行数据传输协议,主要用于嵌入式系统内部设备之间的通信。它由Motorola公司在2000年提出,广泛应用于微控制器、传感器、存储设备等之间的数据传输。
2025-04-29 10:03:51
539
原创 淘晶驰 屏幕 应用 之 esp8266/arduino 简约时钟 2025/3/12
字体: 数字用0 字符串(中文)用 1 设置 t0 font =0 t1 font=1。t0一个纯数字 t1一个文字显示。简单的2个文本框 设置好。
2025-03-12 16:07:31
260
原创 淘晶驰 屏幕 应用 之 esp8266/arduino 控制文本变化 2025/3/12
2.明白单字节数值,双字节数值,四字节数值,分别有什么区别,它们在内存中是什么样的储存方式,明白什么叫小端模式,什么叫大端模式,大小端数据之间如何转换。随便放一个文本即可 这里可以看见小字 t1 控制其变化 陶晶驰指令 t1.txt="文本"自定义协议,不按照淘晶驰字符串指令格式来发串口数据给屏幕,1.明白什么叫HEX,什么叫String,什么叫ASCII,分别什么关系,怎么转换。创建中文utf-8字库 并把其放到项目中。使用自定义的格式,需要把屏幕配置为。
2025-03-12 15:07:14
325
原创 C语言 学习 日志 递归函数 2024/12/12
初始调用:递归函数被首次调用。递归调用:递归函数在其定义中调用自身,创建新的栈帧。基本情况检查:每次递归调用时,检查是否满足基本情况。如果满足,返回结果并开始回溯。回溯:递归调用返回,相应的栈帧被移除,控制权交还给上一级调用。结果组合:递归调用返回的结果被组合起来,形成最终的结果。else{/*这个函数首先判断n是否为0,如果是则返回1(因为0和1的阶乘定义为1)。如果n大于1,则通过递归调用dg(n - 1)并乘以n来计算n的阶乘。*/
2024-12-12 21:32:24
385
原创 C语言学习日志 控制语句 相关 2024/12/12
程序从第一条语句开始,按照书写的顺序,一条一条地执行下去,直到最后一条语句结束。if switch 相关的 选择执行 又称之为 分支结构。语句被执行时,程序将立即退出当前函数,并返回到调用函数的位置。for while do-while 相关的 循环执行。
2024-12-12 21:18:31
221
原创 C语言学习日志 结构体 2024/12/12
/定义一个简单的结构体int age;/*这里定义了一个名为student的结构体,它有三个成员变量:name(用来存储字符数组age(存储整数)和score(存储浮点数)*/
2024-12-12 21:03:57
341
原创 Windows 测试模式的打开与关闭 2024/12/2
由于测试模式下可以运行未经签名的软件,因此可能会增加系统受到恶意软件攻击的风险。因此,测试模式不应该在生产环境中长期开启。测试模式的主要用途是在软件开发和硬件驱动程序开发的过程中,允许开发者测试他们的软件或者驱动程序,而不必先获得数字签名。测试模式的启用可以通过修改系统的启动配置数据来实现,比如在Windows系统中,可以通过命令行工具。启用测试模式后,系统会在桌面的右下角显示一个“测试模式”的标识,提醒用户系统正在以测试模式运行。测试模式是一种特殊的系统运行模式。
2024-12-02 19:37:24
2313
原创 蓝牙简易小车 设备XY-MB026A 2024/11/30
现在已经是19:25了,嗯想了想 好像划不来.实际上还是要mcu选择放弃,先留个坑,以后有时间再填2024/12/1。
2024-12-01 19:47:05
303
原创 微信小程序开发入门 笔记二 2024/11/29
启动>>小程序代码下载到本地(举例:下载到手机上)>>读取app.json 获取程序配置>>渲染小程序主页面>>执行app.js中定义的函数。开发版本 还在开发中可删除 不影响线上版本和审核中版本。流程: 需求提出>>设计>>开发>>体验>>测试>>发布。体验版本 开发板中选择一款设置为体验版本。线上版本 所有用户使用的正式版本。线程通过微信客户端中转 网络请求,数据等。审核中版本 重新提交会覆盖之前的版本。onLaunch 是事件回调函数。
2024-11-29 15:29:35
196
原创 51单片机快速入门之中断的应用 2024/11/23 串口中断
表示数据 发送成功 一帧数据 触发中断处理 之后需要手动 =0。表示数据 接收成功 一帧数据 触发中断处理 之后需要手动 =0。RXD串口信息过来,当接收到起始信号,SCON寄存器将打开接收,允许接收,通过。SM0 SM1 串行通信 模式选择 ,参考前面文章中的。只需要把数据写入SBUF中即可发送。关于 通信模式 设置 的资料。这里放入中断后需要做的操作。REN:是串行接收允许位。中 中断后可取出其中内容。T1 计数器/定时器。
2024-11-25 00:56:36
1742
bin 图片修改 和查看工具 .bin文件 .bin图片
2024-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人