21_线性表的链式存储结构

作者: 编程半岛 | 来源:发表于2018-01-24 18:28 被阅读4次

关键词: 链表的定义、链表的插入和删除操作

1. 链式存储的定义

为了表示每个数据元素与其直接后继元素之间的逻辑关系,数据元素除了存储本身的信息外,还需要存储其直接后继的信息。

基于链式存储结构的线性表中,每个结点都包含数据域指针域

  • 数据域:存储数据元素本身
  • 指针域:存储相邻结点的地址


2. 专业术语的统一

顺序表:基于顺序存储结构的线性表
链表:基于链式存储结构的线性表
1) 单链表: 每个结点只包含直接后继的地址信息
2) 循环链表: 单链表中的最后一个结点的直接后继为第一个结点
3) 双向链表:单链表中的结点包含直接前驱和后继的地址信息

3. 链表中的基本概念

  • 头结点:链表中的辅助结点,包含指向第一个数据元素的指针
  • 数据结点:链表中代表数据元素的结点,表现形式为:(数据元素, 地址)
  • 尾结点: 链表中的最后一个数据结点,包含的地址信息为空

4. 单链表中的节点定义

5. 单链表中内部结构


头结点在单链表中的意义: 辅助数据元素的定位,方便插入和删除操作。因此,头结点不存储实际的数据元素

6. 单链表的插入操作

1) 从头结点开始,通过current指针定位到目标位置
2) 从堆空间申请新的Node结点
3)执行操作:

node->value = e;
node->next = current->next;
current->next = node;

7. 单链表的删除操作

1) 从头结点开始,通过current指针定位到目标位置
2) 使用toDel指针指向需要删除的结点
3)执行操作

toDel = current->next;
current->next = toDel->next;
delete toDel;

8. 小结

  • 链表中的数据元素在物理内存中无相邻关系
  • 链表中的结点都包含数据域指针域
  • 头结点用于辅助数据元素的定位,方便插入和删除操作
  • 插入和删除操作需要保证链表的完整性

声明:此文章仅是本人在学习狄泰学院《数据结构实战开发教程》所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

相关文章

  • 数据结构与算法-C语言6-线性表之链式存储结构

    数据结构与算法-目录 1、线性表的链式存储结构 1.1、线性表链式存储结构定义 线性表的链式存储结构的特点是用一组...

  • 数据结构之有序线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构以及线性表的链式存储结构,今天接着写有序线性表的链式存储结 ...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

  • 线性表的链式存储--单链表

    Java之线性表的链式存储——单链表 我们都知道,线性表的存储结构分为两种,顺序存储结构和链式存储结构,线性表的分...

  • C++线性表的链式存储结构

    C++实现线性表的链式存储结构: 为了解决顺序存储不足:用线性表另外一种结构-链式存储。在顺序存储结构(数组描述)...

  • 数据结构 线性表 链式存储结构

    本文主要介绍线性表的链式存储结构 为什么要使用链式存储结构? 首先我们知道,根据线性表的顺序存储结构,我们可以对顺...

  • 数据结构和算法之一——线性表_2_顺序结构存储

    线性表存储结构分类线性表有两种物理存储结构:1)顺序存储结构;2)链式存储结构 顺序存储结构2.1定义:线性表的顺...

  • 线性表二(链表的简单概念)

    链式存储结构的线性表:除了要存储数据元素的信息外还要存储它的直接后继元素的存储地址。 链式存储结构线性表的定义 链...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 数据结构 —— 链表

    链式存储是最常用的动态存储方法,为了克服顺序表的缺点,可以采用链式方式存储线性表,通常将采用链式存储结构的线性表称...

网友评论

    本文标题:21_线性表的链式存储结构

    本文链接:https://www.haomeiwen.com/subject/avguaxtx.html