考研数据结构

从无序顺序表中删除指定区域的元素

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;
}



上一篇 下一篇

猜你喜欢

热点阅读