Problema con método recursivo en Java
Hola a todos primero que nada y gracias a los que estén dispuestos a ayudar! :)
Estoy intentando hacer un método recursivo que asigne habitaciones (un simple int, en una pila llamada pilaHab) a un objeto RESERVA que contiene una cola de reservas llamada "colaRes".
La idea es que asigne un numero de hab a una reserva, y luego se desencole esa reserva de la cola llamada colaRes, y que devuelva la cantidad de reservas (int afectadas) a las que se les asigno una habitación. El método asigna correctamente las reservas, pero me devuelve 0 (cero) en cantidad de reservas afectadas. Es decir: systemOutPrintin("la cantidad de reservas asignadas es " + H.AsignarTodas()) me larga:
La cantidad de reservas afectadas es 0.
Este es el código que estoy usando:
public int AsignarTodas(){
int afectadas=0;
//chequeo que la pila de hab no este vacía
if (!pilaHab.PilaVacia()){
//Chequeo que hayan suficientes habitaciones para las reservas
if(colaRes.size()<=pilaHab.getCima()){
//paso base
if(pilaHab.getCima()==0 || colaRes.size()==0){
return afectadas;
//comienza la recursion:
}else if (pilaHab.getCima()>=0 && colaRes.size()>0){
RESERVA recupero;
recupero = (RESERVA)colaRes.frente();
recupero.setHab(pilaHab.cimaPila());
colaRes.desencolar();
pilaHab.Desapilar();
afectadas++;
afectadas=afectadas+AsignarTodas();
}
}else{
System.out.println("No hay suficientes habitaciones disponibles");}
return 0;
}else{
System.out.println("La pila de habitaciones esta vacia");
return 0;
}
}
Muchas gracias!! (sobre todo si llegaste a leer hasta acá ;) )