資料結構(七)線性表(二)
阿新 • • 發佈:2019-02-14
Status GetElem(SqList L, int i, ElemType *e) { if(L.length == 0 || i < 1 || i > L.length) { return ERROR; } *e = L.data[i - 1]; return OK; }//操作結果:在L中第i個位置之前插入新的資料元素e,L的長度加1 Satus ListInsert(SqList *L, int i, ElemType e) { int k; if(L->length == MAXSIZE) //順序線性表已經滿 { return ERROR; } if(i < 1 || i > L->length + 1) //當i不在範圍內時 { return ERROR; } if(i <= L->length) //若插入資料位置不在表尾 { for(k = L->length - 1; k >= i - 1; k--) { L -> data[k + 1] = L -> data[k]; } } L -> data[i - 1] = e; //將新元素插入 L -> length++; return OK; }//操作結果:刪除L的第i個數據元素,並用e返回其值,L的長度減一 Satus ListDelete (SqList *L, int i, ElemType e) { int k; if(L->length == 0) { return ERROR; } if(i < 1 || i > L->length) //當i不在範圍內時 { return ERROR; } *e = L->data[i - 1]; if(i < L->length) //若刪除位置不在表尾 { for(k = i; k < L->length; k++) { K -> data[k - 1] = L -> data[k]; } } L -> length--; return OK; }