在一个长度为n的顺序表中删除第i个元素时,需向前移动多少个元素

如题所述

需向前移动n-i个元素。

在一个长度为n的顺序表中,删除一个元素时,有n个位置可供选择。需要改变从第 i+1个元素起到第n个元素的存储位置,即进行“从第i+1到第n个元素往前移动一个位置”,共需移动n-i个元素。

只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L  1≤i≤n 其中,L是元素占用存储单元的长度。



扩展资料:

如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。则有如下的关系:location (ki+1) = location (ki) +len

location (ki) = location(k1) + (i-1)len

存储结构要体现数据的逻辑结构,顺序表的存储结构中,内存中物理地址相邻的结点一定具有顺序表中的逻辑关系。

判断是否为空表

Status ListEmpty(SqList L)

{ // 初始条件:顺序线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE

if(L.length==0)

return TRUE;

else

return FALSE;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-21
A.删除第i个元素时,后面的元素ai+1~an都要向上移动一个位置,共移动了n-i个元素本回答被提问者采纳
相似回答