예제 #1
0
 def barrido_por_nivel_huff(self):
     pendientes = Cola()
     pendientes.arribo(self)
     while (not pendientes.cola_vacia()):
         nodo = pendientes.atencion()
         print(nodo.info, nodo.frecuencia)
         if (nodo.izq is not None):
             pendientes.arribo(nodo.izq)
         if (nodo.der is not None):
             pendientes.arribo(nodo.der)
예제 #2
0
 def barrido_por_nivel_huff(self):
     """Realiza el barrido por nivel del arbol con codigos de Huffman."""
     pendientes = Cola()
     pendientes.arribo(self)
     while (not pendientes.cola_vacia()):
         nodo = pendientes.atencion()
         print(nodo.info, nodo.frecuencia)
         if (nodo.izq is not None):
             pendientes.arribo(nodo.izq)
         if (nodo.der is not None):
             pendientes.arribo(nodo.der)
예제 #3
0
 def barrido_por_nivel(self):
     """Realiza el barrido por nivel del arbol."""
     pendientes = Cola()
     pendientes.arribo(self)
     while (not pendientes.cola_vacia()):
         nodo = pendientes.atencion()
         print(nodo.info)
         if (nodo.izq is not None):
             pendientes.arribo(nodo.izq)
         if (nodo.der is not None):
             pendientes.arribo(nodo.der)
예제 #4
0
def ordenarPrioridad(cola):
    empleados = Cola()
    staff = Cola()
    gerente = Cola()

    while not cola.cola_vacia():
        A = cola.atencion()
        if A[1] == 1:
            empleados.arribo(A)
        elif A[1] == 2:
            staff.arribo(A)
        elif A[1] == 3:
            gerente.arribo(A)

    while (not gerente.cola_vacia()):
        cola.arribo(gerente.atencion())

    while (not staff.cola_vacia()):
        cola.arribo(staff.atencion())

    while (not empleados.cola_vacia()):
        cola.arribo(empleados.atencion())
def cargar_descripcion(arbol):
    pendientes = Cola()
    pendientes.arribo(arbol)

    while (not pendientes.cola_vacia()):
        nodo = pendientes.atencion()
        print(nodo.info, nodo.datos)
        nodo.datos['Descripcion'] = input(
            'Cargar descripcion de la criatura: ')
        if (nodo.izq is not None):
            pendientes.arribo(nodo.izq)
        if (nodo.der is not None):
            pendientes.arribo(nodo.der)
예제 #6
0
def ocurrencias(d):  # 6
    C = Cola()
    for i in range(0, 10):
        C.arribo(randint(0, 10))

    cont = 0

    while not C.cola_vacia():
        if C.atencion() == d:
            cont += 1
    if (cont == 0):
        print(d, " no aparece en la cola")
    else:
        print(d, " aparece ", cont, " veces en la cola")
예제 #7
0
 def barrido_amplitud(self, ver_origen):
     """Barrido en amplitud del grafo."""
     cola = Cola()
     while(ver_origen < self.tamanio()):
         vertice = self.inicio.obtener_elemento(ver_origen)
         if(not vertice['visitado']):
             vertice['visitado'] = True
             cola.arribo(vertice)
             while(not cola.cola_vacia()):
                 nodo = cola.atencion()
                 print(nodo['info'], nodo['data'])
                 aristas = 0
                 while(aristas < nodo['aristas'].tamanio()):
                     adyacente = nodo['aristas'].obtener_elemento(aristas)
                     pos_vertice = self.buscar_vertice(adyacente['destino'])
                     nuevo_vertice = self.inicio.obtener_elemento(pos_vertice)
                     if(not nuevo_vertice['visitado']):
                         nuevo_vertice['visitado'] = True
                         cola.arribo(nuevo_vertice)
                     aristas += 1
         ver_origen += 1
예제 #8
0
    while (not empleados.cola_vacia()):
        cola.arribo(empleados.atencion())


def imprimirDocumento(cola):
    print(cola.atencion()[0])


cargarDocumento(C)  #Empleados
cargarDocumento(C)  #Empleados
cargarDocumento(C)  #Empleados

cargarDocumento(C)  #Staff
cargarDocumento(C)  #Staff

cargarDocumento(C)  #Gerente

ordenarPrioridad(C)  #Se ordena la cola por prioridad

imprimirDocumento(C)  #Se imprime el primer documento
imprimirDocumento(C)  #Se imprime el segundo documento

cargarDocumento(C)  #Se carga un documento de empleados
cargarDocumento(C)  #Se carga un documento de empleados
cargarDocumento(C)  #Se carga un documento de gerente

ordenarPrioridad(C)  #Se ordena la cola por prioridad

while not C.cola_vacia():  # Se imprime toda la cola
    imprimirDocumento(C)
예제 #9
0
            B.arribo(i)


def barrido_Colas(A, B):
    print("Cola A:")

    for i in range(0, A.tamanio()):
        print(A.move_end())

    print("Cola B:")

    for i in range(0, B.tamanio()):
        print(B.move_end())


cargar_colas(Cola_A, Cola_B)

barrido_Colas(Cola_A, Cola_B)

print("Colas Cargadas...")

while not Cola_B.cola_vacia():
    valorB = Cola_B.atencion()
    valorA = Cola_A.atencion()
    if (valorB >= valorA):
        Cola_A.arribo(valorA)
        Cola_A.arribo(valorB)

print("Fin")

barrido_Colas(Cola_A, Cola_B)