1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
   | int supp(dl_Liste *liste, int pos){
  int i;
  dl_Element *supp_element,*courant;
 
  if(liste->taille == 0)
    return -1;
 
  if(pos == 1){ /* suppresion de 1er élément */
    supp_element = liste->debut;
    liste->debut = liste->debut->suivant;
    if(liste->debut == NULL)
      liste->fin = NULL;
    else
      liste->debut->precedent == NULL;
  }else if(pos == liste->taille){ /* suppression du dernier élément */
    supp_element = liste->fin;
    liste->fin->precedent->suivant = NULL;
    liste->fin = liste->fin->precedent;
  }else { /* suppression ailleurs */
    courant = liste->debut;
      for(i=1;i<pos;++i)
        courant = courant->suivant;
    supp_element = courant;
    courant->precedent->suivant = courant->suivant;
    courant->suivant->precedent = courant->precedent;
  }
  free(supp_element->donnee);
  free(supp_element);
  liste->taille--;
  return 0;
} | 
Partager