Es que no entiendo como es que no se pierden los datos de R, y como es que se guardan cuando hace recursion una y otra vez..
Código:
public TDAConjunto nodosPares( ABBTDA a){
TDAConjunto r= new ConjuntoLD();
r. InicializarConjunto ();
if (!a. ArbolVacio()){
if (a. Raiz () % 2 == 0) //verifica si lo que hay en raiz es par
r. Agregar(a.Raiz ()); //agrega al conjunto el dato
TDAConjunto rI = nodosPares(a. HijoIzq());
TDAConjunto rD = nodosPares(a. HijoDer());
while (! rI. ConjuntoVacio()){
int x = rI. Elegir(); //elige al azar del conjunto
r. Agregar(x); // lo agrega al conjunto
rI.Sacar(x); // lo saca de rI
}
while (! rD. ConjuntoVacio()){
int x = rD. Elegir();
r. Agregar(x);
rD.Sacar(x);
}
}
return r;
}
Muchas gracias.