Supprimer un élément donné d'une liste: procédure supprimer(<>cellule* listeP, > point p);

void supprimer(cellule** listeP, point p)
{
 cellule* pred = NULL;
 cellule* aux = (*listeP);
 while (aux != NULL && (p.x != aux->p.x || p.y != aux->p.y))
  {
   pred = aux;
   aux = aux->suivant;
  }
  if (aux != NULL)    
/* ce n'est pas le premier élément de la liste */
     if (pred !=NULL)
      {
       pred->suivant = aux->suivant;
       free(aux);
      }
     else                    
/* c'est le premier élément de la liste */
      {
       pred = (*listeP);
       (*listeP) = pred->suivant;

       free(pred);
      };
}

int main()
 {
  cellule* listPoints = NULL;
  point p1 = {10,11};
  point p2 = {34,56};
  ajouter(&listPoints,p1);
  ajouter(&listPoints,p2);
.....
   supprimer(&listPoints, p2);
.....
     }  

suivant
          plan