-
题目:对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除顺序表中所有值为x的数据元素
-
方法1
-
void del_x_1(SqList &L,ElemType x){ int k=0,i; for(i=0;i<L.length;i++){ if(L.data[i]!=x){ L.data[k]=L.data[i]; k++; } } L.length=k; }
-
方法2
-
void del_x_2(SqList &L,ElemType x){ int k=0,i=0; while(i<L.length){ if(L.data[i]==x) k++; else L.data[i-k]=L.data[i];//当前元素前移动k个位置 i++; } L.length=L.length-k; }
【数据结构】【顺序表算法】 删除特定值
最新推荐文章于 2024-10-04 20:45:38 发布