WhatsApp

  
Recorrido de Árboles (inorden)
inorden
Inorden.

El algoritmo inorden, es uno de los 3 algoritmos mas comunes para recorrer arboles binarios : 

  • pre -  Orden
  • in     - Orden 
  • post  - Orden 
"En este tipo de recorrido, primero se visita el nodo izquierdo, luego el nodo actual y finalmente el nodo derecho".

Si deseas conocer mas acerca de los otros dos algoritmos te recomendamos visitar nuestros blog:

Pre Orden: https://asimov.cloud/blog/programacion-5/recorrido-de-arboles-preorden-311

Post Orden:https://asimov.cloud/blog/programacion-5/recorrido-en-arboles-postorden-314#scrollTop=0

Del la misma manera si no comprendes bien que es un árbol binario continuación te explicamos que es :

Árbol Binario:  Un árbol binario es una estructura de datos jerárquica en la que cada nodo tiene como máximo dos hijos, comúnmente llamados hijo izquierdo y hijo derecho. 

Si aun tienes dudas sobre que es un árbol te recomendamos visitar otro blog sobre arboles binarios: https://asimov.cloud/blog/programacion-5/que-es-un-arbol-binario-de-busqueda-296..

Ejemplo de Recorrido Inorden

Imagine que deseamos recorrer el siguiente árbol en in Orden:

El pseudocódigo seria el siguiente

 inorden(nodo):
si nodo no es nulo:
inorden(nodo.izquierdo)
imprimir nodo.valor
inorden(nodo.derecho)

El  pseudocódigo realiza un recorrido inorden recursivo en un árbol binario. Comienza desde el nodo dado y recorre primero el subárbol izquierdo, luego imprime el valor del nodo actual y finalmente recorre el subárbol derecho.

Codificación en Python.

En blogs anteriores ya se programo un árbol binario por ello usaremos el código anterior  y simplemente agregáremos un  nuevo método inorden, para nuestra clase  árbol binario. Si tienes duda de como se programo visita nuestro blog: https://asimov.cloud/blog/programacion-5/como-programar-un-arbol-binario-de-busqueda-en-python-303

def _inorden_recursivo(self, nodo):
# Si el nodo actual no es nulo
if nodo is not None:
# Recorrer el subárbol izquierdo
self._inorden_recursivo(nodo.izquierda)
# Imprimir el valor del nodo actual
print(nodo.valor, end=" ")
# Recorrer el subárbol derecho
self._inorden_recursivo(nodo.derecha)

# Función para iniciar el recorrido inorden
def recorrido_inorden(self):
# Iniciar el recorrido inorden desde la raíz del árbol
self._inorden_recursivo(self.raiz)
# Imprimir un salto de línea al final del recorrido
print()



Resultado :   


                          2 3 4 5 6 8 9                               


Si eres observador  notaste ya que  se obtuvo los valores  ordenados en forma ascendente, esto es algo característico del recorrido inorden.   




Daniel Ixbalanque 29 abril, 2024
Compartir
Categorías


Iniciar sesión dejar un comentario

  
Listas vs. Tuplas en Python: Diferencias y Mejores Prácticas de Uso