数据结构综合应用题⑧
问题:设计一个算法,从一给定的顺序表L中删除下标i-j(i≤j,包括i,j)的所有元素,假定i,j都是合法的。
思路:本题是顺序表删除算法的扩展,可以采用如下方法解决:从第j+1个元素开始到最后一个元素为止,用这之间的每个元素去覆盖从这个元素开始往前数第j-i+1个元素,即可完成删除i-j的所有元素
答案:
void delete(SqList &L,int i,int j)//L要改变,引用引用型
{
int k,delta;
delta=j-i+1;//元素要移动的距离
for(k=j+1;k<L.length;++k)
{
L.data[k-delta]=L.data[k];//用第k个元素去覆盖它前面的第delta个元素
}
L.length-=delta;//表长改变
}