예제 #1
0
def printBestTaxis(qeue, N):
    i = 0
    while i < N and not pq.isEmpty(qeue):
        taxi = pq.delMin(qeue)
        print("\n------ " + str(i + 1) + " ------")
        print("⚛︎ Taxi ID: {0}".format(taxi["id"]))
        print("⚛︎ Puntaje: {0}".format(round(taxi["points"], 2)))
        i += 1
    print(
        "\n\nACLARACIÓN: Si aparecen menos taxis de los esperados es porque no hay {0} taxis en esa fecha"
        .format(N))
예제 #2
0
def test_empty(minpq):
    assert pq.isEmpty(minpq) is True
예제 #3
0
        print('Menor Fecha: ' + str(controller.minKey(cont)))
        print('Mayor Fecha: ' + str(controller.maxKey(cont)))
        a = False
        while a == False:
            try:
                N = int(
                    input(
                        "Ingrese el número de mejores taxis que desee ver: "))
                a = True
            except:
                pass
        Date = input("Fecha (YYYY-MM-DD): ")
        bestN = controller.getBestNTaxisByDate(cont, Date, N)
        if bestN == 1:
            print("El formato de fechas dado es inválido. Vuélvalo a intentar")
        elif bestN == 0 or pq.isEmpty(bestN):
            print("No se encontraron taxis en esa fecha")
        else:
            print(
                "\nLa lista de los mejores {0} taxis con sus respectivos puntos es: "
                .format(N))
            printBestTaxis(bestN, N)

    elif int(inputs[0]) == 6:
        print("\nBuscando mejores taxis en un rango de fechas: ")
        print('Menor Fecha: ' + str(controller.minKey(cont)))
        print('Mayor Fecha: ' + str(controller.maxKey(cont)))
        a = False
        while a == False:
            try:
                M = int(
예제 #4
0
def greater(key1, key2):
    if key1['t'] == key2['t']:
        return 0
    elif key1['t'] < key2['t']:
        return -1
    else:
        return 1


cola_de_espera = queue.newQueue()

minpq = pq.newMinPQ(greater)
pq.insert(minpq, {'t': 0, 'evento': 'llegada'})
pq.insert(minpq, {'t': 5, 'evento': 'fin'})

iters = 0
while not pq.isEmpty(minpq) and iters < 100:
    p = pq.delMin(minpq)

    if p['evento'] == 'llegada':
        queue.enqueue(cola_de_espera, 1)
        pq.insert(minpq, {'t': p['t'] + 1, 'evento': 'llegada'})
        print('llegada')

    if p['evento'] == 'fin':
        break
    iters = iters + 1

print(queue.size(cola_de_espera))