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