思想,首先是有序表
【0,1,2,3,4,5,6,7】删除[2,4]之间的即删除元素2,3,4。s为2,t为4。
1.找到与s相等的第一个元素和等于t的第一个元素,记录下标a[2],a[4]
2.往前覆盖元素
3.修改length长度
int del_s_t(SqList &L,int s,int t)
{
if(L.length==0)
return false;
if(s<L.data[0]||t>L.data[L.length-1]||s>t)
return false;
int left,right;
left=right=0;//设置两个变量来记录当前的元素的下标
for(int i=0;i<L.length;i++)
{
if(L.data[i]<=s)
left=i;
if(L.data[i]<=t)
right=i;
}//此时已经找到等于s的元素的下标和等于t的第一个元素的下标
int j=right+1;
int k=right-left+1;
for(int i=left;i<j;i++)
{
++right;
L.data[i]=L.data[right];
}
L.length=L.length-k;
return 0;
}