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

2024-11-01 12:33:05
推荐回答(5个)
回答1:

需向前移动n-i个元素。这个i的范围应当是1≤i≤n+1,是向后移动。

后面的元素ai+1~an都要向上移动一个位置。

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


扩展资料:

插入或删除一个元素,需要移动的是插入或删除元素后面的元素。

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

所以确定了插入或删除元素的位置后,便可算出需要移动的元素个数。

回答2:

需向前移动n-i个元素。
假设需要移动x个元素;顺序元素总数为n;i之前的元素不需移动,不需移动的元素数量为i-1;顺序表去掉i元素,去掉的元素数量为1。
故而x=n-(i-1)-1
经计算x=n-i

回答3:

假设n=5,删除第3个元素,第3个元素下标是2,那么需要移动下标为3、4的元素。也就是2个元素,5-3=2。那么答案是n-i

回答4:

删除第i个元素需要移动从第i+1到第n个,共n-i个元素;
删除下标为i的话是n-i-1个,不知道理解是否正确

回答5:

对,第i个元素意思是,下角标为i的元素,这样子,删除第n-1个(下角标为n-1)元素时就是n-1-(n-1),删除第i(下角标为i)个元素就是n-1-i