您的位置:首页 > 健康 > 美食 > 建设通网站有建筑公司名录大全_广西建筑培训网_萌新seo_搜索引擎优化seo什么意思

建设通网站有建筑公司名录大全_广西建筑培训网_萌新seo_搜索引擎优化seo什么意思

2024/12/28 22:03:02 来源:https://blog.csdn.net/2301_78702440/article/details/144026407  浏览:    关键词:建设通网站有建筑公司名录大全_广西建筑培训网_萌新seo_搜索引擎优化seo什么意思
建设通网站有建筑公司名录大全_广西建筑培训网_萌新seo_搜索引擎优化seo什么意思

目录

 

1.链表的概念及结构

2.链表的分类

1.单向或者双向

2.带头或者不带头

3.循环或者非循环

3.链表的实现

1.无头单向非循环链表

2.双向带头循环链表

4.顺序表和链表的区别


 

1.链表的概念及结构

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

20bd571bb7714a46a48e9a40c1faee6c.png

现实中 数据结构中

1e4de82376c243fb854495c0e56863ec.jpeg

注意:

1.从上图可看出,链式结构在逻辑上是连续的,但是在物理上不一定连续

2.现实中的结点一般都是从堆上申请出来的

3.从堆上申请空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续

 

假设在32位系统上,结点中值域为int类型,则一个节点的大小为8个字节,则也可能有下述链表:

7ff321c5f1a34a20bafe5f91256306cf.jpeg

2.链表的分类

实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:

1.单向或者双向

206bc742c9e547fd8df220e9ea528148.jpeg

2.带头或者不带头

哨兵位:不存储有效数据。

优势:不用探空(空就是空指针的意思)

88742977b03748b097429e9c3edd0b2c.jpeg

3.循环或者非循环

6960bee42c004bd7ae583038f547ffba.jpeg

虽然有这么多的链表的结构,但是我们实际中最常用还是两种结构:

6b45f22e533e4f4ca43be37281a28d07.jpeg

1.无头单向循环链表:结构简单,一般不会单独用来存储数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。

2.带头双向循环链表:结构最复杂,一般用在单独存储数据,实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了,后面我们代码实现了就知道了。

3.链表的实现

1.无头单向非循环链表

SList.h

b930f00f04b84da9b5b61256c9a5aaee.png

SList.c

3a4e0a95f206476d86349e9b09f4a0b9.png

2.双向带头循环链表

List.h

1dd00b4be32346aaa7805d977960fcc8.png

List.c

ac907ea57b984331ba9163850a053b2f.png

4.顺序表和链表的区别

1.存储空间:顺序表物理上一定连续;链表逻辑上连续,但物理上不一定连续。

2.随机访问:顺序表支持O(1);链表不支持:O(N)

3.任意位置插入或者删除元素:顺序表可能需要搬移元素,效率低;链表只需要修改指针指向。

4.插入:顺序表动态顺序表,空间不够时需要扩容;链表没有容量的概念。

5.应用场景:顺序表元素高效存储+频繁访问;链表任意位置插入或删除频繁。

6.缓存利用率:顺序表高;链表低

备注:缓存利用率参考存储体系结构以及局部原理性。

如图:转载@亚撒西带师

03fa519897df4bbdbfc0e69011b90b1a.png

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com