PS:本来这篇文章是打算塞到FreeRTOS里的,但是写着写着发现不太合适,于是干脆直接单开一篇写。之后看情况更新和优化吧······
首先,什么是链表呢?什么又是节点?
简单来说,每个节点由数据和指针组成,几个节点相连就组成了链表。
我们把链表看作一列火车,那么每个车厢就是一个节点。车厢本身没什么特别的,关键在于它们运载的是什么。节点可以挂载不同类型的数据,比如int、char、float等。就像火车车厢可以有硬座和卧铺车厢,亦或是运煤、运矿石的车厢。而指针就像车厢之间的连接器,连接着相邻的每一节车厢。
需要注意的是,节点可以挂载携带很多类型的数据,但是它们本身并不能存储多少数据。
再讲一下数组和链表的区别,很多嵌入式公司都喜欢问这个问题。
在内存上,数组是连续的一段地址,由于在应用时很难确定实际要用到多少内存,所以很容易造成内存的浪费。而链表是离散的,可以不连接在一起。链表数据前后之间通过指针连接,通过指针指向前一个或者后一个数据,就像车厢间的连接器。
PS:最后向大家推荐一下我这部分参照的B站up主——图码,他的视频结合代码和动画,视频简单易懂,目前还在更新数据结构的部分,希望大家能多支持一下他~(我真不是打广告的)