05 |「链表」简析

本文介绍了链表的基本概念,包括单链表、双链表和循环链表在内存中的存储方式。链表的主要特点是插入和删除操作高效,但查找效率较低。文章详细阐述了链表的插入(头部、中间、尾部)和删除(头节点、中间节点、尾节点)操作的逻辑和实现方法。
摘要由CSDN通过智能技术生成

前言

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

一、链表简介

1. 含义

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

在这里插入图片描述

2. 节点组成

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

3. 存储方式

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

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

4. 特点

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

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

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

二、链表的操作

1. 插入数据

1)头部插入

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

2)中间插入

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

在这里插入图片描述

3)尾部插入

在这里插入图片描述

2. 删除数据

1)删除头节点

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

2)删除中间节点

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

在这里插入图片描述

3)删除尾节点

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个写代码的修车工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值