首先我们要明白链表是干啥的?
我们再写代码时会经常用到数组,那么我们就会知道数组开辟的内存是连续的。直接画图示意吧:
数组在内存中的存放方式大概是这样的;
那么数组的好处就是我们可以很快速的访问数组里的内容,直接去访问a[x]就可以了。
但是现在我如果想从数组中插入一个数,要让它变成:
就需要将所有的值都往后移。所以我们当要去操作这样需要灵活操作的数据的时候,我们就可以使用链表搞定它。
我们可以把这些数组连续大块内存以外的这些小块的内存利用起来,把数据存进去,然后通过链表的方式把他们连接起来,如果想要插入某段数据,直接把它所在的块插入进链表中即可。
如何用链表?
首先我们知道链表是用来利用零散的内存的那么我们就需要吧数据存进内存。
我们搞个结构体用来存放数据
这个struct node这个结构体我们并没有给里面存的具体数据。那是因为我们定义的这个结构体只告诉他你是一片地,你里面要放名字和钱。具体你是哪片地,里面放谁的名字谁的钱我还没有想好。
=========================================================================
我们来上代码实战一下:
存阿狗的数据
再多存一个阿鱼
struct node amao/ayu/agou这些结构体,我们用听起来牛逼一点的话就是节点;节点它本质还就是一个结构体,我们把它看成放东西的一片地就行了。
======================================================================
那么我们如何要把这些节点串起来呢?
阿狗同理
阿鱼也同理
=========================================================================
那么我们如何去找这个链表里的数据呢?
=========================================================================
自己的浅薄理解,有什么不妥或者错误的地方还望各位大佬指点!!!!!