def test_delete(minpq): minpq = pq.insert(minpq, 23) minpq = pq.insert(minpq, 7) minpq = pq.insert(minpq, 30) minpq = pq.insert(minpq, 5) minpq = pq.insert(minpq, 15) minpq = pq.insert(minpq, 1) key = pq.min(minpq) assert key == 1 key = pq.delMin(minpq) assert key == 1 key = pq.min(minpq) assert key == 5 key = pq.delMin(minpq) assert key == 5 key = pq.min(minpq) assert key == 7 minpq = pq.insert(minpq, 4) minpq = pq.insert(minpq, 3) minpq = pq.insert(minpq, 2) key = pq.min(minpq) assert key == 2 key = pq.delMin(minpq) assert key == 2 key = pq.delMin(minpq) assert key == 3 key = pq.delMin(minpq) assert key == 4
def topN(theServices,N): valores=[] res={} i=0 n=0 keys= m.keySet(theServices) values=m.valueSet(theServices) itv=it.newIterator(values) itk=it.newIterator(keys) orden=mpq.newMinPQ(comparemaxpq) while it.hasNext(itv): value=it.next(itv) key= it.next(itk) if key!= "Independent Owner": mpq.insert(orden,value[1]) while i<N: valor=mpq.min(orden) valores.append(valor) res[valor]=[] mpq.delMin(orden) i+=1 itval=it.newIterator(values) itke=it.newIterator(keys) while it.hasNext(itval): val=it.next(itval) ke= it.next(itke) if ke!= "Independent Owner": for i in valores: if i==val[1]: if ke not in res[i] and n<N: res[i].append(ke) n+=1 return res
def prueba2(hola): mx = min.newMinPQ(compareQuantity) for h in hola: x = min.insert(mx, h) mayor = min.min(mx) print(mx) return mayor
def test_insert(minpq): minpq = pq.insert(minpq, 23) minpq = pq.insert(minpq, 7) minpq = pq.insert(minpq, 30) minpq = pq.insert(minpq, 5) minpq = pq.insert(minpq, 15) minpq = pq.insert(minpq, 1) key = pq.min(minpq) assert key == 1
def ConectarConCapital(catalog, vertice_capital, pais, latitud_capital, longitud_capital): """ El vertice capital es el nombre de la capital. Ej: "Bogotá" UPDATE: SI el vértice de capital ya está como número Ej: 1923, ese se deja como el vértice_capital. Si no está, se usa el nombre de la capital Ej: Bogotá UPDATE: SE CONECTA A LA CAPITAL CON LOS VERTICES DEL PAIS EN AMBOS GRAFOS se podrían añadir los nuevos vertices a las otras estructuras. En específico a catalog["points"], catalog["ciudades"], catalog["countries"] quizá tmb a catalog["anchos_landing"] """ existe_pais = mp.get(catalog["countries"], pais) if existe_pais == None: menor = math.inf point_menor = None for point in lt.iterator(mp.keySet(catalog["points"])): mapa_info_point = me.getValue(mp.get(catalog["points"], point)) latitud_point = me.getValue(mp.get(mapa_info_point, "latitude")) longitud_point = me.getValue(mp.get(mapa_info_point, "longitude")) distancia = CalcularPeso(latitud_point, longitud_point, latitud_capital, longitud_capital) if distancia < menor: menor = distancia point_menor = point lista_vertices = mp.keySet( me.getValue( mp.get(me.getValue(mp.get(catalog["points"], point_menor)), "mapa_vertices"))) else: #if mp.contains(catalog["ciudades"], vertice_capital): # vertice_capital = mp.get(catalog["ciudades"], vertice_capital)["value"] lista_vertices = mp.keySet(me.getValue(existe_pais)) for vertice in lt.iterator(lista_vertices): point = getLandingPoint(vertice) mapa_info_point = me.getValue(mp.get(catalog["points"], point)) ancho = pq.min(me.getValue(mp.get(catalog["anchos_landing"], point))) # conecta dos vertices por ancho addAncho(catalog, vertice, vertice_capital, ancho)
def ConectarPointsIguales(catalog): for point in lt.iterator(mp.keySet(catalog["points"])): valor_point = me.getValue(mp.get(catalog["points"], point)) mapa_vertices = me.getValue(mp.get(valor_point, "mapa_vertices")) #Se obtiene la el mapa de {mapa_vertices, country, lat, long, city} lista_vertices = mp.keySet(mapa_vertices) tamaño = lt.size(lista_vertices) i = 1 while i < tamaño: vertice = lt.getElement(lista_vertices, i) #SOLO SE CONECTA AL LP CON CADA VERTICE DEL MISMO LD POR MEDIO DE LA DISTANCIA (no el ancho) addDistance(catalog, point, vertice, 0) j = i + 1 while j <= tamaño: vertice1 = lt.getElement(lista_vertices, j) addDistance(catalog, vertice, vertice1, 0.1) cola = me.getValue(mp.get(catalog["anchos_landing"], point)) ancho = pq.min(cola) addAncho(catalog, vertice, vertice1, ancho) j += 1 i += 1