Hoy querÃa hablarles de un pack de juegos pero dado que no sirve megaipload (¬¬), cambiare esa sesion por una divertidisima clase de arboles binarios.
Igualmente este sera un post divertidÃsimo =D, bueno en realidad no, pero igual les sirve para la escuela.
Intoducción
Primero, vamos a ver los tres tipos de recorridos que pueden llevarse a cabo en los arboles binarios para visitar todos los nodos que en el existen. Si no entienden estos términos ven la siguiente imagen:
Primero hay que definir recorrido de nodos de manera formal
Definición formal
Recorrido de nodos en un árbol binario: Visitar todos los nodos del árbol en forma sistemática de manera que solo sean visitados una sola vez.
Tipos de recorridos
Hay tres formas de hacerlo:
Recorrido preorden.- Hay que visitar los nodos en el siguiente orden:
-RaÃz
-Sub arbol izquierdo
-Sub árbol derecho
Recorrido inorden.-Hay que visitar los nodos en el siguiente orden:
-Sub arbol izquierdo
-RaÃz
-Sub árbol derecho
Recorrido postorden.-Hay que visitar los nodos en el siguiente orden:
-Sub arbol izquierdo
-Sub árbol derecho
-RaÃz
Tomando como ejemplo la imagen tendriamos despues de visitar los nodos del arbol los siguientes resultados:
Visita preorden  —> A B D E C F G
Visita inorden   —> D B E A F C G
Visita postorden —>Â D E B F G C A
Con esto dejo en sus manos el PSEUDOCODIGO para programar este algoritmo:
Pseudocodigo  preorden
preorden( nodo )
//donde nodo es un  registro de tipo puntero
//valor, nIzq y nDer son campos del registro nodo.
//valor = valor del nodo que se esta visitando
//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite)
si nodo <> NULO Â entonces //(si nodo no es nulo/vacÃo)
visitar el nodo //nodo.info (obtenemos el valor del nodo )
preorden(nodo.izq) //llamamos de nuevo el método preorden mandando como parámetro el nodo izquierdo del nodo actual.
preorden(nodo.der) //llamamos de nuevo el metodo preorden mandando como parámetro el nodo derecho del nodo actual
fin
fin
Explicación visual del pseudocodigo
Por alguna razon, esta imagen me aclara mas la idea del pseudocodigo:
Para realizar el pseudocodigo postorden e inorden pos namas cambia unas cosillas del anterior, si no sabes como hacerlo pues, pegate un tiro ¬¬, igual los dejo acá abajo para que no se awiten:
Pseudocodigo  inorden
inorden( nodo )
//donde nodo es un registro de tipo puntero
//valor, nIzq y nDer son campos del registro nodo.
//valor = valor del nodo que se esta visitando
//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite)
si nodo <> NULO  entonces //(si nodo no es nulo/vacÃo)
inorden(nodo.izq) //llamamos de nuevo el método inorden mandando como parámetro el nodo izquierdo del nodo actual.
visitar el nodo //nodo.info (obtenemos el valor del nodo )
inorden(nodo.der) //llamamos de nuevo el método inorden mandando como parámetro el nodo derecho del nodo actual
fin
fin
Pseudocodigo  postorden
postorden( nodo )
//donde nodo es un registro de tipo puntero
//valor, nIzq y nDer son campos del registro nodo.
//valor = valor del nodo que se esta visitando
//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite)
si nodo <> NULO  entonces //(si nodo no es nulo/vacÃo)
postorden(nodo.izq) //llamamos de nuevo el método postorden mandando como parámetro el nodo izquierdo del nodo actual.
postorden(nodo.der) //llamamos de nuevo el método postorden mandando como parámetro el nodo derecho del nodo actual
visitar el nodo //nodo.info (obtenemos el valor del nodo )
fin
fin
Espero y les sirva si no pos, que chafa soy. Cualquier duda o extra que quieran agregar, ya saben, existen los comentarios, ahàabajito, Agradezcan no sean weyes. Salep, estudien 😉
Bitacoras.com
septiembre 23, 2009 at 11:07 pmInformación Bitacoras.com…
Valora en Bitacoras.com: Hoy querÃa hablarles de un pack de juegos pero dado que no sirve megaipload (¬¬), cambiare esa sesion por una divertidisima clase de arboles binarios. Igualmente este sera un post divertidÃsimo =D, bueno en realidad no, pero …..
Punksolid
septiembre 24, 2009 at 1:05 ama shingao, que no eso son tipos de busquedas asi como A*, Primero en profundidad y etc? esos nombres no me los sabia, de todas formas se ve bien
Yared • Post Author •
septiembre 24, 2009 at 7:45 am«a shingao, que no eso son tipos de busquedas asi como A*, Primero en profundidad y etc? esos nombres no me los sabia, de todas formas se ve bien»
Los que tu mencionas son metodos de busquedas agilizados para encontrar elementos mas rapido, este tipo de recorridos son sistemáticos, no aplican ningun tipo de complejidad ni «inteligencia» para recorrer el árbol y buscar el elemento, su objetivo es únicamente recorrer el árbol ordenadamente.
magq
noviembre 12, 2009 at 8:07 ammuy bue pos me hs hayudado bastante gracis
godie
noviembre 30, 2009 at 6:14 pmsi te gustaria que publicaramos sobre algo mas, solo dinos y nosotros lo investigamos y lo publicamos 😀
yared_usuario • Post Author •
noviembre 12, 2009 at 12:06 pm«muy bue pos me hs hayudado bastante gracis»
Es bueno saber que a alguien le sirve el montón de pavadas que publicamos diario. Gracias por el comentario.
controlador
diciembre 6, 2009 at 11:11 amok me sirvio de mucho la explicacion de arboles pero aora quisiera que me ayudaran con pilas pero con recursividad.se los agradeceria un buien y ay algo que les pueda ayudar con mucho gusto.
yared_usuario • Post Author •
diciembre 8, 2009 at 12:47 amcontrolador, esper que este post te ayude,
http://godieboy.com/2009/12/uso-de-pilas-en-la-recursion-pseudocodigo-para-calcular-factorial.html
con mucho cariño jaja xD,suerte
duvansof
mayo 7, 2010 at 10:59 amexcelente ayuda….
Carlos Rojas
agosto 1, 2011 at 11:45 amMuy buen post, bien explicado y super bien, Ayuda aquien no saben, yo lo vi y me deja mas claro aun
ale
marzo 2, 2012 at 11:42 amcomo se haria un recorrido en postorden sin usar recursividad? Muchas gracias por su ayuda 🙂