def nodocolumnadir(nodotem,tipo): nodoenviar = nodosd.nodosd1() nodoenviar = nodotem tem = nodotem.getsig() while (tem!=None): temcolum = tem print ("valor arriba tem",temcolum.getinfo()) while (temcolum.getarriba()!=None): temcolum = temcolum.getarriba() print ("valor arriba temcolum",temcolum.getinfo()) if(tipo < temcolum.getinfo()): nodoenviar= tem break if (tem.getsig()==None): print("nonoe","--",tem.getinfo()) nodoenviar = tem tem=tem.getsig() try: print ("NODOENVIAR",nodoenviarb.getinfo()) except Exception as e: pass return nodoenviar
def cabeceradir(nodotem): nodoenviar = nodosd.nodosd1() tem =nodotem.getante() nodoenviar = tem while (tem!=None): nodoenviar = tem tem = tem.getante() return nodoenviar
def cabeceral(nodotem): nodoenviar = nodosd.nodosd1() tem =nodotem.getarriba() nodoenviar = tem while (tem!=None): nodoenviar = tem tem = tem.getarriba() return nodoenviar
def encontrarcabletra(nodo): nodoenviar = nodosd.nodosd1() tem =nodo nodoenviar = tem while (tem!=None): nodoenviar = tem if(tem.getante()==None): break tem = tem.getante() return nodoenviar
def ver_por_user(self,user,emp,dep): todos="" nodotem= self.cl nodotemdep = self.cdir while (nodotem!=None): if ((dep) ==(str(nodotem.getinfo()))): break nodotem = nodotem.getabajo() nododotemub = nodosd.nodosd1() while (nodotem!=None): if (cabeceral(nodotem)!=None): print ("nodo del cabeceral",nodotem.getinfo(),"cabeceral",cabeceral(nodotem).getinfo()) print ("nodo del cabeceral2",user,"cabeceral2",emp) if (emp == cabeceral(nodotem).getinfo()): nododd = nodotem if (user ==(str(nodotem.getinfo())) and emp == cabeceral(nodotem).getinfo()): nododotemub =nodotem if(nododotemub.getavl()==None): break else: avltemp = nododotemub.getavl() k = avltemp.listarActivos() todos =todos+ k.lista_comas() break while (nododd!=None): if (user == nododd.getinfo()): nododotemub =nododd numram = generar_random() if(nododotemub.getavl()==None): break else: avltemp = nododotemub.getavl() if(todos==""): k = avltemp.listarActivos() todos =todos+ k.lista_comas() else: k = avltemp.listarActivos() todos =todos+ ","+k.lista_comas() break nododd = nododd.getatras() nodotem = nodotem.getsig() return todos
def buscar_user_agregar_activo(self,user,emp,dep,activo,desc): nodotem= self.cl nodotemdep = self.cdir while (nodotem!=None): if ((dep) ==(str(nodotem.getinfo()))): break nodotem = nodotem.getabajo() nododotemub = nodosd.nodosd1() while (nodotem!=None): if (cabeceral(nodotem)!=None): print ("nodo del cabeceral",nodotem.getinfo(),"cabeceral",cabeceral(nodotem).getinfo()) print ("nodo del cabeceral2",user,"cabeceral2",emp) if (emp == cabeceral(nodotem).getinfo()): nododd = nodotem if (user ==(str(nodotem.getinfo())) and emp == cabeceral(nodotem).getinfo()): nododotemub =nodotem numram = generar_random() if(nododotemub.getavl()==None): avl= ArbolAvl() avl.agregar(activo,desc, numram) nododotemub.setavl(avl) break else: avltemp = nododotemub.getavl() avltemp.agregar(activo,desc, numram) break while (nododd!=None): if (user == nododd.getinfo()): nododotemub =nododd numram = generar_random() if(nododotemub.getavl()==None): avl= ArbolAvl() avl.agregar(activo,desc, numram) nododotemub.setavl(avl) break else: avltemp = nododotemub.getavl() avltemp.agregar(activo,desc, numram) break nododd = nododd.getatras() nodotem = nodotem.getsig()
def buscar_user(self,user,emp,dep): nodotem= self.cl nodotemdep = self.cdir while (nodotem!=None): if ((dep) ==(str(nodotem.getinfo()))): break nodotem = nodotem.getabajo() nododotemub = nodosd.nodosd1() while (nodotem!=None): if (cabeceral(nodotem)!=None): print ("nodo del cabeceral",nodotem.getinfo(),"cabeceral",cabeceral(nodotem).getinfo()) print ("nodo del cabeceral2",user,"cabeceral2",emp) if (emp == cabeceral(nodotem).getinfo()): nododd = nodotem if (user ==(str(nodotem.getinfo())) and emp == cabeceral(nodotem).getinfo()): nododotemub =nodotem print ("entrp") print("Encontrado") print("usuario",nododotemub.getinfo()) print("contra",nododotemub.getcontra()) print("nombre completo",nododotemub.getinfo()) print("avl",nododotemub.getavl()) break while (nododd!=None): if (user == nododd.getinfo()): nododotemub =nododd print ("entrp") print("Encontrado") print("usuario",nododotemub.getinfo()) print("contra",nododotemub.getcontra()) print("nombre completo",nododotemub.getinfo()) print("avl",nododotemub.getavl()) break nododd = nododd.getatras() nodotem = nodotem.getsig() if (nodotem==None): print("No encontrado")
def nodofilaletra(nodotem,letra): nodoenviar = nodosd.nodosd1() nodoenviar = nodotem tem = nodotem.getabajo() while (tem!=None): temcolum = tem print ("valor arriba tem",temcolum.getinfo()) while (temcolum.getante()!=None): temcolum = temcolum.getante() # print ("valor letra abajo",temcolum.getinfo()) if(letra< str(temcolum.getinfo())): nodoenviar= tem break if (tem.getabajo()==None): nodoenviar = tem tem=tem.getabajo() return nodoenviar
def comprobar_inicio (self, user,contra,emp,dep): nodotem= self.cl nodotemdep = self.cdir while (nodotem!=None): if ((dep) ==(str(nodotem.getinfo()))): break nodotem = nodotem.getabajo() nododotemub = nodosd.nodosd1() while (nodotem!=None): if (cabeceral(nodotem)!=None): if (emp == cabeceral(nodotem).getinfo()): nododd = nodotem if (user ==(str(nodotem.getinfo())) and emp == cabeceral(nodotem).getinfo()): nododotemub =nodotem print("comparar contrasena1",nododotemub.getcontra(),"contra",contra) if(str(nododotemub.getcontra())==str(contra)): print("comparar contrasena1",nododotemub.getcontra(),"contra",contra,"verdader") return True break else: return False break while (nododd!=None): if (user == nododd.getinfo()): nododotemub =nododd print("comparar contrasena2",nododotemub.getinfo()) if(str(nododotemub.getcontra())==str(contra)): return True break else: return False break nododd = nododd.getatras() nodotem = nodotem.getsig() if (nodotem==None): print("No encontrado")
def agregar (self,usuario,contra,nombrec,empresa,dep): nombre = dep tipo = empresa nodoinfo = nodosd.nodosd1() nodoinfo.setinfo(usuario) nodoinfo.setcontra(contra) nodoinfo.setcompleto(nombrec) if (self.cl ==None and self.cdir ==None): print("ENtro a no existe ninguna") nodoletra= nodosd.nodosd1() nodoletra.setinfo(nombre) nododir = nodosd.nodosd1() nododir.setinfo(tipo) #LETRA CON INFO nodoletra.setsig(nodoinfo) nodoinfo.setante(nodoletra) #INFO CON DIR nodoinfo.setarriba(nododir) nododir.setabajo(nodoinfo) #agreagamos self.cl=nodoletra self.cdir=nododir else: condl =False nodotemletra = self.cl while (nodotemletra!=None): if (str(nodotemletra.getinfo())==nombre): nodoletraen = nodotemletra condl = True nodotemletra = nodotemletra.getabajo() condl2 =False nodotemdir= self.cdir while (nodotemdir!=None): if (nodotemdir.getinfo()==tipo): nodotemdiren = nodotemdir condl2 = True nodotemdir = nodotemdir.getsig() if (condl==False and condl2==False): print("cond1 false condl2 false") nodoletra= nodosd.nodosd1() nodoletra.setinfo(nombre) #metodo de la posicion a agregar letra #nodoletratemanteriorm(nombre,nodoletra) letra = nombre nodotem = self.cl while (nodotem!=None): if ((letra) < (str(nodotem.getinfo()))): print ("menor") if (nodotem.getarriba()==None): #print ("arriba none") nodoletra.setarriba(None) nodoletra.setabajo(nodotem) nodotem.setarriba(nodoletra) if (self.cl == nodotem): self.cl = nodoletra else: nodoletra.setarriba(nodotem.getarriba()) nodoletra.setabajo(nodotem) nodotem.getarriba().setabajo(nodoletra) nodotem.setarriba(nodoletra) break elif (nodotem.getabajo()==None): print("ultiminodo") nodotem.setabajo(nodoletra) nodoletra.setarriba(nodotem) nodoletra.setabajo(None) break nodotem = nodotem.getabajo() #agregar dir enada nododirn= nodosd.nodosd1() nododirn.setinfo(tipo) #metodo de la posicion a agregar letra #nodoletratemanteriorm(nombre,nodoletra) letra = nombre nodotemd = self.cdir while (nodotemd!=None): if (tipo < nodotemd.getinfo()): print ("menor") if (nodotemd.getante()==None): #print ("arriba none") nododirn.setante(None) nododirn.setsig(nodotemd) nodotemd.setante(nododirn) if (self.cdir == nodotemd): self.cdir = nododirn else: nododirn.setante(nodotemd.getante()) nododirn.setsig(nodotemd) nodotemd.getante().setsig(nododirn) nodotemd.setante(nododirn) break elif (nodotemd.getsig()==None): print("ultiminodo1") nodotemd.setsig(nododirn) nododirn.setante(nodotemd) nododirn.setsig(None) break nodotemd = nodotemd.getsig() nodoletra.setsig(nodoinfo) nodoinfo.setante(nodoletra) #INFO CON DIR nodoinfo.setarriba(nododirn) nododirn.setabajo(nodoinfo) if(condl==True and condl2==False): print("cond1 true condl2 false") #agregar nuevo nodo #agregar dir enada nododirn= nodosd.nodosd1() nododirn.setinfo(tipo) #metodo de la posicion a agregar letra #nodoletratemanteriorm(nombre,nodoletra) letra = nombre nodotemd = self.cdir while (nodotemd!=None): if (tipo < nodotemd.getinfo()): print ("menor") if (nodotemd.getante()==None): #print ("arriba none") nododirn.setante(None) nododirn.setsig(nodotemd) nodotemd.setante(nododirn) if (self.cdir == nodotemd): self.cdir = nododirn else: nododirn.setante(nodotemd.getante()) nododirn.setsig(nodotemd) nodotemd.getante().setsig(nododirn) nodotemd.setante(nododirn) break elif (nodotemd.getsig()==None): print("ultiminodo") nodotemd.setsig(nododirn) nododirn.setante(nodotemd) nododirn.setsig(None) break nodotemd = nodotemd.getsig() #metodo encontrar la letra ya existente letra = nombre nodotem = self.cl while (nodotem!=None): if ((letra) ==(str(nodotem.getinfo()))): print ("letra repetida",str(nodotem.getinfo())) break nodotem = nodotem.getabajo() nodoinfo.setarriba(nododirn) nododirn.setabajo(nodoinfo) #buscar nodo exacto de letra a enlazar nodocolumnaa = nodocolumnadir(nodotem,tipo) if (nodocolumnaa.getsig()==None and cabeceral(nodocolumnaa).getinfo()<tipo ): nodocolumnaa = nodocolumnadir(nodotem,tipo) print (nodoinfo.getinfo(),"columa a enlazar principio",nodocolumnaa.getinfo(),"cabeceral",cabeceral(nodocolumnaa).getinfo()) nodocolumnaa.setsig(nodoinfo) nodoinfo.setante(nodocolumnaa) else: nodocolumnaa = nodocolumnadir(nodotem,tipo) print (nodoinfo.getinfo(),"columa a enlazar lado lado ",nodocolumnaa.getinfo()) nodoinfo.setsig(nodocolumnaa) nodoinfo.setante(nodocolumnaa.getante()) nodocolumnaa.getante().setsig(nodoinfo) nodocolumnaa.setante(nodoinfo) if (condl==False and condl2==True): print("cond1 false condl2 true") nodoletra= nodosd.nodosd1() nodoletra.setinfo(nombre) #metodo de la posicion a agregar letra #nodoletratemanteriorm(nombrenodoletra) letra = nombre nodotem = self.cl while (nodotem!=None): print ("menor: -",nodotem.getinfo()) if ((letra) < (str(nodotem.getinfo()))): print ("menor") if (nodotem.getarriba()==None): #print ("arriba none") nodoletra.setarriba(None) nodoletra.setabajo(nodotem) nodotem.setarriba(nodoletra) if (self.cl == nodotem): self.cl = nodoletra else: nodoletra.setarriba(nodotem.getarriba()) nodoletra.setabajo(nodotem) nodotem.getarriba().setabajo(nodoletra) nodotem.setarriba(nodoletra) break elif (nodotem.getabajo()==None): print("ultiminodo") nodotem.setabajo(nodoletra) nodoletra.setarriba(nodotem) nodoletra.setabajo(None) break nodotem = nodotem.getabajo() nodoletra.setsig(nodoinfo) nodoinfo.setante(nodoletra) #buscar nodo exacto de letra a enlazar nodotem = self.cdir while (nodotem!=None): if (tipo ==(str(nodotem.getinfo()))): print ("tipo repetido",str(nodotem.getinfo())) break nodotem = nodotem.getsig() nodocolumnaa = nodofilaletra(nodotem,nombre) if (nodocolumnaa.getabajo()==None and cabeceradir(nodocolumnaa).getinfo()<nombre): print (nodoinfo.getinfo(),"columa a enlazar principiofilaletra",nodocolumnaa.getinfo()) nodoinfo.setabajo(None) nodocolumnaa.setabajo(nodoinfo) nodoinfo.setarriba(nodocolumnaa) else: print (nodoinfo.getinfo(),"columa a doble",nodocolumnaa.getinfo()) nodoinfo.setabajo(nodocolumnaa) nodoinfo.setarriba(nodocolumnaa.getarriba()) nodocolumnaa.getarriba().setabajo(nodoinfo) nodocolumnaa.setarriba(nodoinfo) if (condl==True and condl2==True): print("cond1 true condl2 true") nodotem = self.cdir nodotemdir = nodosd.nodosd1() while (nodotem!=None): if (tipo ==(str(nodotem.getinfo()))): print ("tipo repetido",str(nodotem.getinfo())) nodotemdir = nodotem break nodotem = nodotem.getsig() #nodocolumnaa = nodofilaletra(nodotem,nombre) letra = nombre nodotem = self.cl nodotemletra = nodosd.nodosd1() while (nodotem!=None): if ((letra) ==(str(nodotem.getinfo()))): print ("letra repetida",str(nodotem.getinfo())) nodotemletra=nodotem break nodotem = nodotem.getabajo() #print (nodotemletra.getinfo(),"-@-",nodotemdir.getinfo()) #buscar nodo exacto de letra a enlazar #nodocolumnaa = nodocolumnadir(nodotem,tipo) ttp = nodotemdir.getabajo() condi=False while (ttp!=None): print ("dentro del while",ttp.getinfo()) if(encontrarcabletra(ttp).getinfo()==nombre): condi=True break ttp = ttp.getabajo() if (condi==True): print ("interno antes del while",ttp.getinfo()) while (ttp!=None and ttp.getatras()!=None): print ("interno",ttp.getinfo()) ttp = ttp.getatras() ttp.setatras(nodoinfo) nodoinfo.setadelante(ttp) nodoinfo.setatras(None) print(nodoinfo.getadelante().getinfo()) # else: temp =nodotemdir.getabajo() while (temp!=None): print(nodotemdir.getinfo(),"--ENTROE A repetida ALGO4 afuera--",temp.getinfo()) try: print(nodotemdir.getinfo(),"--ENTROE A repetida ALGO4 afuera--",temp.getinfo()) print("comparar",nombre) if (nombre< encontrarcabletra(temp).getinfo()): print("ENTROE A repetida ALGO4") nodoinfo.setabajo(temp) nodoinfo.setarriba(temp.getarriba()) temp.getarriba().setabajo(nodoinfo) temp.setarriba(nodoinfo) print("ENTROE A repetida ALGO5") ################ nodotem = self.cl while (nodotem!=None): if ((letra) ==(str(nodotem.getinfo()))): print ("letra repetida",str(nodotem.getinfo())) break nodotem = nodotem.getabajo() #buscar nodo exacto de letra a enlazar nodocolumnaa = nodocolumnadir(nodotem,tipo) if (nodocolumnaa.getsig()==None and cabeceral(nodocolumnaa).getinfo()< tipo ): nodocolumnaa = nodocolumnadir(nodotem,tipo) print (nodoinfo.getinfo(),"columa a enlazar principio",nodocolumnaa.getinfo()) nodoinfo.setsig(None) nodocolumnaa.setsig(nodoinfo) nodoinfo.setante(nodocolumnaa) else: nodocolumnaa = nodocolumnadir(nodotem,tipo) print (nodoinfo.getinfo(),"columa a enlazar lado lado ",nodocolumnaa.getinfo()) nodoinfo.setsig(nodocolumnaa) nodoinfo.setante(nodocolumnaa.getante()) nodocolumnaa.getante().setsig(nodoinfo) nodocolumnaa.setante(nodoinfo) ################ print ("lelgo break") break elif (nombre== temp.getinfo()): print ("letra igual algo true true break") break else: print ("nada") except Exception: print (Exception) print ("interno",temp.getinfo()) temp= temp.getabajo() if (temp == None): print ("entro a none trur true",nodotemdir.getinfo()) tempp =nodotemdir.getabajo() while (tempp!=None): if (tempp.getabajo()==None): nodoinfo.setarriba(tempp) tempp.setabajo(nodoinfo) ################ nodotem = self.cl while (nodotem!=None): if ((letra) ==(str(nodotem.getinfo()))): print ("letra repetida",str(nodotem.getinfo())) break nodotem = nodotem.getabajo() #buscar nodo exacto de letra a enlazar nodocolumnaa = nodocolumnadir(nodotem,tipo) if (nodocolumnaa.getsig()==None and cabeceral(nodocolumnaa).getinfo()< tipo ): nodocolumnaa = nodocolumnadir(nodotem,tipo) print (nodoinfo.getinfo(),"columa a enlazar principio",nodocolumnaa.getinfo()) nodoinfo.setsig(None) nodocolumnaa.setsig(nodoinfo) nodoinfo.setante(nodocolumnaa) else: nodocolumnaa = nodocolumnadir(nodotem,tipo) print (nodoinfo.getinfo(),"columa a enlazar lado lado ",nodocolumnaa.getinfo()) nodoinfo.setsig(nodocolumnaa) nodoinfo.setante(nodocolumnaa.getante()) nodocolumnaa.getante().setsig(nodoinfo) nodocolumnaa.setante(nodoinfo) ################ break tempp = tempp.getabajo()
def eliminarnosirve(self,nombre,tipo ): print("...................................................Eliminar...........................................") #nodocolumnaa = nodofilaletra(nodotem,nombre) letra = nombre nodotem = self.cl nodotemletra = nodosd.nodosd1() while (nodotem!=None): if ((letra) ==(str(nodotem.getinfo()))): nodotemletra=nodotem break nodotem = nodotem.getabajo() nododotemub = nodosd.nodosd1() while (nodotem!=None): if (cabeceral(nodotem)!=None): print ("cabeceral",cabeceral(nodotem).getinfo()) if (nombre ==(str(nodotem.getinfo())) and tipo == cabeceral(nodotem).getinfo()): nododotemub =nodotem break nodotem = nodotem.getsig() print ("encontrado",str(nododotemub.getinfo())) if (nododotemub.getinfo()==nombre): print ("iguales nodo adelante eliminar") if (nododotemub.getatras()!=None): print ("iguales nodo adelante eliminar con atras") infoo = nododotemub.getatras().getinfo() nododotemub.getatras().setnuevoinfo(nododotemub.getinfo()) nododotemub.setnuevoinfo(infoo) temi = nododotemub while (temi!=None): if (temi.getinfo()==nombre): if (temi.getatras()!=None): print ("distintos eliminar",temi.getinfo()) temitem = temi.getatras() temicab = temi.getadelante() temicab.setatras(temi.getatras()) temitem.setadelante(temicab) temi.setadelante(None) temi.setatras(None) else: print ("distintos eliminar",temi.getinfo()) temitem = temi.getatras() temicab = temi.getadelante() temicab.setatras(temi.getatras()) temi.setadelante(None) temi.setatras(None) temi = temi.getatras() else: print ("iguales nodo adelante eliminar sin atras") if (nododotemub.getsig()==None and nododotemub.getante().getinfo()==nombre): print ("iguales nodo adelante eliminar sin atras para eliminar letra") if (nombre== self.cl.getinfo()): self.cl = self.cl.getabajo() try: nododotemub.getante().getarriba().setabajo(nododotemub.getante().getabajo()) except: print ("iguales nodo adelante eliminar sin atras para eliminar letra error para set abajo") try: nodotemfinol=nododotemub.getante().getarriba() nododotemub.getante().getabajo().setarriba(nodotemfinol) except: print ("iguales nodo adelante eliminar sin atras para eliminar letra error para set arriba") nododotemub.setante(None) else: nododotemub.getante().setsig(nododotemub.getsig()) if (nododotemub.getsig()!=None): nododotemub.getsig().setante(nododotemub.getante()) if (nododotemub.getabajo()==None and nododotemub.getarriba().getinfo()==tipo): if (tipo== self.cdir.getinfo()): self.cdir = self.cdir.getsig() try: nododotemub.getarriba().getante().setsig(nododotemub.getarriba().getsig()) except: print ("iguales nodo adelante eliminar sin atras para eliminar dir error para set sig") try: nododotemub.getarriba().getsig().setante(nododotemub.getarriba().getante()) except: print ("iguales nodo adelante eliminar sin atras para eliminar dir error para set ante") nododotemub.setarriba(None) else: nododotemub.getarriba().setabajo(nododotemub.getabajo()) if (nododotemub.getabajo()!=None): nododotemub.getabajo().setarriba(nododotemub.getarriba()) else: print ("distintos nodo addelante eliminar") temi = nododotemub while (temi!=None): if (temi.getinfo()==nombre): if (temi.getatras()!=None): print ("distintos eliminar",temi.getinfo()) temitem = temi.getatras() temicab = temi.getadelante() temicab.setatras(temi.getatras()) temitem.setadelante(temicab) temi.setadelante(None) temi.setatras(None) else: print ("distintos eliminar",temi.getinfo()) temitem = temi.getatras() temicab = temi.getadelante() temicab.setatras(temi.getatras()) temi.setadelante(None) temi.setatras(None) temi = temi.getatras() #print (nodotemletra.getinfo(),"-@-",nodotemdir.getinfo()) #buscar nodo exacto de letra a enlazar #nodocolumnaa = nodocolumnadir(nodotem,tipo) """