刪除第 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; }