需向前移动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是元素占用存储单元的长度。
所以确定了插入或删除元素的位置后,便可算出需要移动的元素个数。
需向前移动n-i个元素。
假设需要移动x个元素;顺序元素总数为n;i之前的元素不需移动,不需移动的元素数量为i-1;顺序表去掉i元素,去掉的元素数量为1。
故而x=n-(i-1)-1
经计算x=n-i
假设n=5,删除第3个元素,第3个元素下标是2,那么需要移动下标为3、4的元素。也就是2个元素,5-3=2。那么答案是n-i
删除第i个元素需要移动从第i+1到第n个,共n-i个元素;
删除下标为i的话是n-i-1个,不知道理解是否正确
对,第i个元素意思是,下角标为i的元素,这样子,删除第n-1个(下角标为n-1)元素时就是n-1-(n-1),删除第i(下角标为i)个元素就是n-1-i