Advertisement
aleix616

Trenat de cues

Jun 17th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. void trenat(Cua &c)
  2.  /* Pre: p.i. = C1, c = C2 */
  3.  /* Post: el p.i. passa a ser el resultat de trenar C1 i C2; c passa a ser buida */
  4. {
  5.     if (primer_node == NULL){ // La cua resultant es una copia de c
  6.         primer_node = c.primer_node;
  7.         ultim_node = c.ultim_node;
  8.         longitud = c.longitud;
  9.     } else { // La cua o bé sera el p.i si c == NULL o bé el trenat de les dues
  10.         node_cua *n = primer_node;
  11.         node_cua *m = c.primer_node;
  12.         while (n != NULL and m != NULL){
  13.             node_cua *aux = m;
  14.             m = m->seguent;
  15.             aux->seguent = n->seguent;
  16.             n->seguent = aux;
  17.             if (aux->seguent == NULL){
  18.                 n = NULL;
  19.                 aux->seguent = m;
  20.             }
  21.             else n = aux->seguent;
  22.         }
  23.         // Establim nova longitud del p.i
  24.         longitud += c.longitud;
  25.     }
  26.     // Buidem c
  27.     c.primer_node = NULL;
  28.     c.ultim_node = NULL;
  29.     c.longitud = 0;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement