思路
在循环遍历表的过程中,设置一个指针k,当出现元素 x 的时候,k指针停留一步,然后让 i 接下来指向的不为 x 的值覆盖 k 停留的位置。
代码
void delete_x(SqList &L,ElemType x){
int k=0;
for(int i=0;i<L.length;i++){
if(L.data[i]!=x){
L.data[k]=L.data[i];
k++;
}
}
L.length=k;
}
总结
1、k相当于刷新表的作用。
2、修改表长度。