龙空技术网

数据结构-链表-基本了解

小森程序员 63

前言:

当前咱们对“链表的基本原理”大约比较看重,朋友们都想要剖析一些“链表的基本原理”的相关内容。那么小编也在网络上汇集了一些关于“链表的基本原理””的相关知识,希望你们能喜欢,各位老铁们快快来学习一下吧!

基本描述基本描述

大家都知道火车 还有自行车的车链, 包括中国高铁,过山车

他们都有一个共同的特征 链结在一起的, 可以任意地添加,删除

假设:临时用到的一个火车车箱 我们怎么给它们链接起来呢?

大家想想;

首先 有你的火车车箱才行

由于我没有"火车车箱",但是我们可以模拟的嘛

“火车车箱”:

假设前面有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 就是首节点 这个节点一般不会放数据 只会留着来当首节点方便维护整个链表

链表有两种组成部分 :

数据域指针域

这一节节车箱就对应的 数据结构-链表

标签: #链表的基本原理 #链表的原理