归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝
只有靠自己的毅力忍耐,静心思考和付出,才迎来七彩的阳光,幸福它包围着我!
一起加油!
目录
一、前言:
线性表是一种最简单、最基本、最常用的数据结构 ,几乎所有的线性关系 都可以用线性表来表示。线性表是一种线性结构,线性结构的特点是数据元素之间具有一对一的线性关系,数据元素"一个接一个地排列"。因此,线性表可以想象为一种数据元素的序列。线性表有顺序存储 和链式存储两种存储方法,基本运算包括插入、删除和查找等。
二、线性表的定义:
线性表 (Linear List)是一种线性结构。在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构。
线性表是具有相同数据类型的 n (n>0) 个数据元素的有限序列,通常记为:
( a1, a2,..., ai-1, ai, ai+1,..., an)
其中n为表长,当n=0时称该线性表为空表。
· 表中相邻数据元素之间具有前后次序关系 。将 ai-1 称为 ai的直接前趋 ,ai+1称为 ai的直接后继。即对于ai当i=2,...,n时,有且仅有一个直接前趋ai-1;当i=1,2,...,n-1时,有且仅有一个直接后继 a1。而a1是表中第一个数据元素,它没有前趋;an是最后一个数据元素,它无后继。需要说明的是:ai为序号为i的数据元素(i= 1,2,...,n).
三、线性表的基本运算:
数据结构中的数据元素的运算是定义在逻辑结构层次上的,而运算的具体实现是建立在存储结构上的,因此下面定义的线性表的基本运算作为逻辑结构的一部分,每一种运算的具体实现只有在确定了线性表的存储结构之后才能完成。
线性表上的基本运算有以下几种。
💦线性表初始化: Init_List(L)。✨初始条件:线性表L不存在。
✨运算结果:构造一个空的线性表 L。💦求线性表的长度:Length_List (L)。
✨初始条件:线性表L存在。
✨运算结果:返回线性表中所含数据元素的个数。💦取表元: Get_List(L,i)。
✨初始条件:线性表 L存在且1<=i<=Length_List(L)。
✨运算结果: 返回线性表 L 中第i个数据元素的值或地址。💦按值查找: Locate_List(L,x)。
✨初始条件:线性表 L 存在,x 是给定的一个数据元素。✨运算结果: 在线性表 L 中查找值为x的数据元素,其返回结果在线性表 L中首次出现的值为x的那个数据元素的序号或地址,称为查找成功;否则,在线性表 L 中未找到值为x的数据元素,返回一个特殊值表示查找失败。
💦插入运算: Insert_List (L,i, x)。
✨初始条件: 线性表 L存在,插入位置正确(1<=i<=n+1,n 为插入前的表长)。
✨运算结果:在线性表L的第i个位置上插入一个值为x的新数据元素,这样使原序号为i,i+1,...,n 的数据元素的序号变为i+1,i+2,...,n+1,新表长=原表长+1。💦删除运算: Delete_List (L,i)。
✨初始条件:线性表 L 存在,1<=i<=n。✨运算结果:在线性表 L中删除序号为 i的数据元素,使原序号为 i+1,i+2,...,n 的数据元素的序号变为 i,i+1,..,n-1,新表长=原表长-1。
四、说明:
需要说明以下几点:
🔑**数据结构上的基本运算不是它的全部运算,而是一些常用的基本运算,每一个基本运算在实现时也可能根据不同的存储结构派生出一系列相关的运算。**例如,线性表的查找在链式存储结构中还有按序号查找;再如,插入运算,可能是将新数据元素插入到某一数据元素之前,也可能是将新数据元素插入到某一数据元素之后,还可能是将新数据元素插入到其他适当的位置,等等。不可能也没有必要全部定义出一种数据结构的运算集,掌握了某一数据结构上的基本运算后,其他运算可以通过基本运算来实现,也可以直接去实现。
🔑**在上面各种运算中定义的线性表 L 只是一个在逻辑结构层次上抽象的线性表,尚未涉及它的存储结构,**因此每种运算在逻辑结构层次上尚不能用具体的程序设计语言写出具体的算法,其算法只有在存储结构确立之后才能用具体程序设计语言实现。
🔑 正因为这些运算仅是逻辑上的说明,因此以上用来定义运算的函数中所列的参数的数据类型并不明确说明,只是隐含在函数说明中,对于参数的传递方式也不予考虑,这是因为只有在涉及具体实现时才需要明确其参数的数据类型和传递方式。
五、总结:
⭐ 线性表是一种最简单、最基本、最常用的数据结构
⭐在一个线性表中数据元素的类型是相同的
⭐线性表上的基本运算有以下几种:线性表初始化,求线性表的长度,取表元,按值查找,插入运算,删除运算
⭐数据结构上的基本运算不是它的全部运算,而是一些常用的基本运算,每一个基本运算在实现时也可能根据不同的存储结构派生出一系列相关的运算
⭐在上面各种运算中定义的线性表 L 只是一个在逻辑结构层次上抽象的线性表,尚未涉及它的存储结构
⭐只有在涉及具体实现时才需要明确其参数的数据类型和传递方式
六、共勉:
以上就是我对线性表的逻辑结构的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对线性表的理解,请持续关注我哦!!!