链表的物理存储结构:
如何找到链表中的各个数据:
上图说明数据元素是分散在内存的各个位置的。因此也就无法在通过顺序存储的方式去表示各个元素之间的关系了。那现在就有问题了,所谓的数据结构不仅要有数据还要求数据之间要能联系起来,现在如何来关联各个元素之间的关系呢?
链表这种数据结构中每一个数据元素的结构如下:
在链表这种数据结构中,称每一个数据元素为一个节点。那我们来看一下这一个个节点是如何关联起来形成一个线性结构的:
每一个节点存储自身的数据,并且连接自己的下一个节点。一个节点扣着一个节点,跟我们现实中的锁链非常的相似,因此我们将这种数据结构称之为链表 。
单链表的操作
现在链表这种数据结构已经构建出来了。数据可以存储了,各个数据之间也联系起来了。那么现在的问题就是如何使用这种数据结构,让他存储我们想要的数据,并能为我们所用。
还是从常规的操作入手:插入,删除,查找
说到创建链表,其实是非常有意思的。上面我们已经知道,链表中的每一个节点都是可以动态创建的。因此当没有数据的时候,要创建一个链表是怎么创建呢?其实所谓的创建链表就是创建一个指向链表节点类型的指针,这个指针我们称它为链表的“头指针”,这个头指针有一个非常重要的特性,那就是这个指针永远指向这个链表的第一个节点。
不要小瞧这个头指针,这个头指针是非常重要的,绝对不能丢失。这边可以仔细思考一下为什么这个头指针不能丢失?
因此需要有一个指针始终指向第一个节点。并且这个指针不能丢失,因为从上面可以得知,如果这个指针丢失了,那么这个链表就永远都找不到了。
因此创建一个链表,其实就是创建一个指针。因为这个链表一开始没有任何节点。因此,让这个指针指向null
表示当前链表没有任何数据元素。如下:
用代码创建如下:
typedef struct SListNode
{
SLTDateType data;
struct SListNode* next;
}SListNode;
int main(){
SListNode*plist=NULL;
return NULL;
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务