C語言數據結構之順序表——從順序表中刪除元素


從靜態順序表中刪除第i個位置元素

void DelElem(ElemType Sqlist[], int &n, int i){
    int j;
    if(i<1 || i>n)
        exit(0);    //非法刪除
    for(j=i; j<n; j++)
        Sqlist[j-1]=Sqlist[j];      //將第i位置以后的元素依次前移
    n--;        //表長減1
}

從動態順序表中刪除第i個位置元素

void DelElem(Sqlist *L, int i){
    //從順序表中刪除第i個元素
    ElemType *delItem, *q;
    if(i<1 || i>L->len) exit(0);    //非法刪除
    delItem=&(L->elem[i-1]);        //delItem指向第i個元素
    q=L->elem+L->length-1;      //q指向表尾
    for(++delItem; delItem<=q; ++ delItem)*( delItem-1)=* delItem;
    //將第i位置以后的元素依次前移
    L->length--;    //表長減1
}


免責聲明!

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



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