Beispiel #1
0
	def setDatosZ(self, datoZ, datoX):
		#nv = nodoVacio.Nodo("")
		
		insercion = True
		nodoDisperso = Nodo(datoZ)# nodo disperso que se hizo para guardar el nodo que ha de apuntar hacia arriba , abajo, siguiente y anterior
		#nodoDisperso.pSig = nodoVacio.Nodo("")
		#nodoDisperso.pAnt = nodoVacio.Nodo("")
		if self.__Y.busquedaPorDato(datoZ[0]) == False :
			self.__Y.setOrdenado(datoZ[0])
		
		if self.__X.busquedaPorDato(datoX) == False :
			self.__X.setOrdenado(datoX)# sino se encuentra en nuestra lista lo insgresamos 

		# buscamos el nodo qeu contiene nuestro nuevo dato ingresado
		 
		nodoCX =  self.__X.busquedadeNodo(datoX)
		

		#self.__X.getLista()


		#if self.__Y.busquedaPorDato(datoZ[0]) == True : # busqueda de la primer letra del nombre del correo
		#print "Encontrado ni me preguntes we que dato es :v alv prro"
		nodoCY =  self.__Y.busquedadeNodo(datoZ[0])

		#print "awebo prro es un error arreglado prro", nodoCY.getElemento()
		if nodoCX.pAb.getElemento() == "" :#concatena primeros datos con columna
			
			nodoCX.pAb = None
			nodoCX.pAb = nodoDisperso
			nodoDisperso.pAnt = None
			nodoDisperso.pAnt = nodoCX
			nodoCX.setTamanioFila(2)


			
			#print "primer Dato de columna hacia abajo" , nodoCX.pAb.getElemento()
		else :
			if self.encontrarenColumna(nodoCX, datoZ) == True :
				nodoProfundidad = self.buscarenColumna(nodoCX, datoZ)
				if nodoProfundidad.getTamanioFila() == 0 :

					print "por fin encontrado", datoZ
					insercion = False
					print "por fin esta es la cabeza: " , nodoProfundidad.getElemento()
					nodoProfundidad.pAtr = nodoDisperso
					nodoDisperso.pAde = nodoProfundidad
					nodoProfundidad.setTamanioFila(2)

					print "aniadido atras", nodoProfundidad.pAtr.getElemento()
					self.imprimirProfundidad(nodoProfundidad)
					print "tamanio profundiad", nodoProfundidad.getTamanioFila()
				else :
					print "por fin esta es la cabeza: " , nodoProfundidad.getElemento()
					temp = nodoProfundidad
					contador = 0
					vale = True 
					while vale : 
						if contador == (nodoProfundidad.getTamanioFila()-1):
							vale = False
						else:
							contador += 1
				 			temp = temp.pAtr

			#	print "Entrada: " , datoZ
			#	print "Cola final fila: ", temp.getElemento()
					temp.pAtr = nodoDisperso
					nodoDisperso.pAde = temp
					nodoProfundidad.setTamanioFila(nodoProfundidad.getTamanioFila() + 1)

					self.imprimirProfundidad(nodoProfundidad)
					print "tamanio profundiad", nodoProfundidad.getTamanioFila()
					insercion = False


			else:

			#if insercion == True :

			#	print "este era el error"
				temp = nodoCX.pAb
				c = ord(datoZ[0])
				contador = 1
		
				while contador != (nodoCX.getTamanioFila()-1) and ord(temp.getElemento()[0]) < c:
					temp = temp.pSig
					contador += 1

				if contador == (nodoCX.getTamanioFila()-1) and ord(temp.getElemento()[0]) < c:
					temp.pSig  = nodoDisperso
					nodoDisperso.pAnt = temp
				else:
					if temp == nodoCX.pAb :
						nodoDisperso.pSig = temp
						temp.pAnt = nodoDisperso
						nodoDisperso.pAnt = nodoCX
						nodoCX.pAb = nodoDisperso
					else : 
						nodoanterior = temp.pAnt
						nodoanterior.pSig = nodoDisperso
						nodoDisperso.pAnt = nodoanterior
						nodoDisperso.pSig = temp
						temp.pAnt = nodoDisperso
					#	print "Entrada: " , datoZ
				nodoCX.setTamanioFila(nodoCX.getTamanioFila() + 1)
			#print "Tamanio de la columna: ", str(nodoCX.getTamanioFila())

		if nodoCY.pAb.getElemento() == "" :# concatena primeros datos con fila
		#	print "por fin prro resolviste el problema de asignacion de memoria"
			nodoCY.pAb = None
			nodoCY.pAb = nodoDisperso
			nodoDisperso.pArr = None
			nodoDisperso.pArr = nodoCY
			nodoCY.setTamanioFila(2)
				
			#print "Primer Dato Fila hacia abajo" , nodoCY.pAb.getElemento()
		else :
			if insercion == True:
				temp2 = nodoCY.pAb
				temp = self.__X.getCabeza()
				c = ord(datoX[0])
				contador = 1
		
				while contador != (nodoCY.getTamanioFila() - 1) and ord(temp.getElemento()[0]) < c:
					temp = temp.pSig
					temp2 = temp2.pAb
					contador += 1
					

				if contador == (nodoCY.getTamanioFila() - 1) and ord(temp.getElemento()[0]) < c:
					temp2.pAb  = nodoDisperso
					nodoDisperso.pArr = temp2
				else:
					if temp2 == nodoCY.pAb :
						nodoDisperso.pAb = temp2
						temp2.pArr = nodoDisperso
						nodoDisperso.pArr = nodoCY
						nodoCY.pAb = nodoDisperso
					else : 
						nodoanterior = temp2.pArr
						nodoanterior.pAb = nodoDisperso
						nodoDisperso.pArr = nodoanterior
						nodoDisperso.pAb = temp2
						temp2.pArr = nodoDisperso
					#	print "Entrada: " , datoZ
				nodoCY.setTamanioFila(nodoCY.getTamanioFila() + 1)