顺序表删除:保存值、前移、缩短表长
1. 定位第 index 个元素
删除第 3 位时,数组下标是 index - 1 = 2。
a1
a2
a3
a4
a5
01234
*deletedValue = list->data[index - 1];2. 后继元素依次前移
a4 覆盖 a3 的位置,a5 覆盖 a4 的位置。
a1
a2
a4
a5
old
01234
for (int moveIndex = index; moveIndex < list->length; moveIndex++) {
list->data[moveIndex - 1] = list->data[moveIndex];
}3. length 减 1
最后一个旧位置不再属于有效线性表内容,是否清空不影响逻辑表。
a1
a2
a4
a5
unused
01234
list->length--;