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

 

时间复杂度:

 

posted @ 2020-08-24 14:54  1点  阅读(920)  评论(0编辑  收藏  举报