Advertisement
JosepRivaille

X54670: Concatenació de dues cues amb apuntadors

Dec 9th, 2015
523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. ----------------------------------TRADITIONAL WAY-----------------------------------------
  2.  
  3. void concat(Cua &c)
  4. /* Pre: c=C */
  5. /* Post: el p.i. passa a ser la concatenació de C al paràmetre implícit, c és buida. */
  6. {
  7.   while (!c.es_buida()) {
  8.     demanar_torn(c.primer());
  9.     c.avancar();
  10.   }
  11. }
  12.  
  13. ----------------------------------POINTERS-------------------------------------------------
  14.  
  15. void concat(Cua &c)
  16. /* Pre: c=C */
  17. /* Post: el p.i. passa a ser la concatenació de C al paràmetre implícit, c és buida. */
  18. {
  19.   if (c.longitud != 0) {
  20.     if (longitud == 0) { //El paràmentre implícit està buit;
  21.       primer_node = c.primer_node;
  22.       ultim_node = c.ultim_node;
  23.       longitud = c.longitud;
  24.     }
  25.     else if (longitud != 0 && c.longitud != 0) { //Cap de les dues cues està buida. */
  26.       ultim_node->seguent = c.primer_node;
  27.       ultim_node = c.ultim_node;
  28.       longitud += c.longitud;
  29.     }
  30.       c.longitud = 0;
  31.       c.primer_node = NULL;
  32.       c.ultim_node = NULL;
  33.   }
  34.   //En qualssevol altre cas no cal realitzar cap operació.
  35. }
  36.  
  37.  
  38. ----------------------------------TEST PROGRAM---------------------------------------------
  39.  
  40. #include <iostream>
  41. #include "Cua.hh"
  42.  
  43. int main()
  44. {
  45.   Cua<int> c;
  46.   int n;
  47.   while (cin >> n && n != 0) { //Utilitzem 0 com a sentinella
  48.     c.demanar_torn(n);
  49.   }
  50.   Cua<int> c2;
  51.   while (cin >> n && n != 0) { //Utilitzem 0 com a sentinella
  52.     c2.demanar_torn(n);
  53.   }
  54.   c.concat(c2);
  55.   while (!c.es_buida()) {
  56.     cout << c.primer() << endl;
  57.     c.avancar();
  58.   }
  59. }
  60.  
  61. -------------------------------------------------------------------------------------------
  62.  
  63. //JosepRivaille
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement