从有序顺序表中删除其值在给定值 s 与 t 之间(包含 s 和 t,要求 s < t)的所有元素,如果 s 或 t 不合理或顺序表为空,则显示出错信息并退出运行。
bool deletex(List &L,int s,int t){
int i,j;
if(s>=t||!L.Length) return false;
for(i = 0;i < L.Length&&L.data[i] < s;i++);
if(i>=L.Length) return false;
for(j = i+1;j < L.Length&&L.data[j]<=t;j++);
while(j < L.Length) L.data[i++] = L.data[j++];
L.Length = i;
return true;
}
从顺序表中删除其值在给定值 s 与 t 之间(包含 s 和 t,要求 s < t)的所有元素,如果 s 或 t 不合理或顺序表为空,则显示出错信息并退出运行。
bool deletex(List &L,int s,int t){
int c = 0;
if(s>=t||!L.Length) return false;
for(int i = 0;i < L.Length;i++){
if(L.data[i]>=s&&L.data[i]<=t) c++;
else L.data[i-c] = L.data[i];
}
L.Length-=c;
return true;
}