例2.6 设计一个高效的算法,从顺序表L中删除所有值为x的元素,要求时间复杂度为0(n)空间复杂度为0(1)。

发布时间 2023-09-11 09:57:52作者: DawnTraveler

1.题目

例2.6 设计一个高效的算法,从顺序表L中删除所有值为x的元素,要求时间复杂度为0(n)空间复杂度为0(1)。

2.算法思想

3.代码

void DeleteX(SeqList LA, SeqList *LC, int x) {
    int i = 0, j = 0;
    while (i <= LA.last){
        if (LA.element[i] == x) i++;
        else {LC->element[j] = LA.element[i]; i++; j++;}
    }
//  注意最后一次j多加了一次
    LC->last = j - 1;
}