线性表(一)
1、线性表
零个或多个数据元素的有限序列。比如:排队过斑马线的学生们。(这里提到了数据元素,不懂的可以看一下 数据结构系列—初识数据结构,什么是数据元素) 线性表第一个无前驱、最后一个无后继,中间的都会有一个前驱和一个后继。
举几个列子是否是线性表:
1、星座列表:
百度给的顺序依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座、水瓶座、双鱼座。
(一共十二个星座,符合前驱后继所以属于线性表)
2、公司架构:
总经理————n个总监————n个经理————n个员工
(因为每个元素都不止有一个前驱和一个后继,所以不属于线性表)
3、班级点名册:
班级排序表从1——30,哪怕后面带有性别和联系方式等多个数据项。
(算线性表 因为上面说过链表是多个数据元素组成的有限序列,由于数据元素由若干个数据项组成,所以符合)
4、排队买饭:
依次排队买饭算是线性表,如果这时候来了一个插队的放了个水杯走了,这也算是线性表。但是!但是!这种队不会让它插的,因为水杯和人不算同一种数据元素。
如果算的话,那一根头发也算了。所以线性表也需要相同类型的数据
2、线性表的抽象数据类型
上面举的例子提到了相同类型的数据。对于一个线性表来说,插入、删除、查询、长度等都是必须操作。
比如说常用的 ArrayList:会发现底层是数组形式 Object[] elementData,常用操作如下:
List<String> list = new ArrayList<>(); 初始化操作,建立一个空的线性表
boolean empty