Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >链表的概念

链表的概念

作者头像
pigeon
发布于 2022-04-11 11:39:12
发布于 2022-04-11 11:39:12
2600
举报
文章被收录于专栏:电子荣耀电子荣耀

链表的概念

使用数组存放大量数据时,需要事先定义固定长度的数组,当数组元素个数不确定时,需要定义足够长的数组,这样会造成内存空间的浪费。而且根据数组的存储方式,数组的所有元素必须占用连续的内存空间。

链表是一种常见的重要的数据结构,可以存储多个同类型的数据,它是动态地进行存储分配的一种数据结构。因此链表没有使用数组时的限制,它可以根据实际需要动态地申请内存空间,并且所申请的内存空间也不要求是连续的

结点是链表的基本存储单位,一个结点对应链表中的一个数据元素,所有的结点具有相同的数据结构。每个结点占用一段连续内存空间,而结点之间可以占用不连续的内存空间。结点和结点之间使用指针链接在一起,所以称为链表。

链表中的每个结点包括数据域和指针域两个部分,其中数据域存放结点的数据,指针域存放下一个结点的地址。C语言使用结构体来定义结点,其一般形式为:

struct node

{

int data; //数据域

struct node *next;//指针域

};

使用上面的结构体类型可以建立基本的单向链表,下图显示了单向链表的结构。下图所示的单向链表中,有以下几个需要注意的问题:

(1)需要定义一个指针变量指向第1个结点(即存放第1个结点的地址),称为头指针。

(2)除最后一个结点外,其他结点的指针域指向下一个结点。

(3)最后一个结点的指针域存放NULL,表示链表结束。图中用“∧”表示。

(4)结点的数据域可以根据程序实际需要定义多个数据成员。

单向链表是链式存储结构中最简单的一种方式,链式存储结构最基本的特点是每个结点都存储它的后续结点的地址,不需要占用连续的内存空间。链式存储结构的优点包括:插入删除结点的操作灵活简洁,方便进行内存扩展和回收等。缺点是查询操作只能顺序进行,效率较低。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 电子荣耀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据结构 - 链表
顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充(插入、删除)时又需要进行数据的搬迁,所以使用起来并不是很灵活。
忆想不到的晖
2020/07/15
5030
数据结构 - 链表
线性表(Linear List) 原
线性表是我们日常工作中最简单也是最常用的一种数据结构。 它有如下特点: 每个数据元素最多只能有一个直接前趋。 每个数据元素最多只能有一个直接后继。 只有第一个数据元素没有直接前趋。 只有最后一个数据元素没有直接后继。
云飞扬
2019/03/13
7230
线性表(Linear List)
                                                                            原
单向循环链表-链表(单链表)的基本操作及C语言实现
  逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着。恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储。
