在順序表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;
時間復雜度: