线性表:
定义:具有相同数据类型的n个数据元素的有限序列。即个数有限,逻辑上有顺序,表中元素为数据元素,且数据类型都相同即每个元素都占有相同的存储空间。
基本操作:ListInsert(&L,i,e):插入操作。ListDelete(&L,i,&e):删除操作。
顺序表:即线性表的顺序存储,用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使逻辑相邻的两个元素在物理位置上也相邻。
地址分配方式可为静态分配和动态分配两种。
静态分配:数组的大小和空间事先已经固定,一旦空间占满,再加入新的数据将产生溢出,会导致程序崩溃。
动态分配:存储数组的空间是做程序执行过程中通过动态存储分配语句分配的。同样还属于顺序存储结构,其物理结构没有变化,依然是随机存取方式,只是分配的空间大小可以做运行时决定。
顺序表特点:随机访问,存储密度高,逻辑相邻的元素物理上也相邻。
顺序表的基本操作:
1)插入:
首先考虑非法数据的过滤:如果i输入不合法,则返回false,即i要在1到L.length之间且L.length不能大于最大尺寸Maxsize。
算法:bool ListInsert(SqList &L,int i,ElemType e){
//将元素e插入到顺序表L的第i个位置上
If(i<1||i>L.length)
Return false;
If(L.length>=MaxSize)
Return false;//过滤非法数据
For(int j=L.length;j>