数据结构与算法
文章平均质量分 63
我与nano
嵌入式开发,物联网,PCB,linux应用,卡尔曼,pid,Jetson nano,树莓派,K210,深度学习,机器视觉,Opencv,slam,Ros,自控
展开
-
数据结构——顺序表(三)
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。我们知道数组里的数据是0,1,2,3,不可能出现0,1,2,4,没有3就没有4静态顺序表:使用定长数组存储元素。像通讯录第一次实现时定义了1000个。动态顺序表:使用动态开辟的数组存储。动态的通讯录我用DEV进行了简单的编写,规范的操作是编写源文件和.h文件代码如下//存储数据的数组(动态开辟) int size;//顺序表中当前有效数据的个数 int capacity;原创 2023-01-29 13:07:58 · 332 阅读 · 0 评论 -
数据结构——双向链表(七)
双向链表与单链表类似,直接在单链表的代码基础上进行修改就行(初始化、插入、删除)//双向链表 # include typedef int DataType;DataType a;} ListNode;//初始化 int BuyListNode(ListNode * * h) {return 1;//把指针移动到要插入位置的前一个位置 ListNode * q = h;//q等于头指针 int k = 1;原创 2023-01-31 11:26:06 · 172 阅读 · 0 评论 -
数据结构——双向循环链表(八)
双向循环链表用的次数是最多的,下面我们看一下双向循环链表的增删改查。双向循环链表和其他链表差不多,重点还是要掌握他的原理,以及单链表的熟练使用。原创 2023-01-31 16:40:37 · 334 阅读 · 0 评论 -
数据结构——线性结构(二)
很早之前提到了数据结构,上一篇博客简单介绍了什么是线性结构,这篇博客简单做一个补充常见的数据结构可分为:线性结构、树形结构 和 图状结构。线性结构是一个有序数据元素的集合。常用的线性结构有:数组, 链表,栈 ,队列等。原创 2023-01-29 10:17:30 · 256 阅读 · 0 评论 -
数据结构——链表(六)
学习关于链表剩下的知识附上全部代码//链表 # include typedef int DataType;DataType a;} ListNode;//初始化 int BuyListNode(ListNode * * h) {return 1;//把指针移动到要插入位置的前一个位置 ListNode * q = h;//q等于头指针 int k = 1;while(k < p && q) //防止位置P太大,程序挂掉 {原创 2023-01-31 10:17:10 · 281 阅读 · 0 评论 -
数据结构——链表(五)
接下来学习一下链表,链表比数组用的更多。概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑结构是通过链表中的指针链接实现的。什么意思呢,数组时连续的存储结构,知道一个就能找到下一个,链表不是,但是它又是线性的,是如何实现的呢单链表的结构:它将一块分成了两个区域,数据域和指针域,指针域用来存储下一个结点的地址。第一个节点叫头节点,一般不保存数据,第一个节点开始保存数据就是上图中的2有8种链表结构:(1)单向、双向(是否支持向前访问)原创 2023-01-30 16:39:11 · 420 阅读 · 0 评论 -
数据结构——栈(九)
栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除操作的一端成为栈顶,另一端称为栈底。栈中的元素遵循后进先出(LIFO, Last In First Out)原则。1、栈的英文为(stack)2、栈是一个先进后出(FILO-First In Last Out)的有序列表。3、栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。原创 2023-02-01 23:52:44 · 788 阅读 · 0 评论 -
数据结构——顺序表(四)
实际应用中很少采用数据表,大都使用链表,链表可以很好的解决顺序表的缺点。//存储数据的数组(动态开辟) int size;//顺序表中当前有效数据的个数 int capacity;//顺序表中最大存储的个数 } SeqList;//初始化 int SeqListInit(SeqList * p) {assert(p);//用assert来防止传入空指针使程序崩掉 p -> a =(int *) malloc(sizeof(int) * N);//将指向动态开辟的数组置为NULL。原创 2023-01-30 11:07:23 · 130 阅读 · 0 评论 -
数据结构——队列(十)
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)。入队:进行插入操作的一端称为队尾。出队:进行删除操作的一端称为队头。队列也是分为顺序队列和链式队列附上完整代码//队列 # include # include static i = 0;typedef struct QueueNode //对列结点的结构体 {原创 2023-02-04 21:34:04 · 442 阅读 · 0 评论 -
什么是哈希表
关于哈希表,在找工作的时候会有许多面试官问,你知道哈希表的底层原理吗,然后就给我们问懵了。那么怎么理解哈希表呢?HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。对于HashMap,我们最常使用的是两个方法:Get 和 Put。原创 2022-10-12 21:33:49 · 4580 阅读 · 0 评论 -
数据结构基础——什么是数据结构(一)
距离上一次更新博客已经过了很久,最近一直在画PCB,做项目,并没有更新太多博客。现在也已经开学了一段时间,是时候重新写博客规划自己的生活了,我为什么要学数据结构与算法呢,在大二的时候我有简单的了解过数据结构与算法,并没有系统的学习,现在也已经大三了,数据结构与算法对于找工作来说是非常重要的,今年的就业大环境也不是很好,所以需要提前做好准备。写博客呢也是为了记录自己的学习,以后复习起来也方便许多,同时也希望能够帮到各位同学。首先我们来看算法是什么,所谓算法,指的是解决实际问题的一系列方法。原创 2022-10-12 20:36:23 · 759 阅读 · 0 评论