tengo el diseño de un programa que utiliza backtracking, pero los valores de voa y soa no se actualizan, saben a q se puede deber?¿
typedef struct{
int bact; //suma acumulada (beneficio)
int B[n];
int s[n];
}back;
void bactracking(int s[])
{
back b;
int nivel = 0, i, voa = -1, *soa = 0; //declaracion de variables
for(i=0; i<n;i++) //inicializacion de s
*(s+i) = -1;
soa = (int *)malloc(n*sizeof(int));
do
{
if(nivel < n-1)
generar(nivel, s);
if(solucion(nivel, s) && (b.bact > voa))
{
voa = b.bact;
for(i=0; i<3; i++)
*(soa+i)=*(s+i);
}
if(criterio(nivel, s))
nivel = nivel + 1;
else
while(masHermanos(nivel, s) == 0 && nivel > -1)
retroceder(nivel, s);
}while (solucion(nivel, s) != 1);
for(i=0; i<n; i++)
printf("soa: %d\n", *(soa+i));
printf("voa: %d\n", voa);
}