2022/4/3
今天在尝试实现代码的时候,删除顺序表中所有值为x的数据元素时,最开始是想的笨方法,即每次找到值为x的元素时,便将其后值向前移动一个单位,覆盖此时x的元素,时间复杂度较高,但后面看了一下参考答案时发现,可以在找到元素时,先将其此时之后不等于x的元素向前移动,最后再更新顺序表长度的值,就能优化一下代码。大致代码为:
void listDeletex(sqlist &L,int 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;
听了老师的一句话 纸上得来终觉浅,绝知此事要躬行!
还是得每天加强学习的强度。