Está en la página 1de 3

1. __init__(self, size): Este es el método de inicialización de la clase.

Recibe un parámetro
size que representa el tamaño máximo de la cola circular. Crea una lista de None con la
longitud especificada por size para almacenar los elementos de la cola. También
establece los atributos head y tail en 0, lo que indica que la cola está vacía y no tiene
elementos.

2. is_empty(self): Este método verifica si la cola circular está vacía. Devuelve True si head
es igual a tail y el elemento en head es None, lo que indica que la cola está vacía. De lo
contrario, devuelve False.

3. is_full(self): Este método verifica si la cola circular está llena. Devuelve True si head es
igual a tail y el elemento en head no es None, lo que indica que la cola está llena. De lo
contrario, devuelve False.

4. enqueue(self, item): Este método agrega un elemento item al final de la cola circular.
Primero verifica si la cola está llena llamando al método is_full(). Si la cola está llena,
no se puede agregar más elementos y el método devuelve False. Si la cola no está
llena, el elemento se agrega en la posición tail de la lista items. Luego, se actualiza tail
usando la operación de módulo % para asegurarse de que tail permanezca dentro del
rango válido. Finalmente, el método devuelve True para indicar que se realizó la
operación de encolar con éxito.

5. dequeue(self): Este método elimina y devuelve el elemento del frente de la cola


circular. Primero verifica si la cola está vacía llamando al método is_empty(). Si la cola
está vacía, no hay elementos para eliminar y el método devuelve None. Si la cola no
está vacía, el elemento en la posición head se guarda en una variable item. Luego, se
establece el elemento en head en None para marcar esa posición como vacía.
Después, head se actualiza usando la operación de módulo % para asegurarse de que
head permanezca dentro del rango válido. Por último, el método devuelve el elemento
guardado en la variable item.

En resumen, la clase CircularQueue implementa una cola circular de tamaño fijo utilizando una
lista y dos punteros (head y tail). Los métodos is_empty(), is_full(), enqueue(item) y
dequeue() permiten verificar el estado de la cola y realizar operaciones de encolar y desencolar
elementos.
EJERCICIO 2

Veamos en detalle las funciones de la clase ColaDoble:

1. __init__(self): Este es el método de inicialización de la clase. Crea una lista vacía items
que se utilizará para almacenar los elementos de la cola doble.

2. is_empty(self): Este método verifica si la cola doble está vacía. Devuelve True si la
longitud de la lista items es igual a 0, lo que indica que no hay elementos en la cola. De
lo contrario, devuelve False.

3. enqueue_front(self, item): Este método agrega un elemento item al frente de la cola


doble. Utiliza el método insert() de la lista para insertar el elemento en la posición 0,
desplazando los elementos existentes hacia la derecha.

4. enqueue_rear(self, item): Este método agrega un elemento item a la parte trasera de


la cola doble. Utiliza el método append() de la lista para agregar el elemento al final de
la lista.

5. dequeue_front(self): Este método elimina y devuelve el elemento del frente de la cola


doble. Verifica si la cola no está vacía llamando al método is_empty(). Si hay elementos
en la cola, utiliza el método pop(0) para eliminar y retornar el elemento en la posición
0 de la lista items. Esto desplaza los elementos restantes hacia la izquierda.

6. dequeue_rear(self): Este método elimina y devuelve el elemento de la parte trasera de


la cola doble. Verifica si la cola no está vacía llamando al método is_empty(). Si hay
elementos en la cola, utiliza el método pop() sin especificar un índice para eliminar y
retornar el último elemento de la lista items.

7. size(self): Este método devuelve el tamaño actual de la cola doble, es decir, la cantidad
de elementos en la lista items.

En resumen, la clase ColaDoble implementa una cola doble utilizando una lista. Los métodos
is_empty(), enqueue_front(item), enqueue_rear(item), dequeue_front(), dequeue_rear() y
size() permiten verificar el estado de la cola y realizar operaciones de encolar y desencolar
elementos desde el frente y la parte trasera de la cola.

EJERCICIO 3

Veamos en detalle las funciones de la clase EventQueue:

1. __init__(self): Este es el método de inicialización de la clase. Crea una lista vacía


llamada events que se utilizará para almacenar los eventos en la cola.

2. is_empty(self): Este método verifica si la cola de eventos está vacía. Devuelve True si la
longitud de la lista events es igual a 0, lo que indica que no hay eventos en la cola. De
lo contrario, devuelve False.

3. enqueue(self, event): Este método agrega un evento al final de la cola de eventos.


Utiliza el método append() de la lista para agregar el evento al final de la lista.

4. dequeue(self): Este método elimina y devuelve el evento del frente de la cola de


eventos. Primero verifica si la cola está vacía llamando al método is_empty(). Si la cola
está vacía, lanza una excepción con un mensaje indicando que la cola está vacía. Si hay
eventos en la cola, utiliza el método pop(0) para eliminar y retornar el evento en la
posición 0 de la lista events. Esto desplaza los eventos restantes hacia la izquierda.

En resumen, la clase EventQueue implementa una cola de eventos utilizando una lista. Los
métodos is_empty(), enqueue(event) y dequeue() permiten verificar el estado de la cola y
realizar operaciones de encolar y desencolar eventos en un orden específico.

EJERCICIO 4

Veamos en detalle las funciones de la clase MultiQueue:

1. __init__(self, num_queues): Este es el método de inicialización de la clase. Recibe un


parámetro num_queues que indica el número de colas que se crearán. Se crea una
lista queues que contiene num_queues sublistas vacías. Cada sublista representa una
cola individual.

2. is_empty(self): Este método verifica si todas las colas están vacías. Utiliza la función
all() junto con una comprensión de lista para verificar si todas las sublistas en queues
tienen una longitud de 0. Devuelve True si todas las colas están vacías, de lo contrario,
devuelve False.

3. enqueue(self, item, queue_num): Este método agrega un elemento item a una cola
específica identificada por queue_num. Accede a la cola correspondiente en la lista
queues utilizando queue_num como índice y luego utiliza el método append() para
agregar el elemento al final de la cola.

4. dequeue(self): Este método elimina y devuelve el primer elemento no vacío de


cualquiera de las colas. Primero verifica si todas las colas están vacías llamando al
método is_empty(). Si todas las colas están vacías, lanza una excepción con un
mensaje indicando que la estructura de datos está vacía. Si al menos una cola tiene
elementos, itera sobre las colas en queues y devuelve el primer elemento de la
primera cola no vacía encontrada utilizando el método pop(0). Esto elimina el
elemento de la cola y desplaza los elementos restantes hacia la izquierda.

En resumen, la clase MultiQueue implementa una estructura de datos de múltiples colas


utilizando una lista de sublistas. Los métodos is_empty(), enqueue(item, queue_num) y
dequeue() permiten verificar el estado de la estructura y realizar operaciones de encolar y
desencolar elementos en las colas específicas.

También podría gustarte