一、基本概念
线性表是由n(n>=0)个数据元素所构成的有限序列;
线性表可以用顺序存储表示:顺序表;
也可以用 链式存储表示:链表(又分为单链表,双链表,循环链表);
二、线性表的顺序存储
1.顺序表地址计算公式:
第i个数据元素的地址 = 首数据元素的地址(线性表的基地址) + i x 每个数据元素占的存储单元;
2.线性表的特点:
(1)在线性表逻辑上相邻的数据元素,在物理存储位置上也是相邻;
(2)存储密度高,需要预先分配“足够应用”的存储空间,可能会造成存储空间的浪费;
存储密度=数据元素本身值所需的存储空间/该数据元素实际所占用的空间;
(3)便于随机存取;
(4)不便于插入和删除操作,会造成大量数据的移动。
三、顺序表的基本操作的实现
//线性表的抽象数据java接口
public interface LinearList{
//将一个已经存在的线性表变成空表
void clear();
//判断线性表是否为空,若为空返回true;否则false
boolean isEmpty();
//线性表中数据元素个数并返回其值
int length();
//读取并返回线性表中第i个数据元素的值,i取值范围0=< i =<length()-1
Object get(int i);
//在线性表的第i个数据元素之前插入一个