数组的插入,追加,删除,清空的原理是什么?
发布网友
发布时间:2022-05-10 17:36
我来回答
共2个回答
热心网友
时间:2022-04-24 08:18
原理就是线性表的插入,删除,和格式化。
由于数组是一组连续且数据类型相同的数,所以它在内存中的存储方式是以线性表的方式存储的,所以它的各项操作的原理和线性表的原理是一样的。
插入算法:
int insertlist(seqlist *l,int i,elemtype b)
{
if(i>L->len)||(i<1)||(L->len>=L->listsize)
reuturn error; //如果位置越界,或空间不够,出错处理
else
for(j=L->len;j>=i;j++)
L->elem[j+1]=L->elem[j]; //将从第i个位置的元素往后移一位
L->elem[i]=b;
L->len=L->len+1; //表的长度加一
return ture;
}
删除的算法:
int deletelist(seqlist *L,int i)
{
if(i>L->len)||(i<1)||(L->len>=L->listsize)
reuturn error; //如果位置越界,或线性表中无元素,则出错处理
for(j=i;j<=(L->len-1);j++)
L-<elem[j]=L-<elem[j+1]; //找到这个元素,将其删除,并将从第i为元素往前移一位
L->len--; // 表的长度减一
return ture;
}
其他的算法都可以根据这两个算法推出来。
热心网友
时间:2022-04-24 09:36
操作一个,他后面的元素都移动,你插入一个,后面的元素都后移,删除一个,都前移