王道数据结构 (24) 顺序表的基本操作——插入

 

 

在顺序表L的第i (1<=L.length+1)个位置插入新元素e。如果i的输入不合法,则返回false,表示插入失败;否则,将顺序表的第i个元素以及其后的元素右移一个位置,腾出一个空位置插入新元素e,顺序表长度增加1,插入成功,返回true。

 

 代码:

bool ListInsert(SqList &L, int i, ElemType e){
    //本算法实现将元素e插入到顺序表L中第i个位置
    if ( i<1 || i>L.length+1 )
        return false;  // 判断i的范围是否有效
    if(L.length>=MaxSize)
        return false;  // 当前存储空间已满,不能插入
    for (int j =L.length; j >=i; j--)  // 将第i个位置及之后的元素后移
        L.data[j]=L.data[j-l];
    L.data[i-1]=e; //在位置i处放入e
    L.length++; //线性表长度加1
    return true;
}

如果i的输入不合法,则返回false,表示插入失败;

    if ( i<1 || i>L.length+1 )
        return false;  // 判断i的范围是否有效
    if(L.length>=MaxSize)
        return false;  // 当前存储空间已满,不能插入

将顺序表的第i个元素以及其后的元素右移一个位置,腾出一个空位置插入新元素e,顺序表长度增加1,插入成功,返回true

  for (int j =L.length; j >=i; j--)  // 将第i个位置及之后的元素后移
        L.data[j]=L.data[j-l];
    L.data[i-1]=e; //在位置i处放入e
    L.length++; //线性表长度加1
    return true;

时间复杂度:

王道数据结构 (24) 顺序表的基本操作——插入

 

相关文章:

  • 2021-04-27
  • 2022-12-23
  • 2021-09-12
  • 2022-12-23
  • 2022-12-23
  • 2021-06-19
  • 2022-12-23
  • 2021-08-02
猜你喜欢
  • 2021-10-04
  • 2021-07-05
  • 2021-10-29
  • 2021-06-14
  • 2022-12-23
  • 2022-01-03
  • 2022-12-23
相关资源
相似解决方案