概述
为了在线性表的某两个元素之间插入一个数据元素,则需将这两个元素中的第2个至最后一个数据元素依次往后移动一个位置。一般情况下,在第i(1<i≤n)个元素之前插入一个元素时,需将第i至第n(共n-i+1)个元素向后移动一个位置。算法如下:
Status ListInsert_Sq(SqList&L,int i,ElemType e){
//在顺序线性表L中第i个位置之前插入新的元素e,
//i的合法值为1≤i≤ListLength.Sq(L)+1
if(i<1||i>L.length+1)return ERROR;
//i值不合法
if(L.length>=L.listsize){
//当前存储空间已满,增加分配
newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)exit(OVERFLOW);//存储分配失败
L.elem=newbase;//新基址
L.listsize+=LISTINCREMENT;//增加存储容量
}
q=&(L.elem[i-1]);//q为插入位置
for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;//插入位置及之后的元素右移
*q=e;//插入e
++L.length;//表长增1
return OK;
}//ListInsert-Sq
最后
以上就是兴奋夕阳为你收集整理的如何对一个线性表进行插入操作的全部内容,希望文章能够帮你解决如何对一个线性表进行插入操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复