Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
def prueba2(hola):
    mx = min.newMinPQ(compareQuantity)
    for h in hola:
        x = min.insert(mx, h)
    mayor = min.min(mx)
    print(mx)
    return mayor
Exemple #4
0
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