🤡博客主页: 醉竺
🥰本文专栏:《数据结构与算法》
😽欢迎关注:感谢大家点赞评论+关注,祝您学有所成!
✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看💛💜✨✨
目录
一.线性表概述
1.线性表的定义和特点
线性表是具有n(n>=0)个相同数据类型的数据元素的有限序列。
线性表的表示:
若用L命名(List),表示:L=(a1,a2,a3,a4,a5,.., a(i-1),a, a(i+1),...,an) 。
线性表的长度:
长度就是线性表中所含元素的个数;当n=0时,表示元素个数为0,是空表。
位序:ai是第i个数据元素,称i为数据元素a在线性表中的位序。注意:数组下标是从0开始的,位序是从1开始的。
线性表元素的特点:
1. 表中元素个数是有限个
2. 表中元素具有逻辑上顺序性,各个元素有先后次序
3. 表中元素数据类型相同,表中每个元素占用相同大小的存储空间
4. 线性表是一种逻辑结构,表示一对一的相邻关系
5. 表中元素具有抽象性,即线性表仅讨论数据间的逻辑关系,不讨论元素的具体内容。且元素内容可以是任何数据,可以是学生,老师,动物等等,具体实现时可以具体确定下来
非空线性表或线性结构的逻辑特性:
存在唯一的一个被称作“第一个”的数据元素
存在唯一的一个被称作“最后一个”的数据元素
除第一个元素外,结构中的每个数据元素均只有一个前驱
除最后一个元素外,结构中的每个数据元素均只有一个后继
2.判断线性表?
1.一对一?
2.类型相同?
3.有限序列?
4.逻辑结构?
二.线性表的存储结构
(ps:这里仅简单的引入一下,不用太纠结,后面我的博客会具体深入学习线性表的存储结构)
线性表的存储结构有顺序存储结构:顺序表和链式存储结构:链表。
1.顺序表
定义:把线性表中所有元素按照逻辑顺序,依次存储到从指定位置开始的一块连续存储空间
特点:
第一个元素的存储位置就是指定的存储位置
第i+1个元素的存储位置紧接在第i个元素的存储位置后面
逻辑相邻的两个元素在物理上也相邻
例子:
2.链表
定义:在链表存储中,每个结点不仅包含所存元素的信息,还包含元素之间逻辑关系的信息。指的是通过一组任意的存储单元(不要求连续)来存储线性表中的数据元素,对每个元素除存放自身信息之外,还需要存放一个指向其后继的指针。
链表中每个结点的内容:
所存储的元素的信息;元素之间的逻辑关系信息 (指针)
例子:
3.顺序存储与链式存储的比较
总结:顺序表最大的特点就是可以随机存取访问任意一个元素,因为只要获取元素在表中的位置、位序,可以直接通过下标进行访问和存取;以及若已知表中首元素在存储器中的位置,则可求出线性表中其他元素的存放的位置。缺点就是插入或者删除元素时需要移动其它多个元素。
链表不要求逻辑上相邻的元素在物理位置上也相邻,它通过“链”建立起元素之间的逻辑关系,因此插入和删除操作不需要移动元素,而只需修改指针,但也会失去顺序表可随机存取的优点。