1.顺序表结构体定义
typedef struct//定义顺序表类型
{
int data[MAXSIZE]; //静态数组定义
int length; //表长,即实际元素个数 -1=下标
int last; //指向数组最后一个元素的下标
}SeqList;
可以用 last 也可用 lenght,但last从-1开始,lenght从0开始
2.顺序表的初始化
SeqList* lnitList()//线性表初始化
{
SeqList* L;
L=malloc(sizeof(SeqList));//为线性表L分配地址空间
if(!L)//判断分配是否成功
{
return ERROR;
}
L->length=0; //初始化
L->last=-1; //初始化
return L;
}
3.元素插入算法
Status ListInsert(SqList* L,int i,int e){
int j=0; //计数器
if (L->length == MAXSIZE){ //线性表已满
return ERROR;
}
if (i<1 || i>L->length+1){ //当i小于1或大于数组最大长度+1 取值非法
return ERROR;
}
if (i<=L->length)//若插入位置不在表尾
{
for(j=L->length;j>=i;j--) //核心代码:见下文分析