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

        我们之前学习了顺序存储结构线性表,虽然它很强大。但是存在一个不算是缺点的缺点:那便是在插入和删除时。需要移动大量的元素。那么该如何解决这个问题呢?我们直接会想到的是在数据元素之间空出位置,那么在后面的插入时便会很方便。那么此时便会出现一个问题:究竟留出多少空间合适呢?有一个极端是我们需要插入的是 n 个元素。换而言之,这个空间需要预留无穷大,那么这个肯定是不现实的。

创新互联服务项目包括山阴网站建设、山阴网站制作、山阴网页制作以及山阴网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,山阴网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到山阴省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

        此时便出现了我们本节要讲的内容:链式存储。我们来看看链式存储的定义:为了表示每个数据元素与直接后继元素之间的逻辑关系;数据元素除了存储本身的信息外,还需要存储直接后继的信息。如下

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

        我们来看看链式存储逻辑结构,它是基于链式存储结构的线性表,每个结点都包含数据域和指针域。数据域是指粗出数据元素本身;而指针域是指存储相邻结点的地址。关系如下所示

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

        顺序表指的是基于顺序存储结构的线性表,链表指的是基于链式存储机构的线性表。链表分为三种:a> 单链表,即没和结点只包含直接后继的地址信息;b> 循环链表,即单链表中的最后一个结点的直接后继为第一个结点;c> 双向链表,即单链表中的结点包含治脚气前驱和后继的地址信息。

        下来我们来看看链表中的基本概念:A、头结点。链表中的辅助结点,包含指向第一个数据元素的指针;B、数据结点。链表中代表数据元素的结点,表现形式为:(数据元素,地址);C、尾结点。链表中的最后一个数据结点,包含的地址信息为空。那么单链表中的结点是怎样进行定义的呢?如下

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

        我们来看看单链表中的内部结构,如下

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

        头结点在单链表中的意义是:辅助数据元素的定位,方便插入和删除操作;因此,头结点不存在存储实际的实际数据元素。那么在目标位置处是如何插入数据元素呢?1、从头结点开始,通过 current 指针定位到目标位置;2、从堆空间申请新的 Node 结点;3、执行操作:node->value = e; node->next = current->next; current->next = node;同理,在目标位置处删除数据元素:1、从头结点开始,通过 current 指针定位到目标位置;2、使用 toDel 指针指向需要删除的结点;3、执行操作:toDel = current->next; current->next = toDel->next; delete toDel;

        通过今天对线性表的链式存储结构的学习,总结如下:1、链表中的数据元素在物理内存中午相邻关系;2、链表中的结点都包含数据域和指针域;3、头结点用于辅助数据元素的定位,方便插入和删除操作;4、插入和删除操作需要保证链表的完整性。


        今天七夕情人节,祝大家七夕快乐!

文章题目:线性表的链式存储结构(十)
URL地址:https://www.cdcxhl.com/article32/ghscpc.html

成都网站建设公司_创新互联,为您提供网页设计公司品牌网站制作营销型网站建设网站营销微信小程序面包屑导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化