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