宜轩
2022/12/26
1.1K0
2-2 线性表之链表 及其C++实现
采用顺序存储结构的顺序表,其数据元素是用一组地址连续的存储单元来依次存放的,无须为表示数据元素之间的逻辑关系而增加额外的存储空间,其逻辑关系蕴含在存储单元的邻接关系中,并且可以方便地随机存取表中的任一元素,但是从它的插入和删除算法可以看出,顺序表的效率较低,需要大量的数据元素的移位。同时,数据元素最大个数需要预先确定,这使得计算机存储器使用率也不高。
TeeyoHuang
2019/07/02
1.3K0
2-2 线性表之链表 及其C++实现
重学数据结构(一、线性表)
线性表是最常见也是最简单的一种数据结构。简言之, 线性表是n个数据元素的有限序列。 其一般描述为:
三分恶
2020/08/21
7710
重学数据结构(一、线性表)
数据结构--线性表和链表的基础知识
近期准备重新学习一下常用数据结构和基本算法,并计划将这些内容的只是做一个整理和归类,准备慢慢写一个常用数据结构与基本算法的系列博文,博文列表参见:常用数据结构与基本算法博文系列,目前内容还比较少,后续慢慢补充。本文主要内容是介绍 数据结构--线性表和链表的基础知识。
mukekeheart
2020/09/16
1K0
数据结构--线性表和链表的基础知识
线性表简介
学习数据结构 -> 线性表 -> 线性表的介绍     线性表是一种典型的数据结构, 线性结构的基本特点是线性表中的数据元素是有序且有限的, 在线性结构中, 有且仅有一个被称为"开始数据元素"和一个"最后数据元素", 除了开始数据元素没有直接前驱, 最后一个数据元素没有直接后继外, 其余的数据元素有且仅有唯一的一个直接前驱和直接后继。     整理下来说, 线性表具有如下基本特征:         1>. 线性结构中必然存在唯一一个"开始数据元素" ;         2>. 线性结构中必然存
猿人谷
2018/01/17
7120
线性表简介
几种链表及它们的优缺点
用数组描述的链表叫静态链表,首先我们让数组的元素都由两个数据域组成,data和cur。也就是说,数组的每个下标都对应一个data和一个cur。
哆哆jarvis
2022/08/23
1.6K0
几种链表及它们的优缺点
数据结构学习笔记——线性表(中)
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。
蜻蜓队长
2018/08/03
4330
数据结构学习笔记——线性表(中)
python算法与数据结构-单链表(38)
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。
Se7eN_HOU
2019/07/02
5190
【数据结构(C语言版)系列一】 线性表
数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
闪电gogogo
2018/10/10
2.3K1
【数据结构(C语言版)系列一】 线性表
【数据结构】线性表(四)双向链表的各种操作(插入、删除、查找、修改、遍历打印)
按照线性表结点间的逻辑顺序依次将它们存储于一组地址连续的存储单元中的存储方式被称为线性表的顺序存储方式。按顺序存储方式存储的线性表具有顺序存储结构,一般称之为顺序表。换言之,在程序中采用定长的一维数组,按照顺序存储方式存储的线性表,被称为顺序表。
Qomolangma
2024/07/30
3370
【数据结构】线性表(四)双向链表的各种操作(插入、删除、查找、修改、遍历打印)
C语言中都有哪些常见的数据结构你都知道几个??
上次在面试时被面试官问到学了哪些数据结构,那时简单答了栈、队列/(ㄒoㄒ)/~~其它就都想不起来了,今天有空整理了一下几种常见的数据结构,原来我们学过的数据结构有这么多~
用户6754675
2020/03/31
4.1K0
【学点数据结构和算法】02-链表
上一篇博客博主为大家带来了数组的内容分享,本篇博客我们来学习另外一个重要的数据结构——链表!
大数据梦想家
2021/01/27
5780
【学点数据结构和算法】02-链表
数据结构学习笔记(线性表)
  1.基础概念:   *数据((数据对象(数据元素(数据项)))------包含关系。    *数据结构是互相之间存在一种或多种特定关系的数据元素的集合。   *逻辑结构:集合机构,线性结构,树形结构,图形结构。   *物理结构:顺序储存结果、链接储存结构。   2.算法效率问题:   *判断一个算法的效率时,函数中的常熟和其他次要项常常可以忽略,而更应该关注主项(最高次项)的阶数。 最高次项的指数大的,函数随着n的增长,结果也会变得增长特别快。   *常数项:不管这个常数是多少,我们都计作O(1)。
希希里之海
2018/05/16
7890
数据结构(2):链表(上)
顺序表可以随时存取表中的任意一个元素,但插入和删除操作需要移动大量元素。链式存储线性表时,不需要使用地址连续的存储单元,即不要求逻辑上相邻的元素在物理位置上也相邻,它通过“链”建立起数据元素之间的逻辑关系,因此插入和删除操作不需要移动元素,而只需修改指针,但也会失去顺序表可随机存取的优点。
不可言诉的深渊
2021/03/24
9380
线性表,双向链表,静态链表,循环链表(约瑟夫环)
通过前面的学习我们知道,具有“一对一”逻辑关系的数据,最佳的存储方式是使用线性表。那么,什么是线性表呢? 线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线儿串起来,再存储到物理空间中”。
zhangjiqun
2024/12/14
1710
线性表,双向链表,静态链表,循环链表(约瑟夫环)
数据结构(三)链式表
线性表分为顺序存储结构和链式存储结构,顺序存储结构已经在上一篇文章中讲过,本文就来介绍链式存储结构。
xbai921031
2022/05/25
4110
数据结构(三)链式表
数据结构:这是一份全面& 详细的 线性表 学习指南
http://blog.csdn.net/chenleixing/article/details/42392283
Carson.Ho
2019/03/08
3200
数据结构:这是一份全面& 详细的 线性表 学习指南
【Python数据结构系列】《线性表》——知识点讲解+代码实现
tips:本文介绍的知识只是作为一个引子,供小伙伴们参考学习,在学习过程中如果遇到问题,一定要多去搜索相关博客、文章、书籍等其他资料,作为补充学习。 废话不多说,我们开整!
天道Vax的时间宝藏
2021/08/11
2.8K0
相关推荐
数据结构 - 链表
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档