04 |「链表」简析
创始人
2024-05-15 13:38:12

前言

前言:研究一个数据结构的时候,首先讲的是增删改查。

文章目录

  • 前言
  • 一、链表简介
    • 1. 含义
    • 2. 节点组成
    • 3. 存储方式
      • 1)数据在内存中的存储方式
      • 2)单链表在内存中的存储方式
      • 3)双链表在内存中的存储方式
      • 4)循环链表在内存中的存储方式
    • 4. 特点
  • 二、链表的操作
    • 1. 插入数据
      • 1)头部插入
      • 2)中间插入
      • 3)尾部插入
    • 2. 删除数据
      • 1)删除头节点
      • 2)删除中间节点
      • 3)删除尾节点

一、链表简介

1. 含义

  • 链:链子。
  • 表:数据集合。按照一定顺序排列的元素集合为表。
  • 链表的概念:链表中存储的是数据,按照一定顺序排列,每一个数据的前面的数据叫做前驱,后面的数据叫做后继。

在这里插入图片描述

2. 节点组成

链表中的每个节点都是由两部分组成。一部分为数据(节点存放的值),另一部分为 地址(下一个节点的地址),节点与节点之间通过指针连接起来。

3. 存储方式

1)数据在内存中的存储方式

  • 每个数据在内存中存储都需要占据一块内存空间,任何一块内存空间都有相应的地址。

  • 根据元素首地址和数据类型,其中数据类型规定了占据的内存空间的字节大小。

  • 通过元素首地址和定义变量的数据类型就可以确定数据所占唯一的内存空间大小,同时找到对应的内存空间,然后从内存空间中读写数据即可。

在这里插入图片描述

2)单链表在内存中的存储方式

  • 链表区别于数组的存储方式,数组在内存中是集中存放的,链表在内存中是散乱存放的。

  • 只要内存中有位置,链表节点就可以存放,节点间通过指针连接。

在这里插入图片描述

3)双链表在内存中的存储方式

在这里插入图片描述

一个节点内部组成如下图所示。
在这里插入图片描述

4)循环链表在内存中的存储方式

在这里插入图片描述

4. 特点

  • 插入删除数据效率高,读取(查找)数据效率低。

  • 查找数据:需要从头结点开始,需要挨个进行判断,效率低。

  • 更新数据:需要先查找到数据(查找),从头结点开始依次判断,找到之后替换数据。

二、链表的操作

1. 插入数据

1)头部插入

新节点的 next 指向原链表的头结点,这样新节点就为当前新链表的头结点。
其中 “指向”是一个逻辑概念,怎么用代码实现,通过给 next 指针赋值的方式实现更改指向。
在这里插入图片描述

2)中间插入

将要插入的节点的 next 指向后一个节点,前一个节点 next 指向要插入的节点。

在这里插入图片描述

3)尾部插入

在这里插入图片描述

2. 删除数据

1)删除头节点

直接将头节点删除,第二节点成为头节点。将 Head 指针往后移动一位。

2)删除中间节点

将前一个节点的 next 指向后一个节点。

在这里插入图片描述

3)删除尾节点

直接将尾节点的前一个节点的 next 置为 NULL 即可。

相关内容

热门资讯

demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...