回 帖 发 新 帖 刷新版面

主题:百思不解难题,答对加分!!!!!

小生遇一难题,百思不得其解。大家指点一下。谢了!!
  题目:Status DeleteK(SqList &a,int i,int k)//删除线性表a中第i个元素起的k个元素
{
  if(i<1||k<0||i+k-1>a.length) return INFEASIBLE;
  for(count=1;i+count-1<=a.length-k;count++) //注意循环结束的条件
    a.elem[i+count-1]=a.elem[i+count+k-1];
  a.length-=k;
  return OK;
}//DeleteK 

不懂之处:for(count=1;i+count-1<=a.length-k;count++) 
         a.elem[i+count-1]=a.elem[i+count+k-1];
         a.length-k不是就等于i吗??

回复列表 (共1个回复)

沙发

K表性表a中第i个元素起的k个元素,a.length-k不是就怎么会等于i呢?
这样说就对:i=a.length    -   (a.length-i)
                    (a.length-i)表示 从i起的后面的个数,K就包含在(a.length-i)这里面

我来回复

您尚未登录,请登录后再回复。点此登录或注册