solo para cerrar el tema...lo terminé resolviendo asi:
(localizador es un puntero a un nodo de la lista)
De todas formas otras funciones tenian error y me quedé sin pasar todos los test que le hacen...mañana me dan el resultado pero creo que perdí el curso...
Citarcamino_t buscar_camino(const lista l, const binario b){
binario baux=b;
camino_t caux;
caux.existe=false;
caux.cantidad_ramas=0;
caux.ramas= new rama_t[largo_lista(l)];
bool bandera=true;
int i=0;
localizador loc=inicio_lista(l);
while (es_localizador_lista(loc) && bandera)
{ if (!es_vacio_binario(baux))
{bandera=comparar_texto(texto_info(raiz_binario(baux)),texto_info(info_lista(loc,l)))==igual; }
else {bandera=false;}
if (bandera)
{if (es_localizador_lista(siguiente(loc,l)))
{
texto_t texto_sig=texto_info(info_lista(siguiente(loc,l),l));
texto_t texto_actual=texto_info(info_lista(loc,l));
if (comparar_texto(texto_sig,texto_actual)==mayor)
{baux=baux->der; caux.ramas=der; i++;}
else
{baux=baux->izq; caux.ramas=izq; i++;}
}
}
loc=siguiente(loc,l);
}
if (!es_localizador_lista(loc) && altura_binario(baux)==1){caux.existe=bandera; caux.cantidad_ramas=i;}
else {delete[] caux.ramas;}
return caux;
}
(localizador es un puntero a un nodo de la lista)
De todas formas otras funciones tenian error y me quedé sin pasar todos los test que le hacen...mañana me dan el resultado pero creo que perdí el curso...