單鏈表-刪除第i個結點


刪除第 i 個結點

 

假設 i=3 ,刪除后效果如下:

 

刪除第 i 個元素,要找到第 i-1 個元素,要修改其指針域。

算法步驟:

① 找到第 i-1 個元素的存儲位置 p,保存要刪除的 ai 的值

② 令p->next 指向ai+1,如圖:p->next = p->next->next

③ 釋放 結點ai 的空間:delete q;或者 free(q);

代碼部分:

//將線性表L中第i個數據元素刪除
//傳入參數里的 “&” 符號,含義為引用變量
Status ListDelete_L(LinkList &L, int i){
    if(i<1){
        return ERROR;
    }
    p = L->next;
    j = 1;
    while(p!=NULL && j!=i-1){
        p = p->next;
        j++;
    }
    if(p==NULL){
        return ERROR;
    }
    q = p->next;
    p->next = p->next->next;
    delete q;
    return OK;
}

 


免責聲明!

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



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