线性表的链式存储结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表的链式存储结构相关的知识,希望对你有一定的参考价值。

        线性表从物理结构上分,有顺序存储结构和链式存储结构两种。既然有了顺序存储结构,又何必再有一个链式存储结构呢?原因就在于,顺序存储结构在存储大量的元素,对这些元素进行插入或这删除操作时,会浪费大量的时间。因为,采用顺序存储结构,这些元素的地址都是相邻的,如果删除或者插入一个元素,则需对其后的所有元素进行移动,故非常的浪费运行时间,运行效率不高。

        链式存储结构却避免了这样的问题。因为,链式存储并不需要去关心元素存在哪个位置,也就是说,链式存储可以让元素存于内存的任意位置,而我只要知道元素的地址即可。如下图所示:

技术分享

这种存储方式就完全不需要各个元素是相邻的位置,只需要知道每一个元素的地址即可。通过上图可以发现,采用了链式存储结构的元素之间互相串联,就像是一个表,所以,将这种形式称为链表。那么,可以将每一个数据所占的单元叫做,结点。因为,我们不仅需要知道存储的元素值,还需要知道元素的地址,因此,一个结点就是由一个数据和存放数据的地址,两部分组成。

        那么,总结一下就是,链表是由一个个结点构成,而每一个结点是由一个存放数据的数据域和一个存放数据地址的地址域构成。

        这个地址域存放的并不是当前元素的地址,而是,下一个元素的地址。

代码如下:

typedef struct Node{
    
    ElemType data;
    struct Node *next;

}Node;

typedef struct Node *LinkList;


本文出自 “梵高说我脑子有病” 博客,请务必保留此出处http://chen0547.blog.51cto.com/12489941/1965770

以上是关于线性表的链式存储结构的主要内容,如果未能解决你的问题,请参考以下文章

线性表中的顺序存储与链式存储

线性表的链式存储——线性表的链式存储结构

数据结构开发:线性表的链式存储结构

线性表的顺序存储结构和链式存储结构

用C语言编写链式存储结构下实现线性表的创建,插入,删除,按值查找

线性表的链式存储结构(链表)