Código :
[cplusplus]
void imprimir_PreOrden(struct nodo *arbol)
{
if(arbol!=NULL)
{
printf(" %d " ,arbol->dato);
imprimir_PreOrden(arbol->izq);
imprimir_PreOrden(arbol->der);
}
}
[/cplusplus]probando esta funcion en c se manda llamar al nodo del lado izquierdo hasta que ya no ahi nodos y despues regresa y manda llamar a cada uno del lado derecho, bueno no se si me explique correctamente jejeje, ahora lo q quiero es migrar esta funcion a actionscript, lo cual ya lo eh hecho de la siguiente manera:
Código :
[js]
PreOrden = function(arbol,contador)
{
if(contador==0)
{
return 0;
}
else
{
if(arbol!=0)
{
vel=12;
eval("_root.mc_nodo"+arbol).mc_bola.onEnterFrame = function()
{
if(vel>0)
{
vel--;
my_color = new Color(eval("_root.mc_nodo"+arbol).mc_bola);
my_color.setRGB(0x0000FF);
}
else
{
delete eval("_root.mc_nodo"+arbol).mc_bola.onEnterFrame;
my_color = new Color(eval("_root.mc_nodo"+arbol).mc_bola);
my_color.setRGB(0x000000);
PreOrden(eval("_root.mc_nodo"+arbol).izquierda,contador);
PreOrden(eval("_root.mc_nodo"+arbol).derecha,contador);
}
}
}
}
}
[/js]bueno les explico preorden recibe dos parametros uno q se llama arbol que es el numero que yo le asigne al nodo principal del arbol binario, y otra que se llama contador que tiene el valor de todos los nodos que estan en el arbol, valido que existan nodos en el arbol y despues compruebo que halla llegado al final del arbol pues el 0 indica que no tiene un nodo a quien apuntar es decir representa mi null en c.
lo que tengo es un nodo como un movieclip con un circulo y sus dos patitas, lo que hago para ver el recorrido es que lo cambio de color por eso puse el onenterframe para mantenerlo por 1 segundo y pueda ser visible cuando termina lo regreso a negro q es su color original, pero aqui viene el problema mando llamar dos veces a la funcion recursiva como en el codigo de c pero el detalle es que no se de que manera decirle a la funcion q manda llamar al nodo del lado derecho se espere pues se ejecutan las dos funciones al mismo tiempo, en lugar de ver nodo a nodo empezando por la izquierda veo a los dos derecha izquierda ponerse en azul, alguien puede decirme como controlo la ejecucion de las funciones o por q se ejecutan asi, o tal ves el onenterframe funciona pero solo hace q la funcion termine y el se sigue ejecutando no tengo ni la menor idea de que sucede si por ser recursiva deberia llamarse el nodo izquierdo siempre hasta q no halla nodos y despues los de la derecha.
disculpen el mensajote jajaja espero puedan ayudarme tambien probe esto con la clase tween y con el metodo onchanged para cambiar el color y onfinished para ejeutar las funciones pero es lo mismoo.....espero puedan ayudarme, saludos a todos
