Ejemplo n.º 1
0
def caracteres(C):
    '''Operaciones con una cola de letras, numeros y simbolos'''
    C_dig = Cola()
    C_car = Cola()
    cont_letras = 0
    numer, inter = False, False
    while not cola_vacia(C):
        dato = atencion(C)
        if dato.isdigit():
            arribo(C_dig, dato)
        else:
            arribo(C_car, dato)
    # barrido_cola(C_dig)
    # barrido_cola(C_car)
    print('Tamanio de la cola de numeros: ' + str(tamanio_cola(C_dig)))
    print('Tamanio de la cola de caracteres: ' + str(tamanio_cola(C_car)))
    while not cola_vacia(C_car):
        dato = atencion(C_car)
        if dato.isalpha():
            cont_letras += 1
        if dato == '?':
            inter = True
        if dato == '#':
            numer = True
    print('Cantidad de letras en la cola de caracteres: ' + str(cont_letras))
    if inter:
        print('Existen signos de interrogacion en la cola')
    else:
        print('NO existen signos de interrogacion en la cola')
    if numer:
        print('Existen numerales en la cola')
    else:
        print('NO existen numerales en la cola')
Ejemplo n.º 2
0
def dos_colas():
    '''Combina dos colas en una ordenada'''
    C1 = Cola()
    C2 = Cola()
    dato1 = [0, 2, 4, 6, 8]
    dato2 = [1, 3, 5, 7, 9]
    for i in range(0, len(dato1)):
        arribo(C1, dato1[i])
        arribo(C2, dato2[i])
    print('Cola 1')
    barrido_cola(C1)
    print('Cola 2')
    barrido_cola(C2)
    print()
    for i in range(0, tamanio_cola(C1)):
        if en_frente(C1) < en_frente(C2):
            mover_final(C1)
        else:
            while en_frente(C1) > en_frente(C2):
                arribo(C1, atencion(C2))
            mover_final(C1)
    while not cola_vacia(C2):
        arribo(C1, atencion(C2))
    print('Cola combinada y ordenada')
    barrido_cola(C1)
Ejemplo n.º 3
0
def i_esimo_cola(C):
    '''Elimina un i-esimo elemento despues de frente de la cola'''
    Caux = Cola()
    pos = 5
    if tamanio_cola(C) > pos:
        i = 0
        while i < pos:
            x = atencion(C)
            arribo(Caux, x)
            i += 1
        elim = atencion(C)
        print('elemento eliminado:', elim)
        while not cola_vacia(C):
            arribo(Caux, atencion(C))
        print('Nueva cola')
        barrido_cola(Caux)
    else:
        print('Se excedio la cantidad de posiciones')
Ejemplo n.º 4
0
def numeros_ordenados():
    C = Cola()
    Caux = Cola()
    numeros1 = [0, 5, 9, 11]
    numeros2 = [2, 6, 10, 14]
    for i in range(0, len(numeros1)):
        arribo(C, numeros1[i])
        arribo(Caux, numeros2[i])
    for i in range(0, tamanio_cola(C)):
        if (en_frente(C) < en_frente(Caux)):
            mover_final(C)
        else:
            while (en_frente(C) > en_frente(Caux)):
                arribo(C, atencion(Caux))
            mover_final(C)
    while not cola_vacia(Caux):
        arribo(C, atencion(Caux))
    print('Termino')
    barrido_cola(C)
Ejemplo n.º 5
0
def palindromo():
    '''Devuelve True si una palabra es un palindromo'''
    P = Pila()
    C = Cola()
    cad = 'neuquen'
    palindr = True
    print(cad)
    for letra in cad:
        apilar(P, letra)
        arribo(C, letra)
    for i in range(0, tamanio_cola(C)):
        dato_cola = atencion(C)
        dato_pila = desapilar(P)
        if dato_cola != dato_pila:
            palindr = False
    if palindr:
        print(True)
    else:
        print(False)
Ejemplo n.º 6
0
def ordenada(C):
    Caux = Cola()
    for i in range (tamanio_cola(C))
Ejemplo n.º 7
0
def turnos():
    '''Cola de turnos en un consultorio'''
    Corig, Caux, C1, C2 = Cola(), Cola(), Cola(), Cola()
    letr = ['A', 'B', 'C', 'D', 'E', 'F']
    for i in range(1000):
        # zfill() agrega ceros a la izquierda
        arribo(Corig, [choice(letr), randint(000, 999)])
    barrido_cola(Corig)
    while not cola_vacia(Corig):
        dato = atencion(Corig)
        if dato[0] == 'A' or dato[0] == 'C' or dato[0] == 'F':
            arribo(C1, dato)
        if dato[0] == 'B' or dato[0] == 'D' or dato[0] == 'E':
            arribo(C2, dato)
        arribo(Caux, dato)
    print('Cantidad turnos A, C o F: ' + str(tamanio_cola(C1)))
    print('Cantidad turnos B, D o E: ' + str(tamanio_cola(C2)))
    if tamanio_cola(C1) > tamanio_cola(C2):
        print('La cola 1 tiene mayor cantidad de turnos')
    elif tamanio_cola(C2) > tamanio_cola(C1):
        print('La cola 2 tiene mayor cantidad de turnos')
    else:
        print('Son iguales')
    print('')
    A, C, F = 0, 0, 0
    B, D, E = 0, 0, 0
    while not cola_vacia(C1):
        dato1 = atencion(C1)
        if dato1[0] == 'A':
            A += 1
        if dato1[0] == 'C':
            C += 1
        if dato1[0] == 'F':
            F += 1
    while not cola_vacia(C2):
        dato2 = atencion(C2)
        if dato2[0] == 'B':
            B += 1
        if dato2[0] == 'D':
            D += 1
        if dato2[0] == 'E':
            E += 1
    print('La cola 1 contiene:')
    print('A: ' + str(A) + ', C: ' + str(C) + ', F: ' + str(F))
    print('La cola 2 contiene:')
    print('B: ' + str(B) + ', D: ' + str(D) + ', E: ' + str(E))
    print('')
    if A > C and A > F:
        print('En cola 1, mayoria de letras A')
    elif C > A and C > F:
        print('En cola 1, mayoria de letras C')
    else:
        print('En cola 1, mayoria de letras F')
    if B > D and B > E:
        print('En cola 2, mayoria de letras B')
    elif D > B and D > E:
        print('En cola 2, mayoria de letras D')
    else:
        print('En cola 2, mayoria de letras E')
    print('')
    cont = 0
    while not cola_vacia(Caux):
        dato = atencion(Caux)
        if dato[1] <= 506:
            # print(dato)
            cont += 1
    print('Cantidad de turnos con numero menor a 506: ' + str(cont))