- 博客(26)
- 收藏
- 关注
原创 【数据结构】07查找
Hash表根据数据元素的key生成一个Hash地址,找到Hash地址对应的头结点后,插入到头结点对应的单链表中,这里使用的是头插法。从Hash表中删除数据元素也是根据它的key值,生成一个Hash地址,然后找到头结点,遍历整个头结点对应的单链表,找到key值对应结点的前一个结点,删除最后key值对应的结点。Hash表由存储链表头结点的数组,数据元素单链表构成,并且每个数据元素对应有关键字’key’和数值’value’,因此需要构建三个结构体,并对他们初始化。查找长度:在查找运算中,需要对比关键字的次数。
2024-04-12 11:01:50
788
原创 【数据结构】06图
图(Graph)是一种比线性表和树更复杂的数据结构。在线性表中,数据元素之间是一对一的关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有明显的层次关系,上一层的数据元素(结点)和下一层的数据元素(结点)是一对多的关系。而在图形结构中,数据元素之间的关系是任意的,是多对多的关系。在图中,数据元素通常称作顶点(Vertex),简称V,是有穷非空的集合,记为Vv1v2vnVv1v2...vn,|V|表示顶点个数。两个顶点之间的关系称作边。
2024-04-11 15:54:28
881
原创 【数据结构】05树
结点的子树的根称为该结点的孩子(Child),相应地,该结点称为孩子的双亲(Parent)结点。结点的祖先是从根到该结点所经分支上的所有结点。规则:树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下的逐层遍历,同一层中,按从左到右的顺序对结点逐个访问。二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也就是数组的下标能够体现结点之间的逻辑关系。规则:二叉树为空,则空操作返回,否则从根结点开始,先中序遍历根结点的左子树,然后访问根结点,最后中序遍历右子树。
2024-04-09 15:06:31
762
原创 【数据结构】04串
串(string)是由零个或多个字符组成的有限序列,又叫字符串。一般记为s=a1a2ann≥0a1a2...ann≥0。串中字符数目n称为穿的长度。
2024-04-07 11:00:16
622
原创 【数据结构】03栈与队列-队列
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out,FIFO)的线性表,简称FIFO结构。允许差于的一端称为队尾,允许删除的一端称为队头。线性表有顺序存储和链式存储,栈是线性表,也具有这两种存储方式。同样的,队列作为一种特殊的线性表,同样存在这两种存储方式。但是,顺序存储结构的队列有严重的缺陷。
2024-04-05 16:29:18
916
1
原创 【数据结构】03栈与队列-栈
20// 数据类型// 存放数据int top;// 栈顶指针 -1表示空栈 最大值为MAXSIZE-1把一个直接调用自己或通过一系列操作间接调用自己的函数,称作递归函数。每个递归必须至少有一个条件,满足时递归不再进行,即不再调用自身而是返回值推出。递归和栈的关系:在前行阶段,随着对每一层的递归,函数的局部变量,参数值和返回地址都被压入栈中。在退回阶段,位于栈顶的局部变量、参数值和返回地址被弹出,用于返回调用层中执行代码其余的部分。
2024-04-05 13:37:35
964
1
原创 【数据结构】02线性表-单链表
方法:从头结点开始,找到第i-1个元素的位置,将第i-1个元素的指针域指向新元素,将新元素的指针域指向之前的第i个元素,此时新元素就成为了第i个元素。在链式存储中,除了要存储数据元素信息之外,还要存储它的后继元素的地址。n个节点链接成一个链表,即为线性表的链式存储结构,因为此链表的每个结点中只包含一个指针域,所以叫做。来说,它需要存储数据元素信息(数据域)还要存储,后继位置信息(指针域),指针域中存储的信息称为。方法:找到第i-1个元素,将第i-1个元素的指针域指向第i+1个元素,清空第i个元素。
2024-04-03 16:08:13
955
1
原创 【数据结构】01绪论
时间复杂度关心的是数量级,所以对f(n)的表达式需要简化,1)略去常数,2)只保留最高阶的项,3)最高阶项系数为1。时间复杂度T(n)最简单的描述就是:计算机运行一个算法时,程序代码被执行的总次数。算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列。算法的特性:输入、输出、有穷性、确定性和可行性。程序代码的执行总次数一般与问题规模有关。空间复杂度S(n)指算法消耗的内存空间。
2024-03-27 15:46:50
782
原创 【论文阅读】《Robust Visual Servoing Control for Ground Target Tracking of Quadrotors》
【论文阅读】《Robust Visual Servoing Control for Ground Target Tracking of Quadrotors》1. 摘要2. 简介3. 问题建模3.1 四旋翼模型描述3.2 控制问题描述3.3 运动估计4. 鲁棒控制器设计4.1 控制律设计本文2020年是发表在IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY上有关于无人机的视觉伺服跟踪控制方面的论文。1. 摘要在本文中,针对具有向下单目相机的四旋翼无人机在室
2023-07-17 21:37:36
205
1
原创 【STM32F407学习笔记】MPU6050(一)原始数据获取
MPU-60X0是全球首例9轴运动处理传感器。它集成了3轴MEMS陀螺仪、三轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP,可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C或SPI接口输出一个9轴的信号。MPU60X0的陀螺仪和加速度计分别采用了三个16位的ADC,将其测量的模拟量转化为客户处的数字量。传感器的测量范围是用户可控的,陀螺仪可测范围为±250±500±100±2000°秒。
2023-06-08 21:00:24
3383
1
原创 【STM32F407学习笔记】模拟IIC驱动OLED
OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。中我们已经实现了模拟IIC的所有时序,包括起始信号、停止信号、应答ACK信号、非应答NACK信号以及读取一字节ReadByte和发送一字节SendByte,因此剩下的工作就是通过这些时序,模拟出OLED通信所需要的信号即可。有了这两个函数之后就可以编写OLED的所有驱动函数了,下面是整个OLED驱动的实现。
2023-06-08 10:40:57
2029
1
原创 【STM32F407学习笔记】模拟IIC协议
IIC通信协议(Inter-Integrated Circuit)是由飞利浦公司开发的,由于它的引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通信协议的外部收发设备,被广泛地应用在系统内多个集成电路(IC)间的通信。下面我们分别对IIC协议的物理层及协议层进行讲解。
2023-06-07 20:02:59
2538
原创 【STM32F407学习笔记】中断优先级管理与外部中断
【STM32F407学习笔记】中断优先级管理与外部中断1. 中断介绍1.1 中断的概念1.2 中断的产生1.3 中断处理的流程2. STM32内嵌向量中断控制器2.1 NVIC控制器的寄存器2.2 中断管理方法2.3 中断的配置3. EXTI外部中断3.1 EXTI基本结构3.2 SYSCFG_EXTICRx 外部中断配置寄存器3.3 EXTI 框图4. 软件设计5. 总结计算机系统中中断占有极其重要的地位,在嵌入式系统中更是如此。中断机制能让计算机有效合理的发挥效能和提高效率。涉及外设:EXIT外部中
2023-06-06 23:40:53
2824
原创 【STM32F407学习笔记】时钟树和SysTick精准延时
时钟系统是CPU的“脉搏”。只有有了系统时钟单片机才会协调、稳定的工作。STM32F4的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切问题。SysTick一系列定时器,是属于CortexM4内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器。计数器每计数一次的时间为:1/SYSCLK。当重装载数值寄存器的值递减到0时,系统定时器产生一次中断,以此循环往复。fff代表频率,单位是HZ(次/秒);TTT代表周期,单位是s(秒)。fHz1T。
2023-06-04 11:10:12
2351
1
原创 【STM32F407学习笔记】串口外设USART
通信的方式分类:并行通信,串行通信并行通讯特点:控制简单,传输速度快;由于传输线多,适用于距离近传输2)串行通信:指数据的各位在同一根数据线上逐位串行通讯特点:控制复杂,传输速度慢;只需要一个线,适用于远距离传输。串行通信方式分类在串行通信中,根据对数据流的分界、定时及同步方法不同,可分为同步串行通信方式和异步串行通信方式。
2023-06-02 21:19:35
1218
1
原创 【STM32F407学习笔记】点亮一个LED
GPIO是通用输入输出端口的简称,GPIO的最基本功能是输出和输出。它也是芯片内部和外部电路连接的唯一接口。GPIO的基本功能是输入和输出,但是STM32本身就是一个很复杂的系统,内部外设繁多,基本的GPIO功能是无法满足外设需求的,因此将GPIO分为8种模式。输入浮空输入上拉输入下拉模拟输入具有上拉或下拉功能的开漏输出具有上拉或下拉功能的推挽输出具有上拉或下拉功能的复用功能推挽具有上拉或下拉功能的复用功能开漏这八种模式对应外设不同的工作要求。
2023-05-31 11:40:56
839
1
原创 【STM32F407学习笔记】初识STM32F4
如APB1总线下的第一个外设就是TIM2,它所占据的地址范围是0x4000 0000-0x4000 03FF,那么在这个范围内TIM2的寄存器地址又是怎么映射的呢?STM32内部的程序存储器(FLASH)、数据寄存器(RAM)、寄存器和IO端口都排列在同一个顺序的4GB的地址空间内,我们编程时也是依据此地址来找到相应寄存器操作。Block2用于设计片上的外设寄存器,根据外设的总线速度不同,Block2被分成了APB和AHB两部分,其中APB又被分为APB1和APB2,AHB分为AHB1和AHB2。
2023-05-30 20:12:38
1345
1
原创 【STM32F407学习笔记】中断优先级管理NVIC
系统运行后先设置中断优先级分组,调用函数:void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);整个系统运行中只设置一次中断分组。针对每个中断,设置对应的抢占优先级和响应优先级,调用函数:void NVIC_Init(NVIC_InitTypeDef * NVIC_InitStruct);如果需要挂起/解挂,查看中断当前激活状态,分别调用相关函数即可。
2023-04-25 16:28:16
662
原创 【STM32F407学习笔记】IO引脚复用和映射
STM32有很多内置的外设,这些外设的引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候就叫做。剩余串口的配置在后续的专门章节中展开。
2023-04-25 15:58:58
581
1
原创 【STM32F407学习笔记】GPIO(二)
使用STM32F407Discovery套件,对端口输入和输出进行实验验证。首先需要初始化外设,分别是LED和Key。在STM32F407 Discovery板载资源中,按键的形式为第一种,因此需要设置为输入下拉(PuPd_DOWN)例如单独控制PA端口输出数据寄存器中的ODR的位15:0只能以字(16位)的形式进行操作。支持位带操作后,可以使用普通的加载存储指令来对单一的bit进行读写操作。),只需要操作映射后的位带别名区的地址就可以实现操作ODR的Bit位了。对于按键输入检测,首先需要确定按键的状态。
2023-04-25 10:10:23
350
1
原创 【STM32F407学习笔记】GPIO(一)
位2y:2y+1 OSPEEDRy[1:0]:端口x配置位(y=0,1,…位2y:2y+1 MODERy[1:0]:端口x配置位(y=0,1,…位2y:2y+1 PUPDRy[1:0]:端口x配置位(y=0,1,…位32:16 BRy:端口x复位位y(y=0,1,…位15:0 BSy:端口x置位位y(y=0,1,…位15:0 IDRy[15:0]:端口输入数据(y=0,1,…位15:0 OTy[1:0]:端口x配置位(y=0,1,…这些位为只读形式,只能在字模式下访问,它们包含相应IO口的输入值。
2023-04-23 20:21:42
1315
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人