
数据结构和算法
文章平均质量分 65
slimmm
一念成魔,一念成佛
展开
-
【GUI】LVGL8内存泄漏分析
LVGL8内存泄漏分析原创 2022-10-07 11:48:57 · 6054 阅读 · 4 评论 -
[数据结构和算法]二分查找近似值
C语言二分查找原创 2022-09-08 16:54:43 · 546 阅读 · 0 评论 -
[stm32]stm32硬件定时器复用——一个定时器承载多组定时任务
之前写过一篇使用stm32的滴答定时器构建多组软件定时器的博客,有感兴趣的可以看一下:stm32滴答定时器构建多组软件定时器使用滴答定时器构建软件定时器,其中定时器的超时是靠轮询来实现的,所以精度不高。但是实现方法及其简单,甚至都不用配置什么外设,对于一般的定时任务来说够用了。如果是对定时精度较高的任务来说,我们最好用硬件定时器来实现了。但是MCU的硬件定时器资源有限,而且定时器开多了可...原创 2019-05-16 14:45:56 · 5426 阅读 · 1 评论 -
[数据结构和算法]最简单的加密算法
异或异或是最简单的加密运算,把A和B异或后得到C,其中C就是加密之后的数据,我们可以将C与A或B再进行异或即可得到B或A。利用异或的这个特性可简单实现数据的加密和解密算法。#include <stdio.h>#include <string.h>#define uint8_t unsigned char#define uint16_t unsigned shor..原创 2019-03-12 14:34:04 · 1358 阅读 · 0 评论 -
[数据结构和算法]CRC8/CRC16/CRC32常见几个标准的算法及C语言实现
今天继续来异或的另外一种用法,CRC数据校验。[数据结构和算法]最简单的加密算法;参考的CRC16常见几个标准的算法, 但是感觉程序写的太啰嗦了点,我们用表驱动来重构一下程序,虽然CRC8/CRC16/CRC32的实现基本一样,但是C语言不能像C++一样使用模板,不然程序就更加简洁了常见CRC参数模型如下:CRC算法名称多项式公式宽度多项式初始值结果异或值输入值反转...原创 2019-03-15 15:48:07 · 12550 阅读 · 0 评论 -
[stm32]如何抽象模拟的I2C驱动,模拟的I2C驱动封装
一般的,I2C驱动的速率并不高,最高貌似只有400KHz,而且使用stm32硬件IIC会出现这样那样的问题,所以使用IO口模拟是最好的选择。那么我就在想了,能不能把模拟的I2C驱动当做一个对象给封装起来,以后使用的时候直接调用即可,不用再过多的去配置IO和调试I2C的时序了。如果是用C++,我们可以直接使用类将其封装起来class simulate_IIC{public: simul...原创 2019-01-24 16:20:42 · 826 阅读 · 1 评论 -
[数据结构和算法]C/C++双向循环链表实现(增删改查排序)
之前也写过一篇C语言实现简单的双向循环链表,现在使用C++再来扩展一下内容。除了节点的插入、删除,还增加了一些链表的其他操作,包括节点修改、节点替换、节点查找、值查找、值排序等等。内容还是挺丰富的,废话不多说,上代码吧,有问题的欢迎提出来定义数据结构顺便,一些简单的函数就在类中实现了class node{ public: node *prev; n...原创 2018-11-21 13:58:36 · 1762 阅读 · 1 评论 -
[数据结构和算法]C语言实现简单的双向循环链表
其实链表很简单,跟着我的脚步走,基本是这篇博客看完,你也就能实现简单的链表操作了数组、链表是最常见的重要的数据结构,所以掌握链表也是很重要的咯。一般链表的操作无外乎增删改查。 今天就简单的实现一下双向循环链表的增删1. 链表的数据结构,主要包含指针域和数据域双向循环链表的数据结构包含至少两个指针和至少一个数据//用结构体封装一下链表的数据结构typedef struct _nod...原创 2018-11-16 18:02:12 · 643 阅读 · 0 评论 -
[数据结构和算法]LZ77压缩算法三部曲——3.解压算法(C语言)
压缩算法后面有需要再补写,先记录一下解压算法吧。压缩算法用Java写的,压缩的是字节流。(测试原数据1024bytes–压缩后为201bytes)直接上菜吧#include <stdio.h>#include <stdlib.h>#include &a原创 2018-10-27 14:10:06 · 1778 阅读 · 1 评论 -
[数据结构和算法]LZ77压缩算法三部曲——1.KMP算法(C语言)
KMP算法的理论部分就不在赘述了,有不懂的小伙伴可以参考这个帖子,感觉写的挺不错的。从头到尾彻底理解KMP个人比较喜欢简单粗暴的直接上代码,又看不懂的小伙伴可以下下面评论提出来。下面的程序是为了后面的LZ77 压缩算法做铺垫的,其实现的是从源数据中找到与匹配数据最长的数据的坐标和匹配长度。绕的有点晕哈;举个栗子:字符串s = “a b a c a a b a c a b a c a b ...原创 2018-11-12 12:04:19 · 1874 阅读 · 2 评论