David Santiago González Ramos
Efraín Hernández García
Josué Esteban Cordero Ruvalcaba
Para crear una Queue debemos seguir los siguientes pasos:
David Santiago González Ramos
Efraín Hernández García
Josué Esteban Cordero Ruvalcaba
Juan Castro
ProfesorJuan Castro
ProfesorEduardo Monzón
Omar Daniel Centeno
Daniela Funes
Elmer Padilla Espinoza
Karen Paola Diaz Duarte
Bernardo Aguayo Ortega
Stiven Andres Arevalo
jonathan gonzalez
Leslie Cristina Sanchez Mandujano
Daniel Ramírez Castaño
Anthony Guzman Lopez
Oscar Garcia
PLACIDO PARADA
David Barreto
Bernardo Aguayo Ortega
Diego Esteban Cortés Escandón
Enrique Gálvez
francisco ecatl melo valle
Jose Antonio Rojas Ollarves
Never Andrés Aparicio Hernandéz
Franco Bottazzi
Bernardo Aguayo Ortega
Gerardo Jesús Mota Olguín
Gabriel Obregón
alexander garcia castañeda
César Hansy Dueñas Barragán
Carlos Vargas
Jovanny Delgado
Nicolas Alpargatero
Byron Duarte
Irving Juárez
Muchachos comparto esta foto porque solo así yo logré entender la idea del algoritmo...sé que ya los arrays vienen con funciones integradas que podrían facilitar esto, pero siempre es bueno conocer "algoritmicamente" hablando como funcionan las cosas desde adentro. Espero que esta foto ayude a muchos.
Gracias de verdad si se entiende mejor!
Por que en el quinto dibujo rear cambia a 5?
Los arrays (y cualquier otro dato en programación) tienen la capacidad de contar sus elementos. Por ejemplo, el string "fulano" tiene 6 elementos (f, u, l, a, n y o) y el siguiente array tiene 3 elementos: ["pepito", "pizza", "pablito"].
Sin embargo, si queremos acceder a la primera posición de nuestras variables no buscamos la posición 1, sino la posición 0. Y, por lo mismo, la segunda posición en realidad es la posición 1:
Esta es la famosa confusión de la que habla el profe en la clase :D. Ejemplo:
array[0] // pepito array[1] // pizza string[0] // f string[1] // u string[2] // l
Explicación más detallada aquí: Why Do Arrays Start With Index 0? Chiste completo aquí: https://www.instagram.com/p/BuY5Xx5hT5x/
Me encantó el chiste y la explicación, gracias.
Gracias, me hacía falta esto en Python 💚
Omar, buena presentacion, gracias.
TRABAJAREMOS CON QUEUE: PASOS:
Gracias Keren, estos aportes siempre ayuda a afirmar las conocimientos
@Bernardo que no te diste cuenta que solo copio la descripción del vídeo para ganar mas puntos.
Hola compañeros aqui les dejo un video para en tender un poco mejor los queue. Solo vean los 4 primeros minutos :)
queue
Muchas gracias por el video. Definitivamente me quedó más claro!
Si empezamos estudiando lista ADT, stack ADT y queue, en videos anteriores. ¿Por qué empezamos analizando un ejemplo de Queue?. Saludos!
Yo me pregunto lo mismo, aunque aquí nunca hay respuestas de los profesores o de alguien de platzi...
Last in first out :V
Entiendo el posicionamiento 0,1,2,3,4 para cinco locaciones No me es claro el comportamiento del QUEUE Pero mi interpretación es:
Por favor colaborarme con ese concepto. Gracias
Tener claro lo que vamos a programar es esencial:
/* 1- Crear pointer para saber que hay en front y rear */ /* 2- Colocar estos valores en -1 al inicializar */ /* 3- Incrementar en 1 el valor de rear cuando agregamos un elemento */ /* 4- Retornar el valor de front al quitar un elemento */ /* 5- Incrementar en 1 el valor de front al usar dequeue */ /* 6- Antes de agregar un elemento revisar si hay espacio */ /* 7- Antes de remover un elemento revisar que existan elementos */ /* 8- Asegurarnos de que al remover todos los elementos asignemos -1 a front y rear */
Estamos aplicando los primeros pasos vistos en este curso para resolver x problema
class QueueExample: def __init__(self, max_length:int): self.queue = [] self.max_length = max_length def is_queue_empty(self) -> bool: return len(self.queue) == 0 def is_queue_full(self) -> bool: return len(self.queue) == self.max_length def enqueue(self, element_to_enter): """ encolar """ if not self.is_queue_full(): self.queue.append( element_to_enter ) else: raise Exception("La Cola está llena") def dequeue(self): """ desencolar """ if not self.is_queue_empty(): return self.queue.pop(0) else: raise Exception("La Cola está vacía") def show_queue(self): for x in self.queue: print(f'[{x}]') new_queue = QueueExample(2) print(new_queue.is_queue_empty()) print(new_queue.is_queue_full()) new_queue.enqueue("elemento1") new_queue.enqueue("elemento2") new_queue.show_queue() new_queue.dequeue() new_queue.show_queue() new_queue.dequeue() new_queue.dequeue() # Error cola vacía
class Cola: def __init__(self, max_e): self.max_element = max_e self.cola = list() def encolar(self, e): if (len(self.cola) < self.max_element): self.cola.append(e) else: print("Cola llena") def desencolar(self): return self.cola.pop(0) def imprimir(self): return self.cola def disponibles(self): return self.max_element - len(self.cola) def llena(self): if (len(self.cola) == self.max_element): return True else: return self.disponibles() if __name__ == '__main__': reserva = Cola(5) reserva.encolar("Pedro") reserva.encolar("Juan") reserva.encolar("Alicia") print("Imprimimos reservas pendientes {}".format(reserva.imprimir())) print("Quedan {} disponibles".format(reserva.disponibles())) print("El siguiente es {}".format(reserva.desencolar())) print("Imprimimos reservas pendientes {}".format(reserva.imprimir()))```
Python con funciones
fila = ["juan", "pepe", "alan", "chucho", "daniel"] def formarse(): if len(fila) == 5: print("Fila llena vuelva despues") return fila else: formado = input("Quien se va a formar?: ") fila.append(formado) return fila def quitar_lista(): if len(fila) == 0: print("Fila vacia") return fila else: fila.pop(0) return fila def run(): return fila if __name__ == "__main__": while True: to_do = input(""" ********************** Elije una accion: 1 - ver fila 2 - formarse en la fila 3 - salir de la fila 0 - Salir del programa """) if to_do == "0": break elif to_do == "1": print(run()) elif to_do == "2": print(formarse()) elif to_do == "3": print(quitar_lista()) else: print("comando no conocido")
El roadtocode si funciona :D
pues que empiece con 0 como que te acostumbras, si empieza con 1 ya se te hace raro
Claramente que los arrays empiezen en 0 hace más dificil de comprender para el iniciado, pero te facilita entender la relación entre array y pointer, y la memoria dinámica.
cuando estaba recien empezando en todo esto de la programación si me costo mucho trabajo entender esa parte
En los queue el primer elemento que entra es el primero en salir. Enqueue: Utiliza el comando Enqueue para agregar un elemento al final de la estructura. Dequeue: Utiliza el comando Dequeue para remover un elemento al principio de la estructura.
📌Cola (Queue) en un Restaurante
🔹 Concepto clave
➡️ La cola es una estructura lineal donde:
🔸 Los clientes entran por el final (rear).
🔸 Los clientes salen por el frente (front).
⚡ Regla: FIFO (First In, First Out).
🔹 Pasos de implementación
1️⃣ Crear punteros
👉 front y rear = control de entrada y salida.
2️⃣ Inicializar en -1
🚦 -1 = cola vacía (estado inicial).
3️⃣ Insertar cliente (enqueue)
➕ Incrementar rear.
➡ Cliente agregado al final sin sobrescribir.
4️⃣ Atender cliente (dequeue)
➖ Incrementar front.
👤 Se atiende el cliente correcto y pasa el siguiente.
5️⃣ Verificar espacio
📏 Si la cola está llena → 🚫 no se puede insertar.
⚠️ Previene overflow.
6️⃣ Verificar existencia de clientes
🔍 Si la cola está vacía → 🚫 no se puede atender.
⚠️ Previene errores por falta de elementos.
7️⃣ Resetear cuando queda vacía
🔄 front y rear vuelven a -1.
🟢 Al llegar un nuevo cliente → front = 0.
🔹 Beneficios
✔ Atención ordenada y segura.
✔ Simulación realista de un restaurante:
👥 El primero en llegar es el primero en ser atendido (FIFO).
alguien me puede explicar por favor que es lo del front y rear en -1?
En la imagen se muestra un queue de ejemplo. El índice comienza en 0 como explica el profesor, y es el uso frecuente en los diferentes tipos de datos en programación.
En este caso hay un elemento en la posición cero. El front = 0 y rear = 5. Se coloca la posición de front y rear en -1 en el caso de que no exista ningún elemento en el queue.
Resumidamente, Si el queue no posee ningún valor, estará en -1, en cuanto haya un valor en la queue pasara su valor a 0 y así sucesivamente
¿Por qué los índices empiezan en 0 y no en 1?
La razón principal por la que los índices en programación suelen comenzar en 0 se remonta a la forma en que las computadoras almacenan datos en la memoria.
Un ejemplo sencillo:
Imagina una lista de frutas: ["manzana", "banana", "pera"]. Si quisieras acceder a la "banana", tendrías que contar desde el principio: 0 (manzana), 1 (banana). Al usar el índice 1, estás diciendo a la computadora que se mueva una posición desde el inicio de la lista.
En resumen:
Buen paso a paso, un poco de dudas porque queda con la imaginación pero esperamos quede más claro implementando.
Gracias por resaltar la importancia de trabajar bien con la información
Yo pensé que aquí íbamos a implementar código, pero no fue así