def ModificarArchivoRuta(self,ruta,dato1,dato2):
     self.textoBits=""
     vector=ruta.split("A")
     auxiliar=self.primero
     while auxiliar!=None:
         if vector[0]==auxiliar.nombre:
             #print("hola")
             index=len(vector)
             if index==2:
                 if auxiliar.archivo==None:
                     print("No se puede Modificar el archivo en esta ruta")
                 else:
                     avl=Arbol()
                     avl.ModificarAVL(auxiliar.archivo,dato1,dato2)
             else:
                 indicador=2
                 while indicador < index:
                     if indicador==2:
                         self.temp=self.buscar(auxiliar.carpeta,str(vector[indicador])).claves[self.IndicedelNodo(self.buscar(auxiliar.carpeta,str(vector[indicador])).claves,str(vector[indicador]))]
                         indicador+=1
                     else:
                         self.temp2=self.temp
                         print(self.temp2.nombre)
                         self.temp=self.buscar(self.temp2.arbolb,str(vector[indicador])).claves[self.IndicedelNodo(self.buscar(self.temp2.arbolb,str(vector[indicador])).claves,str(vector[indicador]))]
                         print(self.temp.nombre)
                         indicador+=1
                 if self.temp.avl==None:
                     print("no se puede Modificar Archivo en esta ruta")
                 else:
                     avl=Arbol()
                     avl.ModificarAVL(self.temp.avl,dato1,dato2)
         auxiliar=auxiliar.siguiente
 def GetBits(self,ruta,archivo):
     self.textoBits=""
     vector=ruta.split("A")
     auxiliar=self.primero
     while auxiliar!=None:
         if vector[0]==auxiliar.nombre:
             #print("hola")
             index=len(vector)
             if index==2:
                 if auxiliar.archivo==None:
                     print("No se puede Graficar en esta ruta")
                 else:
                     avl=Arbol()
                     self.textoBits=avl.InOrdenBits(auxiliar.archivo,archivo)
             else:
                 indicador=2
                 while indicador < index:
                     if indicador==2:
                         self.temp=self.buscar(auxiliar.carpeta,str(vector[indicador])).claves[self.IndicedelNodo(self.buscar(auxiliar.carpeta,str(vector[indicador])).claves,str(vector[indicador]))]
                         indicador+=1
                     else:
                         self.temp2=self.temp
                         print(self.temp2.nombre)
                         self.temp=self.buscar(self.temp2.arbolb,str(vector[indicador])).claves[self.IndicedelNodo(self.buscar(self.temp2.arbolb,str(vector[indicador])).claves,str(vector[indicador]))]
                         print(self.temp.nombre)
                         indicador+=1
                 if self.temp.avl==None:
                     print("no se puede Graficar en esta ruta")
                 else:
                     avl=Arbol()
                     self.textoBits=avl.InOrdenBits(self.temp.avl,archivo)
         auxiliar=auxiliar.siguiente
     return self.textoBits
    def ArchivoEnRuta(self,ruta,dato,bit):
        vector=ruta.split("A")
        auxiliar=self.primero
        while auxiliar!=None:
            if vector[0]==auxiliar.nombre:
                #print("hola")
                index=len(vector)
                if index==2:
                    if auxiliar.archivo==None:
                        auxiliar.archivo=NodoArbol(dato,bit)
                    else:
                        ar=Arbol()
                        ar.InsertarAVL(auxiliar.archivo,dato,bit)
                        ar.PosOrden(auxiliar.archivo)
                        if auxiliar.archivo.factor==2:
                            if auxiliar.archivo.izquierdo.factor==1:
                                n=auxiliar
                                n1=auxiliar.archivo
                                n2=auxiliar.archivo.izquierdo
                                n1.izquierdo=n2.derecho
                                n2.derecho=n1
                                n.archivo=n2
                            elif auxiliar.archivo.izquierdo.factor==-1:
                                p=auxiliar
                                n=auxiliar.archivo
                                n1=auxiliar.archivo.izquierdo
                                n2=auxiliar.archivo.izquierdo.derecho
                                n1.derecho=n2.izquierdo
                                n2.izquierdo=n1
                                n.izquierdo=n2.derecho
                                n2.derecho=n
                                p.archivo=n2
                        elif auxiliar.archivo.factor==-2:
                            if auxiliar.archivo.derecho.factor==-1:
                                p=auxiliar
                                n=auxiliar.archivo
                                n1=auxiliar.archivo.derecho
                                n.derecho=n1.izquierdo
                                n1.izquierdo=n
                                p.archivo=n1
                            elif auxiliar.archivo.derecho.factor==1:
                                p=auxiliar
                                n=auxiliar.archivo
                                n1=auxiliar.archivo.derecho
                                n2=auxiliar.archivo.derecho.izquierdo
                                n1.izquierdo=n2.derecho
                                n2.derecho=n1
                                n.derecho=n2.izquierdo
                                n2.izquierdo=n
                                p.archivo=n2
                else:
                    indicador=2
                    while indicador < index:
                        if indicador==2:
                            self.temp=self.buscar(auxiliar.carpeta,str(vector[indicador])).claves[self.IndicedelNodo(self.buscar(auxiliar.carpeta,str(vector[indicador])).claves,str(vector[indicador]))]
                            indicador+=1
                        else:
                            self.temp2=self.temp
                            print(self.temp2.nombre)
                            self.temp=self.buscar(self.temp2.arbolb,str(vector[indicador])).claves[self.IndicedelNodo(self.buscar(self.temp2.arbolb,str(vector[indicador])).claves,str(vector[indicador]))]
                            print(self.temp.nombre)
                            indicador+=1
                    if self.temp.avl==None:
                        self.temp.avl=NodoArbol(dato,bit)
                    else:
                        ar=Arbol()
                        ar.InsertarAVL(self.temp.avl,dato,bit)
                        ar.PosOrden(self.temp.avl)
                        if self.temp.avl.factor==2:
                            if self.temp.avl.izquierdo.factor==1:
                                n=self.temp
                                n1=self.temp.avl
                                n2=self.temp.avl.izquierdo
                                n1.izquierdo=n2.derecho
                                n2.derecho=n1
                                n.avl=n2
                            elif self.temp.avl.izquierdo.factor==-1:
                                p=self.temp
                                n=self.temp.avl
                                n1=self.temp.avl.izquierdo
                                n2=self.temp.avl.izquierdo.derecho
                                n1.derecho=n2.izquierdo
                                n2.izquierdo=n1
                                n.izquierdo=n2.derecho
                                n2.derecho=n
                                p.avl=n2
                        elif self.temp.avl.factor==-2:
                            if self.temp.avl.derecho.factor==-1:
                                p=self.temp
                                n=self.temp.avl
                                n1=self.temp.avl.derecho
                                n.derecho=n1.izquierdo
                                n1.izquierdo=n
                                p.avl=n1
                            elif self.temp.avl.derecho.factor==1:
                                p=self.temp
                                n=self.temp.avl
                                n1=self.temp.avl.derecho
                                n2=self.temp.avl.derecho.izquierdo
                                n1.izquierdo=n2.derecho
                                n2.derecho=n1
                                n.derecho=n2.izquierdo
                                n2.izquierdo=n
                                p.avl=n2

            auxiliar=auxiliar.siguiente
