王道数据结构 (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;
}

时间复杂度:

越努力越幸运
原文地址:https://www.cnblogs.com/guangzhou11/p/13553872.html