王道數據結構 (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;

時間復雜度:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM