「链表」简析
创始人
2024-05-15 11:44:05
0

前言

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

文章目录

  • 前言
  • 一、链表简介
    • 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 即可。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...