From 1412fb00624b08986e2fd90613ae3372607eb0a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Portas=20L=C3=B3pez?= <81629707+TeenBiscuits@users.noreply.github.com> Date: Sun, 7 Apr 2024 18:51:52 +0200 Subject: [PATCH] Boceto Final del Tema 4 --- docs/code/Ejemplos/Tema_4/createEmptyQueue.c | 2 + docs/code/Ejemplos/Tema_4/dequeue.c | 2 + docs/code/Ejemplos/Tema_4/enqueue.c | 2 + docs/code/Ejemplos/Tema_4/front.c | 2 + docs/code/Ejemplos/Tema_4/isEmptyQueue.c | 2 + docs/topics/03-Apuntes/Pro-2/Tema-4-Colas.md | 124 ++++++++++++++++--- src/Ejemplos/Tema_4/createEmptyQueue.c | 2 + src/Ejemplos/Tema_4/dequeue.c | 2 + src/Ejemplos/Tema_4/enqueue.c | 2 + src/Ejemplos/Tema_4/front.c | 2 + src/Ejemplos/Tema_4/isEmptyQueue.c | 2 + 11 files changed, 125 insertions(+), 19 deletions(-) create mode 100644 docs/code/Ejemplos/Tema_4/createEmptyQueue.c create mode 100644 docs/code/Ejemplos/Tema_4/dequeue.c create mode 100644 docs/code/Ejemplos/Tema_4/enqueue.c create mode 100644 docs/code/Ejemplos/Tema_4/front.c create mode 100644 docs/code/Ejemplos/Tema_4/isEmptyQueue.c create mode 100644 src/Ejemplos/Tema_4/createEmptyQueue.c create mode 100644 src/Ejemplos/Tema_4/dequeue.c create mode 100644 src/Ejemplos/Tema_4/enqueue.c create mode 100644 src/Ejemplos/Tema_4/front.c create mode 100644 src/Ejemplos/Tema_4/isEmptyQueue.c diff --git a/docs/code/Ejemplos/Tema_4/createEmptyQueue.c b/docs/code/Ejemplos/Tema_4/createEmptyQueue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/docs/code/Ejemplos/Tema_4/createEmptyQueue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/docs/code/Ejemplos/Tema_4/dequeue.c b/docs/code/Ejemplos/Tema_4/dequeue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/docs/code/Ejemplos/Tema_4/dequeue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/docs/code/Ejemplos/Tema_4/enqueue.c b/docs/code/Ejemplos/Tema_4/enqueue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/docs/code/Ejemplos/Tema_4/enqueue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/docs/code/Ejemplos/Tema_4/front.c b/docs/code/Ejemplos/Tema_4/front.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/docs/code/Ejemplos/Tema_4/front.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/docs/code/Ejemplos/Tema_4/isEmptyQueue.c b/docs/code/Ejemplos/Tema_4/isEmptyQueue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/docs/code/Ejemplos/Tema_4/isEmptyQueue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/docs/topics/03-Apuntes/Pro-2/Tema-4-Colas.md b/docs/topics/03-Apuntes/Pro-2/Tema-4-Colas.md index d03d62f..85e3ca3 100644 --- a/docs/topics/03-Apuntes/Pro-2/Tema-4-Colas.md +++ b/docs/topics/03-Apuntes/Pro-2/Tema-4-Colas.md @@ -12,17 +12,20 @@ SPDX-License-Identifier: CC-BY-NC-4.0 -El TAD Cola, especificación informal, implementación y descripción gráfica. Operaciones explicadas de forma gráfica e -implementadas. +El TAD Cola, especificación informal, implementación y descripción gráfica. Operaciones explicadas de forma gráfica. +Implementaciones con array circular, lista dinámica circular y a partir del TAD Lista. + + ## TAD Colas Una cola es una secuencia de cero o más elementos del mismo tipo. Los elementos de una cola están ordenados de una forma lineal, no por su contenido, sino por la posición que ocupan. -Cuando un elemento es insertado se añade al principio de la cola. Para eliminar un elemento, solo se podrá eliminar el primero. Este concepto es descrito como **FIFO** (First in, first out). +Cuando un elemento es insertado se añade al principio de la cola. Para eliminar un elemento, solo se podrá eliminar el +primero. Este concepto es descrito como **FIFO** (First in, first out). @@ -35,20 +38,103 @@ Para saber más sobre FIFO. [Wikipedia](https://es.wikipedia.org/wiki/First_in,_ title: TAD Cola --- flowchart LR - subgraph NODO1[NODO 1] - CONTENIDO1[INFORMACIÓN] - SIGUIENTE1[SIGUIENTE] - end - subgraph NODO2[NODO 2] - CONTENIDO2[INFORMACIÓN] - SIGUIENTE2[SIGUIENTE] + subgraph MEMORIA + NODO1[NODO 1] + NODO2[NODO 2] + NODO3[NODO 3] end - subgraph NODO3[NODO 3] - CONTENIDO3[INFORMACIÓN] - SIGUIENTE3[SIGUIENTE] - end - ENTRADA --> NODO3 - SIGUIENTE3 --> NODO2 - SIGUIENTE2 --> NODO1 - SIGUIENTE1 --> SALIDA -``` \ No newline at end of file + ENTRADA --> NODO3 --> NODO2 --> NODO1 --> SALIDA +``` + +### Operaciones + +Siguiendo los pasos para la especificación de un TAD, definimos las operaciones del mismo clasificándolas en: +constructoras, generadoras, modificadoras, observadoras y destructoras. + + + +Para más información: [](Tema-1-Tipos-Abstractos-de-Datos-TAD.md#especificaci-n-de-un-tad) + + + +#### Generadoras + + +
  • + createEmptyQueue \rightarrow Queue
    +

    +Objetivo: Crea una cola vacía
    +Salida: Una cola vacía
    +PosCondición: La cola sin datos
    +

    + +
  • +
  • + enqueue (Item, Quede) \rightarrow Quede, bool
    +

    +Objetivo: Inserta un elemento en la cola quedando al final.
    +Entrada:
    +Item: Contenido del elemento a insertar.
    +Queue: Cola donde vamos a insertar.
    +Salida: Queue: Cola con el elemento Item insertado y verdadero si se ha podido insertar, falso en caso contrario.
    +

    + +
  • +
    + +#### Destructoras + + +
  • + dequeue(Queue) \rightarrow Queue
    +

    +Objetivo: Elimina el primer elemento de la cola
    +Entrada: Queue: Cola a modificar
    +Salida: Queue: Cola sin el primer elemento
    +Precondición: La cola no está vacía
    +

    + +
  • +
    + +#### Observadoras + + +
  • + front(Queue) \rightarrow Item
    +

    +Objetivo: Recupera el contenido del primer elemento de la cola
    +Entrada: Queue: Cola donde obtener el dato
    +Salida: Item: Contenido del primer elemento de la cola
    +Precondición: La cola no está vacía
    +

    + +
  • +
  • + isEmptyQueue(Queue) \rightarrow bool
    +

    +Objetivo: Determina si la cola está vacía
    +Entrada: Queue: Cola a comprobar
    +Salida: Verdadero si la cola está vacía, falso en caso contrario
    +

    + +
  • +
    + +## Implementación con array circular + + + +## Implementación con lista dinámica circular + + + +## Implementación a partir del TAD Lista + + + +Esta implementación se basa en el [](Tema-3-Listas.md). + + + + \ No newline at end of file diff --git a/src/Ejemplos/Tema_4/createEmptyQueue.c b/src/Ejemplos/Tema_4/createEmptyQueue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/src/Ejemplos/Tema_4/createEmptyQueue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/src/Ejemplos/Tema_4/dequeue.c b/src/Ejemplos/Tema_4/dequeue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/src/Ejemplos/Tema_4/dequeue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/src/Ejemplos/Tema_4/enqueue.c b/src/Ejemplos/Tema_4/enqueue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/src/Ejemplos/Tema_4/enqueue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/src/Ejemplos/Tema_4/front.c b/src/Ejemplos/Tema_4/front.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/src/Ejemplos/Tema_4/front.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file diff --git a/src/Ejemplos/Tema_4/isEmptyQueue.c b/src/Ejemplos/Tema_4/isEmptyQueue.c new file mode 100644 index 0000000..8aebdb2 --- /dev/null +++ b/src/Ejemplos/Tema_4/isEmptyQueue.c @@ -0,0 +1,2 @@ +// EN CONSTRUCCIÓN +// COLABORA https://github.com/TeenBiscuits/Pro2324 \ No newline at end of file