C語言數據結構之數據表——向順序表插入元素


向靜態生成表中插入元素:

向順序表Sqlist中第i個位置插入元素item, 該順序表原長度為n

void InsertElem(ElemType Sqlist[], int &n, int i, ElemType item){
    int t;
    if(n==MaxSize || i<1 || i>n+1)
        exit(0);    //非法插入
    for(t=n-1; t>=i-1; t--)
        Sqlist[t+1]=Sqlist[t];      //將i-1以后的元素順序后移一個元素的位置
    Sqlist[i-1]=item;           //在第i個位置插入元素item
    n=n+1;                      //表長加1
}

向順序表L中第i個位置上插入元素item,並將順序表長度加1

void InsertElem(Sqlist *L, int i, ElemType item){
    ElemType *base, * insertPtr, *p;
    if(i<1||i>L->length+1) exit(0);     //非法插入
    if(L->length>=L->listsize)
    {
        base=(ElemType*)realloc(L->elem, (L->listsize+10)*sizeof(ElemType));
        //重新追加空間
        L->elem=base;       //更新內存基地址
    L->listsize=L->listsize+100;    //存儲空間增大100單元
    }
    insertPtr=&(L->elem[i-1]);      //insert為插入位置
    for(p=&(L->elem[L->length-1]); p>= insertPtr; p--)
        *(p+1)=*p;
    *insertPtr=item;        //在第i個位置上插入元素item
    L->length++;        //表長加1
}


免責聲明!

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



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