**1**.线性结构
线性结构的特点是:在数据元素的非空有限集合中:
**(1)**. 存在唯一一个被称之为“第一个”的数据元素
**(2)**. 存在唯一一个被称之为“最后一个”的数据元素
**(3)**. 除了第一个元素,集合中其他数据元素都均只有一个前驱
**(4)**. 除了最后一个元素,集合中其他数据元素都均只有一个后继
**2**. 线性表
线性表是最常用且最简单的一种数据结构,简言之,一个线性表是n个数据元素的有限序列,至于每个元素的含义各不同,可能是一个数字或者更复杂的某些信息。
在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成,这种情况下,我们把数据元素称之为“**记录**”,把线性表称之为“**文件**”。日常一图顶千言:
![image.png](https://static.studygolang.com/180120/a37406fca1cb339e70458067718b01a3.png)
线性表中的元素个数n(n>=0)为线性表的长度,n=0时为空表,在非空表中,每个元素都有一个固定的位置。线性表使用起来相当灵活,它的长度可以根据需求增长或缩短。
抽象数据类型线性表定义如下:
![image.png](https://static.studygolang.com/180120/7c129086f2bf8e42329686efa05cfdbb.png)
![image.png](https://static.studygolang.com/180120/9fea73dd8dadd2a37271dc2d4783bdf6.png)
![image.png](https://static.studygolang.com/180120/7284869abd70d789c8256f716f4d53ab.png)
上面定义的抽象数据类型线性表可以进行一些更复杂的操作,例如合并两个线性表,把一个线性表拆成两个或者复制一个线性表。
书上的例题想用go语言的方式来解决,例题如下:
![image.png](https://static.studygolang.com/180120/0290b428e2815bbfa74dd584f1d5699b.png)
go语言中的slice没有插入方法,唯一能想到的只能是LA =append(LA,LB),然后再冒泡排序,不知道有没有人能指点一下,是否能有更优解决方式。
有疑问加站长微信联系(非本文作者))