青海事业单位计算机基础知识-顺序表的删除
推荐阅读:事业单位开云(ky)网页版,登录入口|事业单位考试技巧|事业单位开云(ky)网页版,登录入口
通常,在长度为 n 的顺序表中,要删除线性表的第i(1≤i≤n)个元素ai 。得到长度为 n-1的线性表(a1,a2,…,ai-1,ai+1,…,an) 。
即 (a1, a2,…,ai-1,a’i,a’i+1,…,a’n-1),其中a’i 为原表中的ai+1 ,其余类推,a’n-1为原表中an 。
一般情况下,要删除第i (1≤i≤n )个元素,需要从第i+1 个元素开始,直到第n 个元素之间,共有n-i 个元素依次向前移动了一个位置。删除结束后,顺序表的长度就缩小了1。在平均情况下,要在顺序表中删除一个元素,需要移动表中一半的元素。
在顺序表L中删除第i个元素并用x 返回其值的算法Delete List描述如下:
void DeleteList(SeqList *L,int i, ElemType *x)
{
int j,n=L->length;
if(i<1||i>n)
{
printf(" \n i值不合法!");
exit(1);
}
*x=L->list[i-1];
/*将被删元素的值,赋给*x */
for(j=i;j<=n-1;j++)
L->list[j-1]=L->list[j];
/*元素依次向前移动一个位置 */
L->length--; /*表长减少1 */
}
>>点击返回:开云(ky)网页版,登录入口事业单位考试网
(责任编辑:李明)