动态数组的初始化操作
Status Listlnesert_Sq(Sqlist &L,int i,char e){
if(i<1||i>ListSize) return ERROR;
//判断参数是否合法大于等于1,而且在最大容量之内
if(L.lenth>=L.Listsize){//内存已满追加内存
newbase=(char *)ralloc(L.elem,L.lenth+LISTINCREMENT)*sizeof(char));
if(!newbase) exit(OVERFLOW);//分配内存失败
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&(L.elem[i-1]);//必须通过地址访问
for(p=&(l.elem[l.lenth-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++l.lenth;
return OK;
}
动态数组的插入操作
Status Listlnesert_Sq(Sqlist &L,int i,char e){
if(i<1||i>ListSize) return ERROR;
//判断参数是否合法大于等于1,而且在最大容量之内
if(L.lenth>=L.Listsize){//内存已满追加内存(注意等号)
newbase=(char *)ralloc(L.elem,L.lenth+LISTINCREMENT)*sizeof(char));
if(!newbase) exit(OVERFLOW);//分配内存失败
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&(L.elem[i-1]);//必须通过地址访问
for(p=&(l.elem[l.lenth-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++l.lenth;
return OK;
}
动态数组的删除操作
Status ListDelete_Sq(Sqlist &L,int i,char &e){
if(i<1||i>l.lenth) return ERROR;
q=&(L.elem[i-1]);
e=*q;
for(p = q;p < &(L.elem[L.lenth-1]);p --)
*p=*(p+1);
L.lenth--;
returm OK;
}
算法复杂度的计算方法