Ejercicio de Arboles binarios en Python
A continuación voy a explicar brevemente un ejercicio de árboles binarios realizado en Python.
Básicamente el concepto del árbol binario en python es que siempre se van a desprender de un nodo una o dos ramificaciones, los elementos menores van a la izquierda y los iguales o mayores a la derecha ;)
Enlace: https://github.com/d4nnr/Ejercicios-python/blob/master/Arboles_binarios.py
Básicamente el concepto del árbol binario en python es que siempre se van a desprender de un nodo una o dos ramificaciones, los elementos menores van a la izquierda y los iguales o mayores a la derecha ;)
Enlace: https://github.com/d4nnr/Ejercicios-python/blob/master/Arboles_binarios.py
############################################ ############################################ ## Autor: Daniel Romo Garcia ## ## Email: danielromogarcia@gmail.com ## ## Blog: d4nnr.blogspot.com ## ## Twitter: @d4nnr ## ############################################ ############################################ #Clase llamada nodo class Nodo: #Constructor con los argumentos def __init__(self, value=None, izq=None, der=None): #Punteros self.value = value self.izq = izq self.der = der #Retornar el valor def __str__(self): return self.value #Clase del arbol binario class aBinarios: #metodo constructor y el atributo raiz def __init__(self): self.raiz = None #creamos la funcion agregar def agregar(self, elemento): if self.raiz == None: self.raiz = elemento else: aux = self.raiz padre = None while aux != None: padre = aux if int(elemento.value) >= int(aux.value): aux = aux.der else: aux = aux.izq if int(elemento.value) >= int(padre.value): padre.der = elemento else: padre.izq = elemento #se crea metodo mostrar el preorden def preorden(self, elemento): if elemento != None: print(elemento) self.preorden(elemento.izq) self.preorden(elemento.der) #se crea metodo mostrar el posrden (recursividad) def postorden(self, elemento): if elemento != None: self.postorden(elemento.izq) self.postorden(elemento.der) print(elemento) #se crea metodo mostrar el inorden def inorden(self, elemento): if elemento != None: self.inorden(elemento.izq) print(elemento) self.inorden(elemento.der) #se crea funcion que permite obtener la reiz def getRaiz(self): return self.raiz #creamos un menu if __name__ == "__main__": #llamamos el objeto de arbol binario ab = aBinarios() while(True): #opciones del menu print("Arboles_Binarios\n"+ "1. Agregar\n"+ "2. Preorden\n"+ "3. Postorden\n"+ "4. Inorden\n"+ "5. Salir") num = input("ingrese la opcion") if num == "1": value = input("Ingrese el valor: ") nod =Nodo(value) ab.agregar(nod) elif num == "2": print("Preorden") ab.preorden(ab.getRaiz()) elif num == "3": print("postorden") ab.postorden(ab.getRaiz()) elif num == "4": print("inorden") ab.inorden(ab.getRaiz()) elif num == "5": exit()
Comentarios