大家都知道火车还有自行车的车链,包括中国高铁,过山车
他们都有一个共同的特征链结在一起的,可以任意地添加,删除
假设:临时用到的一个火车车箱我们怎么给它们链接起来呢?
大家想想;
首先有你的火车车箱才行
由于我没有"火车车箱",但是我们可以模拟的嘛
“火车车箱”:
假设前面有20节火车车箱,后面也有20节火车车箱
如何添加车箱:
我们来捋一下思路:
1.得有新的车箱
2.将新车箱连接后续20节车箱
3.将第20节火车车箱的连接到新车箱
如何移除该车箱
我们来捋一下思路:
1.得找到21节车箱的前一个车箱
2.将21节车箱为移除车箱
6.将第22节车箱链接到20节车箱
7.移除21节车箱
这一节节车箱就对应的数据结构-链表
链表原理精讲:链式存储链表也是线性,也就是说一个挨着一个,它只是物理储存上不相同,而逻辑上是相同的
举个例子:张三出门去李四家玩而且李四在另外一个村庄,而且有五百米,走过去玩了一会后,该吃饭了,于是想到了王五家蹭蹭饭,巧了的是王五家又在另外一个村庄,从李四的村庄出发,有一公里距离,就跑了过去刚刚好王五煮了饭,王五热情地招待着
"这个例子"告诉我们友情非常重要*…啪啪啪醒醒吧不对,我们应该是理解链表的原理而不是友情,搞错了,抱歉啊!
这很明显"物理"上不相同逻辑上是相同的张三----李四家-----王五家可以看成是一个链条连接着关系
如何表示这种关系呢无论你在哪里我知道你们的地址就可以访问张三知道李四家地址也知道王五的地址可以随时互换
张三----李四家-----王五家只需要修改目的地就可以了想去的地方
如何表示访问这些好基友呢?
首先定义一个结构体
//好基友structBestGayFris{stringFriName;//好基友的名字BestGayFris*next//下一个好基友家的地址};使用好基友结构体
//创建好基友BestGayFris*lisi=newBestGayFris;//李四BestGayFris*wangwu=newBestGayFris;//王五lisi-FriName="李四";wangwu-FriName="王五";//张三去李四家再去王五家lisi-next=wangwu;wangwu-next=nullptr;//不能再去其他的地方BestGayFris*zhangsan=lisi;//主要是可去的地方就去看while(zhangsan){cout"张三""去"zhangsan-FriNamel;zhangsan=zhangsan-next;//张三去下一位好基友那里}deletelisi;//访问结束deletewangwu;//访问结束一般来说链表需要首节点而这个lisi就是首节点这个节点一般不会放数据只会留着来当首节点方便维护整个链表
链表有两种组成部分:
数据域
指针域
这一节节车箱就对应的数据结构-链表