王道数据结构 (25) 顺序表的基本操作——删除
删除表中的 第 i 个 因为数组的下表从 0 开始 所以要删除的元素在 i - 1
e=L.data[i-1] ; // 将被删除的元素赋值给e
i 后面的元素向前面移动 变量递增
for (int j=i; j<L.length; j++) //将第i个位置之后的元素前移 L.data[j-1]=L.data[j]; L.length--; //线性表长度减1 return true;
删除顺序表L中第i (1<=i<=L.length)个位置的元素,成功则返回true,否则返回false,并将被删除的元素用引用变量e返回。
bool ListDelete(SqList &L,int i, int &e){ //本算法实现删除顺序表L中第i个位置的元素 if(i<1 || i>L.length) return false; // 判断i的范围是否有效 e=L.data[i-1] ; // 将被删除的元素赋值给e for (int j=i; j<L.length; j++) //将第i个位置之后的元素前移 L.data[j-1]=L.data[j]; L.length--; //线性表长度减1 return true; }
时间复杂度:
越努力越幸运