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

有的说是n-i,有的说是n-i-1,我需要正确答案

在一个长度为n的顺序表中删除第i个元素时,需向前移动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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-16
肯定是n-i啊,你就假设最后一个吧,i=n时,是不是不需要移动?那不就是n-n了嘛!!
有的人为什么说是n-i-1呢,那是因为此时i是用于循环的,当i=0时,代表第一个元素!此时你同样删除最后一个,那么i=n-1,所以移动次数为n-i-1,是不是也等于0啊?对不?本回答被提问者和网友采纳
第2个回答  推荐于2016-02-20
需向前移动n-i个元素。
假设需要移动x个元素;顺序元素总数为n;i之前的元素不需移动,不需移动的元素数量为i-1;顺序表去掉i元素,去掉的元素数量为1。
故而x=n-(i-1)-1
经计算x=n-i
第3个回答  2011-06-16
可以举个例子:
假设 为: 0 1 2 3 4 五个数,删除第三个元素,也就是2,需要向前移动3,4两个元素。
也就是5-3个。
所以n-i是对的。
第4个回答  2012-09-12
两个都是对的,看你的条件是什么。如果0≤i≤n-1,那答案就是n-i-1。如果1≤i≤n,答案就是n-i