从无序顺序表中删除指定区域的元素
2018-12-04 本文已影响0人
飞白非白
// 从前向后扫描顺序表a,用k记录下元素值在s到t之间元素的个数
// 对于当前扫描的元素,若其值不在s到t之间,则向前移k个位置
void del_2(int *a, int &n, int s, int t)
{
int k = 0, i = 0;
while(i < n)
{
if(a[i] >= s && a[i] <= t)
++k;
else
a[i-k] = a[i]; //当前元素向前移动k个位置
++i;
}
n -= k;
}