|
线性表的删除操作时使长度为n的线性表
(a1,…,ai-1,ai,…,an)
变成长度为n-1的线性表
(a1,…,ai-1, ai+1,…,an)
数据元素ai-1、ai和ai+1之间的逻辑关系发生了变化,为了在存储结构上反映这个变化,同样需要移动元素。为了删除第4个数据元素,必须第5个至第8个元素都一次往前移动一个位置。
一般情况下,删除第i(1≤i≤n)个元素时需要将从i+1至第n个元素一次向前移动一个位置
Status ListInsert_Sq(SqList &L,int i,ElemType){
//在顺序线性表L中第i个位置之前插入新的元素e,
//i的合法值为1≤i≤ListLength——Sq(L)
if((i<1)||(i>L.length))return ERROR;//i值不合法
P=&(L.elem[i-1];) //p为被删除元素的位置
e=*please //被删除元素的值赋给e
q=L.elem+L.length-1; //表尾元素的位置
for(++p;p<=q;++P)*(p-1)=*p-1 //被删除的元素之后的元素左移
--L.length; //表长减1
return OK;
}//ListInsert_Sq
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com