Advertisement
aleix616

Esborrat de totes les aparicions d'un element a una llista

Jun 18th, 2015
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. void esborrar_tots (const T & x)
  2.    /* Pre: paràmetre implícit = P
  3.     * Post: s'han eliminat del paràmetre implícit totes les aparicions d'x ( la resta d'elements queda en el
  4.     * mateix ordre que a P); si el punt d'interès de P referenciava a una aparició d'x, passa a referenciar al primer
  5.     * element diferent d'x posterior a aquesta (si no hi ha cap element diferent d'x, passa a la dreta del tot);
  6.     * en cas contrari, el punt d'interès no canvia */
  7. {
  8.     node_llista *n = primer_node;
  9.     while(n != NULL){
  10.         if(n->info == x){
  11.             if(n == act) act = n->seg;
  12.             if(n->ant != NULL) (n->ant)->seg = n->seg;
  13.             else primer_node = n->seg;
  14.             if(n->seg != NULL) (n->seg)->ant = n->ant;
  15.             else ultim_node = n->ant;
  16.             node_llista *aux = n->seg;
  17.             delete n;
  18.             --longitud;
  19.             n = aux;
  20.         }
  21.         else n = n->seg;
  22.     }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement