下面这个更高效一点。
int i,j;
if(L.length<1) return false;
for(i=0; i<L.length && L.elem[i]>0; i++);
j=i;
i++;
while(i<L.length)
{
if(L.elem[i]>0)
{
L.elem[j]=L.elem[i];
j++;
}
i++;
}
L.length=j;
return true;
创建一个新的空顺序表,直接遍历原顺序表判断所有元素,如果该元素大于等于0,则把该元素添加到新顺序表里面。
不确定这个是否满足高效,看有其他人有更好的高效算法没。
直接写一下主要代码给你,其它的自行脑补
int i,j;
if(L.length<1) return false;
i=0;
j=0;
while(i<L.length)
{
if(L.elem[i]>0)
{
if(j!=i) L.elem[j]=L.elem[i];
j++;
}
i++;
}
L.length=j;
return true;