Como Salir de una funcion recursiva
Publicado por Ruben (1 intervención) el 17/05/2009 16:11:23
Buenas
Tengo una fucion recursiva que calcula una serie de combinaciones.....
Cada combinacion es evaluada y si cumple una serie de condiciones, debe de interrumpirse la ejecucion de la funcion recursiva, salir y continuar el programa justo despues de donde se realizo la llamada a la funcion recursiva. :
CalculaComb(int t,int Ta,int L,int x)
{
while ( t <= (Ta-(L-x)))
{
if (L>x)
{
VectorElementos[x] = t;
CalculaComb((t+1),Ta,L,(x+1));
}
else
{
VectorElementos[x] = t;
//Donde deberia interrumpirse la recursividad
if(CumpleCondicion(VectorElementos){SALIR}
}
t++;
}
}
La funcion lo que hace es calcular todas las combinaciones posibles en un conjunto de elementos cuyo numero total es Ta. Estas combinaciones deben de tener un numero de elementos L.
ejp:
Conjunto{abcdef} Ta=6;
Subconjuntos de 3 elementos L=3
abc
abd
abe
abf
acd
.....
Tengo una fucion recursiva que calcula una serie de combinaciones.....
Cada combinacion es evaluada y si cumple una serie de condiciones, debe de interrumpirse la ejecucion de la funcion recursiva, salir y continuar el programa justo despues de donde se realizo la llamada a la funcion recursiva. :
CalculaComb(int t,int Ta,int L,int x)
{
while ( t <= (Ta-(L-x)))
{
if (L>x)
{
VectorElementos[x] = t;
CalculaComb((t+1),Ta,L,(x+1));
}
else
{
VectorElementos[x] = t;
//Donde deberia interrumpirse la recursividad
if(CumpleCondicion(VectorElementos){SALIR}
}
t++;
}
}
La funcion lo que hace es calcular todas las combinaciones posibles en un conjunto de elementos cuyo numero total es Ta. Estas combinaciones deben de tener un numero de elementos L.
ejp:
Conjunto{abcdef} Ta=6;
Subconjuntos de 3 elementos L=3
abc
abd
abe
abf
acd
.....
Valora esta pregunta


0