数据结构
文章平均质量分 55
无
梅山剑客
这个作者很懒,什么都没留下…
展开
-
数据结构—环形缓冲区
环形数组(Circular Array)是一种特殊类型的数组,其元素在内存中首尾相接,形成一个环形。由于环形数组的元素在内存中是首尾相接的,因此不需要为数组的头部和尾部留出额外的空间。易于实现动态扩展:当需要增加更多元素时,环形数组可以通过简单地扩展现有数组的大小来实现动态扩展,而无需重新分配和复制原有数据。由于环形数组的特性,当索引超出数组的界限时,会自动回到数组的开头或结尾,避免了常规数组越界访问导致的错误。环形数组保持了数据的连续性,这有助于提高数据访问的局部性,从而优化CPU缓存的性能。原创 2024-01-03 13:55:52 · 732 阅读 · 0 评论 -
数据结构—使用双向链表实现栈和队列
本节介绍栈和队列的实现,栈的实现,队列的实现。原创 2022-03-21 17:40:00 · 1380 阅读 · 0 评论 -
数据结构—双向链表(详解)
双向链表在之前一篇文章中介绍了单向链表的实现,可以看出单向链表实现过程中,只能够逐次向下继续查找,指针一直指向下一个节点,而本文中的双向链表,在结构体定义的时候多了一个指向上一节点的指针,因此,无论是在插入还是删除来说,从后往前和从前往后遍历都极大的提高了便利性。下面来介绍双向链表的具体实现。双向非循环链表的实现1、链表结构体封装/* 双向链表的结构 */typedef struct llist_st{ int data; struct llist_st * prev;原创 2022-03-20 23:12:14 · 6280 阅读 · 0 评论 -
链表在嵌入式中的应用(二)—基于GitHub开源项目之MultiButton
1、项目描述一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化程序结构,去除冗余的按键处理硬编码,让按键业务逻辑更清晰。GitHub源码地址如下:Github源码地址2、代码移植本文使用的开发板是正点原子探索者F407,首先使用STM32CubMx初始化外设信息,要求:1、初始化按键输入引脚PE2、PE3、PE4任意一个,2、串口打印功能。不熟悉的可以查阅之前的blog;按键串口初始化配置界面如下所示:移植代码工程,添加MultiButton原创 2022-03-18 07:56:37 · 1008 阅读 · 0 评论 -
链表在嵌入式中的应用—基于GitHub开源项目MultiTimer
链表基础以及链表在嵌入式领域中的应用,描述的单向带头结点的链表实现,包括创建,删除,插入,头插法和尾插法原创 2022-03-17 01:30:00 · 1090 阅读 · 0 评论 -
数据结构—单向链表(详解)
基于C语言的链表基础,包括概念,链表的初始化,插入,删除,查找等操作。原创 2022-03-16 11:17:07 · 11692 阅读 · 0 评论