Esempio n. 4
0
class WebService():
    
    @app.route('/matrizAgregar',methods=['POST']) 
    def matrizAgregar(): 
        usuario = str(request.form['usuario'])
        contrasenia = str(request.form['contrasenia'])
        nombre = str(request.form['nombre'])
        empresa = str(request.form['empresa'])
        depto = str(request.form['departamento'])

        nuevoNodo = NodoM(empresa, depto, nombre, contrasenia, usuario)
        matriz.agregarCabecerasMatriz(nuevoNodo)
        if matriz.necesitaProfundidad(nuevoNodo) == True:
            matriz.agregarProfundidad(nuevoNodo)
        else:
            matriz.agregarMatriz(nuevoNodo)
        return "MARIO BROS... El nodo con los siguientes atriburos empresa: '" + str(empresa) + "' departamento: '" + str(depto) + "' nombre: '" + str(nombre) + "' fue agregado correctamente" 
    
    @app.route('/Login',methods=['POST']) #matriz Login este es el metodo para el login xDxdxDxd
    def Login(): 
        usuario = str(request.form['usuario'])
        contrasenia = str(request.form['contrasenia'])
        nombre = None
        empresa = str(request.form['empresa'])
        depto = str(request.form['departamento'])
        nuevoNodo = NodoM(empresa, depto, nombre, contrasenia, usuario)
        var = matriz.buscarUsuario(nuevoNodo)
        return str(var)
    
    @app.route('/Catalogo',methods=['POST']) #metodo que tato me pide, devolver todo el arbol de un nodo especificado
    def catalogo(): 
        valor = str(request.form['parametro'])
        datos = matriz.tato2()
        return str(datos)
    
    @app.route('/devolverArbol',methods=['POST']) #metodo que tato me pide, devolver todos los arboles
    def DevolverArbol():
        valor = str(request.form['mario'])
        datos = matriz.tato2()
        return str(datos)
    
    @app.route('/agregarAVL',methods=['POST']) #matriz Login este es el metodo para el login xDxdxDxd
    def Login1():
        usuario = str(request.form['usuario'])
        empresa = str(request.form['empresa'])
        depto = str(request.form['departamento'])
        idd = str(request.form['identificador'])
        contrasenia = str(request.form['contrasenia'])
        matriz.kelvin3(usuario, depto, empresa, idd, contrasenia) 
        valor = matriz.retornarDatos()
        return usuario + str(valor)             
        
    @app.route('/graficarAVL',methods=['POST']) #metodo para graficar un arbol de un nodo especifico
    def GraficarAVL(): 
        usuario = str(request.form['usuario'])
        empresa = str(request.form['empresa'])
        depto = str(request.form['departamento'])
        matriz.limpiarVariableGraficar()
        matriz.serviceGraficarArbol(depto, empresa, usuario)
        return "funciono Mario Bross"
        
    @app.route('/graficarMatriz',methods=['POST']) #metodo para graficar un arbol de un nodo especifico
    def GraficarMatriz():
        usuario = str(request.form['mario'])
        matriz.ArchivoMatriz()    
        
    @app.route('/mario',methods=['POST']) #metodo para graficar un arbol de un nodo especifico
    def raficarAVL(): 
        nombreActivo = str(request.form['activo'])
        descripcion = str(request.form['descripcion'])
        alfaNumerico = str(request.form['alfanumerico'])
        idd = str (request.form['identificador'])
        usuario = str(request.form['usuario'])
        empresa = str(request.form['empresa'])
        depto = str(request.form['departamento'])
        iddd = int(idd)
        variable = nombreActivo + " " + descripcion + " " + alfaNumerico + " " + " " + idd + " " + usuario + " " + empresa + " " + depto
        return variable
    
    arbol=Arbol(None,0);
    #arbol.raiz = arbol
    
    @app.route('/metodoWeb',methods=['POST'])
    def hello():
        parametro = str(request.form['dato'])
        indice=int(parametro)
        arbol.agregar(arbol,indice)
        variable = arbol.raiz.info
        return str(variable)    
    
    if __name__ == "__main__":
        app.run(debug=True, host='192.168.43.56')