总结
豆包 AI 助手文章总结
首页 > 常见问题 > 正文

线性表的链式存储结构

(*-*)浩
发布: 2019-06-04 09:40:26
原创
13436人浏览过

对于顺序结构的缺点,我们有没有什么好的解决方法呢?

我们今天要介绍的线性表的链式存储结构就可以很好的解决顺序结构的缺点,一起来看。

链式存储结构,又叫链接存储结构。在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的).

线性表的链式存储结构

基本介绍

它不要求逻辑上相邻的元素在物理位置上也相邻.因此它没有顺序存储结构所具有的弱点,但也同时失去了顺序表可随机存取的优点.

特点

1、比顺序存储结构的存储密度小(链式存储结构中每个结点都由数据域与指针域两部分组成,相比顺序存储结构增加了存储空间)。

2、逻辑上相邻的节点物理上不必相邻。

3、插入、删除灵活 (不必移动节点,只要改变节点中的指针)。

4、查找节点时链式存储要比顺序存储慢。

5、每个节点是由数据域和指针域组成。

6、由于簇是随机分配的,这也使数据删除后覆盖几率降低,恢复可能提高。

推荐课程:C语言教程

线性表的最后一个元素是没有直接后继的,所以在链式存储中,我们将最后一个结点的指针域设置为null.

下面我们来看单链表的具体代码实现

typedef struct LNode{     
    ElemType data;          //数据域    
    struct LNode *next;     //指针域,用来指向本节点的直接后继
 }LNode,*LinkList;           //定义节点,以及头指针
登录后复制

 很多同学分不清头指针,头结点,以及第一个结点之间的关系和区别,我们下面简单地区分下。

头指针:是指向链表的指针,如果链表有头结点,它会指向头结点

头结点:第一个结点之前的一个辅助结点,其next指向第一个结点

第一个结点:就是一个结点,data变量存放第一个数据,next指针变量指向第二个结点

linkdelist.png

这里要注意的就是头指针是一个链表的必要元素,而头结点却不是,那么头结点存在的意义是什么呢?

个人的理解就是使第一个结点的插入操作和删除操作和后面结点的操作一致,否则我们在修改第一个结点的时候,就需要修改头指针。

如果没有头结点,头指针直接指向第一个结点。

以上就是线性表的链式存储结构的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号