- 博客(65)
- 收藏
- 关注
原创 数据结构-树(2)
二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的,分别称为根结点的左子树和右子树的二叉树组合。 如图: 特点:每个结点最多 2 子树,区分左右顺序如下思维导图:性质一:第 i 层最多 2^(i-1) 个结点(i≥1)性质二:深度为 k 的二叉树最多 2^k-1 个结点。性质三:终端结点数 n₀ = 度为 2 的结点数 n₂ + 1(n₀ = n₂ + 1)。终端结点数 n₀ = 度为 2
2025-05-12 15:29:02
863
原创 数据结构-树(1)
其中 data 是数据域,frstchikd 为指针域,存储该结点的第一个孩子结点的存储地址,rightsib是指针域,存储该结点的右兄弟结点的存储地址。这种方法克服了浪费空间的缺点,对空间利用率是很高的,但是由于各个结点的链表是不相同的结构,加上要维护结点的度的 数值,在运算上就会带来时间上的损耗。任一棵树,它的结点的第一个孩子如果存在就是唯一的,它的右兄弟如果存在也是唯一的。这种方法对于树中的各个结点的度相差很大时,显然是很浪费空间的,因为有很多的结点,它的指针域是空的。每个结点有多个指针域,其中。
2025-05-12 11:32:15
842
原创 数据结构之串
定义:串是由零个或多个字符组成的有限序列,记作 s="a1a2…an",例如 "data structure"、"123" 等。空串:无任何字符,长度为 0,用""表示,例如短信内容为空时即为空串。空格串:由一个或多个空格组成,有长度,例如 " "(3 个空格)。子串与主串:子串是主串中连续字符序列。生活实例:回文诗 “上海自来水来自海上” 是一个串,其正读和反读相同,体现了串的逆序特性;英文单词 “friend” 中,“end” 是子串,“friend” 是主串。
2025-05-08 17:16:30
956
原创 数据结构之栈与队列
栈:队列:plaintext 队列: plaintext 4、典型应用场景 场景 栈的应用 队列的应用 函数调用 存储函数调用的参数、返回地址(系统栈自动管理)。 无直接应用,函数调用本质是栈结构。 表达式处理 后缀表达式求值、中缀转后缀(处理运算符优先级)。 无相关应用。 括号匹配 检测括号是否正确嵌套(如)。 无相关应用。 任务调度
2025-05-07 21:39:50
925
原创 总结C++中的STL
STL 即标准模板库,是 C++ 标准程序库的重要组成部分,包含常用数据结构和算法,体现了泛型化程序设计思想,基于模板实现,提高了代码的可复用性 2. deque 特性:双端队列,由多个固定大小的数组块组成,支持在两端快速插入和删除元素,同时也支持随机访问。 优缺点:优点是在两端插入和删除元素的时间复杂度为常数,适合需要频繁在两端操作的场景。缺点是随机访问的效率略低于 。 常用操作: 3. list 特性:双向链表,每个节点包含数据和指
2025-05-01 21:55:55
999
原创 C语言中结构体的字节对齐的应用
字节对齐通过优化内存布局,平衡性能与空间效率。关键点:默认对齐规则由成员类型和编译器设置决定。调整成员顺序是最简单的优化手段。显式控制对齐适用于特殊场景(如硬件访问、协议定义)。跨平台开发需谨慎处理对齐差异。
2025-04-26 16:35:47
1100
原创 C语言中宏的高级应用
支持不定数量参数,用于灵活处理格式化字符串、日志输出等场景。输出:使用 将两个符号合并为新标识符,用于代码生成。输出:使用 将宏参数转换为字符串字面量。输出:通过单一数据源生成多形态代码(如枚举、字符串表、序列化函数)。5. 泛型宏(C11 _Generic) 根据参数类型选择不同实现,模拟泛型编程。6. 编译时断言 利用宏在编译阶段验证条件。二、高级宏设计技巧1. 多语句宏封装 使用 确保宏展开后语法正确。2. 防止
2025-04-26 16:05:28
352
原创 C语言里位操作的应用
右移有符号数的行为(算术右移还是逻辑右移)可能因编译器而异。:过度使用位操作会降低代码可读性,需添加详细注释。:嵌入式设备、内存敏感场景(如 IoT 设备)。:需要极致优化的代码(如图形处理、网络协议栈)。:移位操作超出变量范围会导致未定义行为(例如。:将多个小整数打包到单个变量中。:替代部分数学运算或逻辑判断。在32位整型中是合法的,但。:控制寄存器、操作外设。
2025-04-25 15:41:11
627
原创 IIC,SPI详细内容以及它们与串口通信的区别
双向数据线,用于传输数据。:时钟线,由主设备控制,同步数据传输。所有设备共享 SDA 和 SCL,通过区分设备。总线需外接(通常 4.7kΩ),以保证信号在空闲时为高电平。
2025-04-06 14:47:14
930
原创 Freestors应用
操作系统:为解决计算机资源争抢而编写的一个程序任务:计算机需要完成的某一项工作资源争抢:多个任务在执行工程中需要共享有限的资源顺序执行:任务一个接着一个执行多任务并行:同时运行多个任务任务优先级:根据任务的重要性和使用频度决定工作的优先级下面是关于操作系统与现实生活结合的举例,能够更好的帮助理解操作系统的历程// 任务的堆栈指针// 每个一个task任务的堆栈//当前任务号, 从0开始。解释:idata关键字:在STC8的单片机中访问最快的内部的internal的内存空间里//第0号任务。
2024-10-26 09:32:31
493
原创 TIM输入捕获及其应用场景
在选择测量方法时,需要根据被测信号的频率范围、测量精度要求以及测量设备的性能等因素进行综合考虑。对于高频信号,测频法通常更为适用;而对于低频信号,测周法则更具优势。如果需要进一步提高测量精度,可以考虑采用等精度测量等高级方法,这些方法通常结合了测频法和测周法的优点,能够在宽频率范围内提供高精度的测量结果。在实际应用中,还需要考虑信号的稳定性、噪声水平以及测量设备的精度和分辨率等因素对测量结果的影响。2,脉宽测量通过测量输入信号高电平(或低电平)的持续时间,可以计算出脉宽。
2024-10-06 01:42:07
1197
原创 定时器TIM输出比较及其应用
在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域 PWM参数:频率 = 1 / TS 占空比 = TON / TS 分辨率 = 占空比变化步距//配置输出比较单元//配置强制输出波形函数//配置CCR寄存器的预装功能,即影子寄存器,就是写入的值不会立即生效,而是在更新事件才会生效//配置快速使能//外部事件时清除REF信号。
2024-10-06 00:08:00
1383
原创 stm32定时器中断和外部中断
在stm32中,用来统一分配中断优先级和管理中断的EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序支持的触发方式:上升沿/下降沿/双边沿/软件触发支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断(即不能PA1和PB1组合)通道数:16个GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒触发响应方式:中断响应/事件响应。
2024-10-05 16:06:58
2497
原创 WDG看门狗以及看门狗在stm32中的应用
STM32内置两个看门狗流程:看门狗定时器溢出,直接产生复位信号喂狗操作:其实就是重置递减计数器,递减计数器减到0后就自动复位,如果想要避免重置,就需要将递减计数器计时加大,这个过程就是喂狗超过时间:T(IWDG)=T(LSI)*PR预分频系数*(RL+1)其中:TLSI = 1 / FLSI。
2024-10-03 10:19:50
646
原创 PWR电源控制
其中PDDS==0,进入停机模式,PDDS==1,进入待机模式//恢复初省配置//后备访问//使能PVD功能//配置PVD的阈值电压//唤醒使能//进入停止模式//进入待机模式//标志位。
2024-10-02 22:34:48
1130
原创 C语言100道练习题打卡(1)
题目:一只青蛙要从第一级台阶开始,每次可以跳上一级或者两级,直到跳完所有的台阶。2)利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;例如:153是一个水仙花数,因为153 = 1的三次方+5的三次方+3的三次方。5)60万到100万之间时,高于60万元的部分,可提成1.5%;3)20万到40万之间时,高于20万元的部分,可提成5%;4)40万到60万之间时高于40万元的部分,可提成3%;6)高于100万元时,超过100万元的部分按1%提成。
2024-04-14 23:34:02
1703
7
原创 c++之STL案例分析---员工分组
1,在主函数中创建map容器,将员工部门编号作为key,具体员工作为value,放入到multimap容。3.在createWorker(vWorker)封装创建员工的函数谝历vector容器。1,在主函数中创建显示分组员工的函数。2,将员工分组的函数进行封装。
2024-04-11 12:52:25
524
原创 STL容器
set<T> st;//返回容器中元素的数目。//返回容器中元素的数目。//判断容器是否为空。//判断容器是否为空。//交换两个集合容器。//交换两个集合容器。总结:利用仿函数可以指定set容器的排序规则。统计set容器大小及交换set容器。功能描述:创建set容器以及赋值。set容器进行插入数据和删除数据。示例二:set存放自定义数据类型。利用仿函数,可以改变排序规则。示例1:set放置内置数据。
2024-04-07 01:00:34
1346
1
原创 STL容器(3)--deque+案例--评委打分
/删除[beg,end]区间的数据,返回下一个数据的位置。//在pos位置插入一个elem元素的拷贝,返回新数据位置。//在pos位置插入[beg,end]区间的数据,无返回值。//删除pos位置的数据,返回下一个数据的位置。//在pos位置插入n个elem元素,无返回值。//清空容器中所有的数据。//返回索引的idx所指的数据。//返回容器中最后一个数据元素。//返回索引的idx所指的数据。//在容器头部插入一个数据。
2024-04-05 10:40:55
778
原创 STL常用容器(2)---vector容器
/将v[begin(),end()]区间中的元素拷贝给元素。//如果容器变短,则末尾超出容器长度的元素被删除。//如果容器变短,则末尾超出容器长度的元素被删除。//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。//容器预留len个元素长度,预留位置不初始化,元素不可访问。//返回容器中元素的个数。//返回容器中最后一个数据元素。解释:未预留空间时,可访问的元素较多,预留空间后,该空间的元素不可访问,可访问的元素会变少。
2024-04-04 11:03:08
1013
原创 C++提高编程之STL初始
学习目标:vector中存放自定义数据类型,并打印输出1,存放对象//vector存放自定义数据类型public:int m_age;//向容器中添加数据//遍历数据it!= v.end();it++)cout
2024-04-02 00:24:45
1292
原创 灰色预测模型以及matlab软件使用
灰色综合评价法是针对复杂大系统进行效能评估时,信息不完备、不全面、不充分的情况,所提出的一种评估方法,其基于灰色关联度分析可分为:单层次灰色综合评价多层次灰色综合评价。
2024-03-25 20:57:25
1796
原创 数学建模综合评价模型与决策方法
评价方法主要分为两类,其主要区别在确定权重的方法上一类是主观赋权法,多次采取综合资讯评分确定权重,如综合指数法,模糊综合评判法,层次评判法,功效系数法等另一类是客观赋权法,根据各指标间的相关关系或各指标变异程度来确定权数,如主成分分析法,因子分析法,理想解法(TOPISIS法等)
2024-03-20 11:51:45
5161
原创 MATLAB图形绘制
将 levels 指定为标量值 n,以在n个自动选择的层级(高度)上显示等高线。要在某些特定高度绘制等高线,请将levels 指定为单调递增值的向量。要在一个高度(k)绘制等高线,请将 levels 指定为二元素行向量[k k].
2024-03-19 16:22:20
10669
2
原创 MATLAB的使用(二)
尽管完全在MATLAB命令行中进行许多有用的计算,但迟早需要编写M文件它们是其他编程语言中程序、函数、子程序和过程的等价物。将一系列命令收集到一个M文件中会带来很多可能性,包括·通过编辑文件而不是重新键入一长串命令来实现算法,·对数值实验进行永久记录,·建立日后可重复使用的公用设施,·与他人交换M文件。M-File的两种主要形式·脚本:可直接运行、编辑、调试的一组代码·函数:进行特定输入/输出的一组代码。
2024-03-18 22:20:07
908
原创 MATLAB的使用(一)
a,语法高度简化;b,脚本式解释型语言;c,针对矩阵的高性能运算;d,丰富的函数工具箱支持;e,通过matlab本体构建跨平台;
2024-03-18 12:47:06
1646
1
原创 C++之职工管理系统
职工管理系统可以用来管理公司内所有员工的信息主要利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责。管理系统中需要实现的功能如下:退出管理程序:退出当前管理系统增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号显示职工信息:显示公司内部所有职工的信息删除离职职工:按照编号删除指定的职工修改职工信息:按照编号修改职工个人信息。
2024-03-14 21:26:15
1742
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人