2
« en: Lunes 24 de Mayo de 2004, 19:08 »
Hola a todos , bueno estoy como comennzando en esto de la programacion y me surgio una duda al estar tratando de realizar una de mis tareas esta es respecto a como se puede hacer para crear un arbol binario (ordenado) a partir de que se me entregara el orden previo o preorden y el inorden (orden simetrico) ambos en forma de arreglo , lo que se me ocurre hasta el momente es usar un arreglo auxilar para marcar los que se han inicializado en ceros que sea paralelo al arreglo de inorden , con esto construir una funcion recursiva que se llame a si misma cada vez que el elemento de la izquierda o la derecha sea 0 y que obviamente no lo haga si este es 1 (arreglo auxiliar ) , osea un poco mas claro
primero llamo a la funcion con el valor de la raiz (el primer elemento del arreglo de pre orden)
segundo si en el auxiliar al del inorden los elementos adyacentes son 0 significa que tiene hijos o hijo que no han sido insertado en el arbol
tercero la funcion se llama a si misma con parametro el nuevo hijo (0) que no ha sido puesto
¿En lo general esta idea es la correcta o a alguien se le ocurre algo mas inteligente l, por que este algoritmo no lo encuentro muy eficiente?
bueno deAnte mano gracias