数据结构(4) 链表(链式存储)

在这里插入图片描述

链表(链式存储)

  • 单链表
    • 定义
    • 基本操作的实现
      • 单链表的插入
        • 按位序插入
        • 指定节点的前插
        • 指定节点的后插
      • 单链表的删除
    • 小结

单链表

定义

在这里插入图片描述

在这里插入图片描述

顺序表优点:可随机存取,存储密度高,缺点:要求大片连续空间,改变容量不方便。
单链表优点:不要求大片连续空间,改变容量方便,缺点:不可随机存取,要耗费一定空间存放指针。

定义单链表的代码:
在这里插入图片描述
定义数据领和指针域

定义一个新节点
在这里插入图片描述

定义typedef关键字来缩短函数书写麻烦
在这里插入图片描述

所以综上定义单链表有两种方式
在这里插入图片描述
要表示一个单链表时,只需声明一个头指针L,指向单链表的第一个结点
LNode * L; //声明一个指向单链表第一个结点的指针,或者LinkList L;//声明一个指向单链表第一个结点的指针,后者代码可读性更强。

  • 强调这是一个单链表–使用 LinkList
  • 强调这是一个结点–使用LNode*
  • 二者本质相同,都用于定义一个类型为单链表的指针

在这里插入图片描述

初始化一个不带头节点的单链表:

在这里插入图片描述
初始化一个带头节点的单链表:
在这里插入图片描述

在这里插入图片描述

基本操作的实现

在这里插入图片描述

单链表的插入

在这里插入图片描述

按位序插入

带头结点插入
在这里插入图片描述
在这里插入图片描述

不带头结点插入
在这里插入图片描述
在这里插入图片描述

指定节点的前插
  • 法1:用已知头指针来遍历链表插入
    在这里插入图片描述
  • 法2:用已知p节点后插入数据来转移数据(时间复杂度为O(1))

在这里插入图片描述

指定节点的后插

在这里插入图片描述
在这里插入图片描述

单链表的删除

  • 法1:用已知头指针来遍历链表删除
    在这里插入图片描述
    在这里插入图片描述
  • 法2:用已知p节点删除数据(时间复杂度为O(1))(且p节点不能为最后一个节点)
    在这里插入图片描述

小结

在这里插入图片描述

你可能感兴趣的:(数据结构,数据结构,链表,快速入门)