- 删除顺序表中值为key的所有元素,remove_allX
-
/** * @brief 功能:删除值等于key的所有元素 \n * return 返回删除所有key元素后剩余元素个数 * @note 逐个取旧表元素与key比较,将其中不等于key的元素构成新表,覆盖旧表 */ int xxx_remove_allX(int arr[], int n, int key) { if (arr == NULL || n < 1) { return -1; } int i = 0; // 用i作遍历,取出arr[i]与key比较 int index = 0; // 将不等于key的元素存放了arr[index] while (i < n) { if (arr[i] == key) { ++i; continue; } arr[index] = arr[i]; ++index; ++i; }// if(index==i)说明表中没有任何一个元素的值等于key,无需删除 return index; }