天天看点

删除顺序表s-t之间的元素

//算法思想:从前向后扫描顺序表L,用K记录下元素范围的个数,若不在内,则前移k个位置;否则执行k++;
bool Del_s_t(SqList& L, int s, int t) {
  int k = 0;
  if (L.length==0||s>t)
  {
    return false;
  }
  for (int i = 0; i < L.length; i++)
  {
    if (L.data[i]>=s&&L.data[i]<=t)
    {
      k++;//记录范围的元素
    }
    else
    {
      L.data[i - k] = L.data[i];//前移进行覆盖
    }
  }
  L.length -= k;
  return true;
}