Skip to content

Instantly share code, notes, and snippets.

@DRMD431LU
Last active October 28, 2017 19:45
Show Gist options
  • Save DRMD431LU/ecd3bdfc9d081e3fc3134c9cae5ca905 to your computer and use it in GitHub Desktop.
Save DRMD431LU/ecd3bdfc9d081e3fc3134c9cae5ca905 to your computer and use it in GitHub Desktop.
null created by DRMD431LU - https://repl.it/McIi/9
class Nodo:
def __init__(self):
self.dato=None
self.izq=None
self.der=None
def insertar(self,valor):#METODO POR QUE ES UNA FUNCION DENTRO DE UNA CLASE QUE UTILISA ATRIBUTOS Y METODOS
if self.dato is None:#CASO BASE
self.dato=valor
self.izq=Nodo()
self.der=Nodo()
return self
else:
if valor < self.dato:#VALOR A INSERTAR MENOR A EL VALOR DEL NODO
self.izq=self.izq.insertar(valor)#LO GUARDAMOS EN EL ARBOL IZQUIERDO
else:
self.der=self.der.insertar(valor)
#Aqui ya se inserto el dato :3
#Altura de nodos
h_izq = self.izq.altura()
h_der = self.der.altura()
if h_izq - h_der > 1:
#balancear izquierdo
pass
elif h_der - h_izq >1:
#Balancear derecho
self=self.balancear(self)
return self
@staticmethod
def balancear(raiz):#LA FUNCION NO PUEDE VER QUE TIENE CADA OBJETO
nuevo_arbol=raiz
aux=nuevo_arbol
nuevo_arbol=nuevo_arbol.der
aux2=nuevo_arbol.izq
nuevo_arbol.izq=aux
aux.der=aux2
return nuevo_arbol
def mostrar(self):
if self.dato is None:
return
self.izq.mostrar()
print(self.dato)
self.der.mostrar()
def altura(self):#Para saber si era complejidad logaritmica
"""Metodo que calcula la altura de un subarbol"""
if self.dato is None:
return 0
h_izq = self.izq.altura()
h_der = self.der.altura()
if h_izq> h_der:
return h_izq +1
else:
return h_der + 1
print("ARBOLES AVL")
raiz=Nodo()#ARBOL VACIO
lista=[8,27,9,30,1,200,14,0,500]
lista_peor=[n for n in range(100,0,-10)]
ejemplo_simple=[1,2,3]
for num in ejemplo_simple:
raiz=raiz.insertar(num)
raiz.mostrar()
print('Altura: {}'.format(raiz.altura())) #imprimir con formato
'''TAREA:
HACER TODOS LOS DEMAS CASOS(4)
ANALIZAR DIBUJOS Y LUEGO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment