![](https://img-blog.csdnimg.cn/20210720091140143.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
文章平均质量分 86
将数据结构和算法中常用以及面试中常考的知识点进行归纳总结,提高核心能力。
一只有理想的程序猿
在嵌入式领域摸爬滚打的小菜鸟。
展开
-
uthash用法总结
目录前言1、简单介绍C语言中的HashTable支持的操作复杂度非库文件2、用法结构体定义键值key的唯一性UT_hash_handle内存消耗结构体声明添加查询删除清空哈希表统计hash表中的已经存在的元素数遍历排序key为int类型的完整示例前言本文旨在总结介绍C开源hash项目。文章大部分内容均来自uthash的英文使用文档。官方源码uthash实现了常见的hash操作函数。使用uthash的代码时只需要包含头文件“uthash.h”即可。该套代码所有的实现都在uthash.h文件中,因此只需要原创 2021-07-13 16:15:21 · 2136 阅读 · 7 评论 -
数据结构和算法系列第3篇---队列的基本操作
目录前言1、队列的定义2、队列顺序存储结构---循环队列2.1 定义2.2 数据结构3、队列链式存储结构3.1 定义3.2 数据结构前言数据结构和算法整体框架图:今天归纳总结的是线性表中的队列。1、队列的定义队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的线性表,简称FIFO,允许插入的一端称为队尾,允许删除的一端称为队头。2、队列顺序存储结构—循环队列因为线性表有顺序存储结构和链式存储结构,队列属于线性表中的一种,因此它同样具有这两种存储方式。2.1原创 2021-07-20 11:52:41 · 180 阅读 · 0 评论 -
数据结构和算法系列第1篇---线性表
目录前言定义线性表常见操作线性表的顺序存储结构定义顺序存储结构代码线性表的链式存储结构头指针和头节点的异同链式存储结构代码常见操作代码,建议记忆读取插入删除前言介绍数据结构和算法中最基础的一种数据结构:线性表定义线性表:零个或者多个数据元素的有限序列。强调定义中两个关键的点:序列:元素之间是有序的,如果元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每一个元素都有且只有一个前驱和后继。有限:计算机中处理的对象是有限的。线性表常见操作初始化清空查找长度插入删除线原创 2021-07-14 16:48:31 · 72 阅读 · 0 评论 -
数据结构和算法系列第2篇---栈的基本操作
目录前言一、栈的相关定义二、栈的顺序存储结构及实现三、栈的链式存储结构及实现栈的链式存储结构---进栈操作栈的链式存储结构---出栈操作实战运用1、回文链表2、有效的括号前言在软件应用中,栈这种后进先出数据结构的应用非常普遍。因此栈也成为了广大程序猿必须要掌握并且能够熟练运用的一种数据结构。一、栈的相关定义允许插入和删除的一端称为栈顶,另一端为栈底。栈又称为后进先出的线性表。简称LIFO结构二、栈的顺序存储结构及实现栈的结构定义typedef int SElementType;typedef原创 2021-07-05 14:02:56 · 267 阅读 · 0 评论 -
时间复杂度和空间复杂度总结
时间复杂度分析。一、常用的几种时间复杂度要牢记,即可解决学习和工程项目中的大部分时间复杂度分析。七种常见的时间复杂度:O(1) :常数级的时间复杂度;O(N):O(N^2):O(2^N)O(logN)O(NlogN)O(N!)时间复杂度:O(N!) > O(2^N) > O(N^2) > O(NlogN) > O(N) > O(logN) > O(1)特殊情况分析:递归的时间复杂度分析。1.采用画递归树的方法来分析递归的原创 2020-11-03 22:56:41 · 460 阅读 · 0 评论 -
通过去除缓冲区最大值、最小值进行滤波的方法
通过需要去除缓冲区中最大数值和最小数值的方法进行数据滤波的方法:编写一个API函数,这个函数可以将接收到的数据存储到缓冲区中,每次缓冲区中接收到的数据要去除一个最大值一个最小值,然后求取平均值,达到简单数据滤波的效果。程序代码如下:#define TDS_Num 60uint32_t TDS_Queue[TDS_Num] = {0};uint32_t TDS_filter(uint3...原创 2019-11-04 11:04:12 · 1511 阅读 · 0 评论