Last active
October 28, 2017 19:45
-
-
Save DRMD431LU/ecd3bdfc9d081e3fc3134c9cae5ca905 to your computer and use it in GitHub Desktop.
null created by DRMD431LU - https://repl.it/McIi/9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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