Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created January 15, 2021 02:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/3b668bffa9f46744a92eee0a145b9a19 to your computer and use it in GitHub Desktop.
Save parzibyte/3b668bffa9f46744a92eee0a145b9a19 to your computer and use it in GitHub Desktop.
class Arbol:
# Funciones privadas
def __init__(self, dato):
self.raiz = Nodo(dato)
def __agregar_recursivo(self, nodo, dato):
if dato < nodo.dato:
if nodo.izquierda is None:
nodo.izquierda = Nodo(dato)
else:
self.__agregar_recursivo(nodo.izquierda, dato)
else:
if nodo.derecha is None:
nodo.derecha = Nodo(dato)
else:
self.__agregar_recursivo(nodo.derecha, dato)
def __inorden_recursivo(self, nodo):
if nodo is not None:
self.__inorden_recursivo(nodo.izquierda)
print(nodo.dato, end=", ")
self.__inorden_recursivo(nodo.derecha)
def __preorden_recursivo(self, nodo):
if nodo is not None:
print(nodo.dato, end=", ")
self.__preorden_recursivo(nodo.izquierda)
self.__preorden_recursivo(nodo.derecha)
def __postorden_recursivo(self, nodo):
if nodo is not None:
self.__postorden_recursivo(nodo.izquierda)
self.__postorden_recursivo(nodo.derecha)
print(nodo.dato, end=", ")
def __buscar(self, nodo, busqueda):
if nodo is None:
return None
if nodo.dato == busqueda:
return nodo
if busqueda < nodo.dato:
return self.__buscar(nodo.izquierda, busqueda)
else:
return self.__buscar(nodo.derecha, busqueda)
# Funciones públicas
def agregar(self, dato):
self.__agregar_recursivo(self.raiz, dato)
def inorden(self):
print("Imprimiendo árbol inorden: ")
self.__inorden_recursivo(self.raiz)
print("")
def preorden(self):
print("Imprimiendo árbol preorden: ")
self.__preorden_recursivo(self.raiz)
print("")
def postorden(self):
print("Imprimiendo árbol postorden: ")
self.__postorden_recursivo(self.raiz)
print("")
def buscar(self, busqueda):
return self.__buscar(self.raiz, busqueda)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment