美文网首页
2. 链式存储 --- 链表

2. 链式存储 --- 链表

作者: 執著我們的執著 | 来源:发表于2018-06-05 00:06 被阅读0次

链表 :是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的;与顺序存储相比,链式存储结构方便实现数据的插入,删除等操作,但是不容易实现随机存取第 i 个数据元素的操作(需要从前往后遍历);So 对于经常是实现插入,删除操作的线性表,采用链式存储结构。


对链表的基本操作
  • 初始化(空链)
  • 返回链表长度
  • 按序号取元素
  • 按值查找元素(返回位置信息)
  • 插入操作
  • 删除操作

动态链表

单链表 LinkList
LinkList
单循环链表 LinkListCy
LinkListCy

单循环链表:最后一个结点的Next指向头结点,由链表尾可以很容易找到链表头,由头找尾较费时。因此通常设置尾指针 Tail

双向循环链表 DLinkList
DLinkList
前驱,后继,由头找尾 the same as 由尾找头,So 只要设置一个即可。
不带头结点的链表

不带头结点的链表看起来更自然一点,所有的结点都存数据,但是相对于带头结点的链表,不设置头结点的链表对 第 1 个 元素做插入、删除操作与其他结点不同,分开实现 !

· 不带头结点的单链表 LinkListNH
· 不带头结点的双向循环链表 DLinkListNH
相关问题
  1. 约瑟夫环问题
    n个小孩围坐在一圈,由第 1 个小孩开始,依次报数。报到 m 的小孩出列,再从下一个小孩开始重新循环报数,直到所有的小孩出列,写出小孩出列的顺序。
    [分析] 围成一圈,报数后删除,用不设头结点的循环链表实现,执行删除操作即可


静态链表

顺序存储结构也可以实现链式存储功能。

  1. 首先,开辟一个充分大的结构体数组(静态分配存储空间)。
  2. 结构体的一个成员(data)存放数据元素,另一个成员(link)存放链表中下一个数据元素在数字中的位置(下标)

通过记录下标而非指针的方式,在数组中实现链表的逻辑,这种方式称为静态链表。

静态链表存储于结构体数组中,但是链表的输出却不是按照数组的顺序输出,是一个指定的位置开始根据link的值依次输出的。

[注]
静态链表(结构体数组)第一个元素的 link值 对应的下标元素作为链表的头,以 link = -1 作为其结束的标志。
静态链表的插入、删除操作与动态链表相同,只需要修改指针,而不需要移动数据。总体来说,静态链表的使用没有单链表方便。

[应用]
静态链表在赫夫曼树与内部排序中都有应用;

【代码后补】

相关文章

  • 2. 链式存储 --- 链表

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

  • C语言实现链表(链式存储结构)

    链表(链式存储结构)及创建 链表,别名链式存储结构或单链表,用于存储逻辑关系为 "一对一" 的数据。与顺序表不同,...

  • 线性链表

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

  • 线性表元素插入和删除

    单链表(链式存储结构)插入 单链表(链式存储结构)删除 有头结点的单链表在开始结点前插入元素等同在头结点后插入元素...

  • 线性结构

    线性结构的两种存储方式:数组(顺序存储)和链表(链式存储)。

  • java数据结构之单链表实践

    链表介绍 具有如下特征:1.链表以节点方式存储,是链式存储2.每个节点包含data域、next域: 指向下一个节点...

  • 数据结构——线性表

    线性表分为顺序存储结构和链式存储结构(单链表,静态链表,循环链表,双向链表)。 单链表(**一种动态结构,所占空间...

  • 线性表(三)——双向链表的表示和实现

    在上篇文章中我们分析讨论了线性表的链式存储结构。链式存储结构表示的线性表主要分为单链表、单循环链表和双向循环链表三...

  • 专项练习数据结构之链表

    1.链表:单链表,双链表,循环链表 2.单链表 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表...

  • Java实现单链表增删改

    1. 链表介绍 链表是有序的列表,但是它在内存中是存储如下: 1)链表是以节点的方式来存储,是链式存储 2)每个节...

网友评论

      本文标题:2. 链式存储 --- 链表

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