ED: ABB

Este es el código del ABB de las clases practicas del martes 13 de mayo por la tarde. Para copiarlo, haced clic donde pone 'Plain Text' y asi os quitará los números de linea.

C++:
  1. #include <iostream>
  2. #include <ABB.h>
  3.  
  4. using namespace std;
  5.  
  6. // El programa lee de la entrada est�ndar dos conjuntos de enteros (n�mero de
  7. // elementos m�s los elementos a continuaci�n). Los inserta en dos �rboles
  8. // Binarios de B�squeda. Los lista y finalmente los une para obtener el
  9. // resultado de la uni�n de ambos conjuntos
  10.  
  11. void listar_abb (const ABB<int>& a){
  12.   ABB<int>::Iterador it;
  13.  
  14.   cout <<"Arbol con " <<a.size() <<" elementos:" <<endl;
  15.   for (it=a.primero(); it!=a.final(); it=a.siguiente(it))
  16.     cout <<a.etiqueta(it) <<' ';
  17.   cout <<endl;
  18. }
  19.  
  20. int main (int argc, char *argv[]){
  21.   ABB<int> a,b,c;
  22.   ABB<int>::Iterador it;
  23.   int nelem, valor;
  24.  
  25.   cout <<"Numero de elementos del primer arbol: " <<endl;
  26.   cin>> nelem;
  27.   while (nelem!=0) {
  28.     cin>> valor;
  29.     a.insertar(valor);
  30.     nelem--;
  31.   }
  32.  
  33.   cout <<"Numero de elementos del segundo arbol: " <<endl;
  34.   cin>> nelem;
  35.   while (nelem!=0) {
  36.     cin>> valor;
  37.     b.insertar(valor);
  38.     nelem--;
  39.   }
  40.  
  41.   cout <<"Numero de elementos del tercer arbol: " <<endl;
  42.    cin>> nelem;
  43.    while (nelem!=0) {
  44.      cin>> valor;
  45.      c.insertar(valor);
  46.      nelem--;
  47.    }
  48.  
  49.   cout <<"PRIMER ARBOL: "<<endl;
  50.   listar_abb(a);
  51.   cout <<"SEGUNDO ARBOL: "<<endl;
  52.   listar_abb(b);
  53.   cout <<"TERCER ARBOL: "<<endl;
  54.   listar_abb(c);
  55.  
  56.   /*for (it=b.primero(); it!=b.final(); it=b.siguiente(it))
  57.     a.insertar(b.etiqueta(it));
  58.  
  59.   cout <<"UNION: " <<endl;
  60.   listar_abb(a);*/
  61.   ABB<int> d;
  62.  
  63.   for (it=a.primero(); it!=a.final(); it=a.siguiente(it)){
  64.       if (b.buscar(a.etiqueta(it)) == a.final()){
  65.           d.insertar(a.etiqueta(it));
  66.       }
  67.   }
  68.  
  69.   for (it=b.primero(); it!=b.final(); it=b.siguiente(it)){
  70.       if (c.buscar(b.etiqueta(it)) != b.final() && a.buscar(b.etiqueta(it)) == b.final()){
  71.         d.insertar(b.etiqueta(it));
  72.       }
  73.   }
  74.  
  75.   cout <<"SOLO ELEMENTOS DE a: "<<endl;
  76.     listar_abb(d);
  77.  
  78.   return 0;
  79. }