线性表是最简单基础也是最常用的线性结构.元素之间存在一对一的线性关系,在线性表中元素类型是相同的.
线性表运算
//初始化线性表
void initiate();
//返回线性表中元素个数
int length();
//返回线性表索引为num的值(0 <= index < length)
dataType getValue(int index); //dataType是元素类型
//查找数据元素,找到返回数据元素的索引值,没有找到返回-1
int getIndex(dataType value);
//在索引位置插入一个新元素,线性表长度+1.
//成功返回1,若 index<0 或 index>length 表示插入失败返回0;
int insert(dataType element,int index);
//按索引删除一个元素,元素个数-1.
//成功返回1,0<index 或 index>=length 表示删除失败返回0
int delete(int index);
上述定义的进士一个抽象层次的线性表,没有涉及到它的存储结构.而算法的实现需要在确定存储结构之后.
抽象数据类型描述为
ADT LinerList
{
data:
线性表
operation:
void initiate(); //初始化
int length(); //返回线性表长度
T getValue(int index); //按索引取元素
int getIndex(T value); //按值返回索引
int insert(T value, int index); //按索引插入
int delete(int index); //按索引删除
};
线性表顺序结构
顺序结构是只在内存中用一组连续的存储空间,顺序存放线性表中的数据.使逻辑上相邻的元素在物理位置上也相邻.
因为连续的存储单元,所以插入,删除操作时需要通过移动元素来实现,影响效率.