Skip to content

Commit

Permalink
Boceto Final del Tema 4
Browse files Browse the repository at this point in the history
  • Loading branch information
TeenBiscuits committed Apr 7, 2024
1 parent 69760e8 commit 1412fb0
Show file tree
Hide file tree
Showing 11 changed files with 125 additions and 19 deletions.
2 changes: 2 additions & 0 deletions docs/code/Ejemplos/Tema_4/createEmptyQueue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions docs/code/Ejemplos/Tema_4/dequeue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions docs/code/Ejemplos/Tema_4/enqueue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions docs/code/Ejemplos/Tema_4/front.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions docs/code/Ejemplos/Tema_4/isEmptyQueue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
124 changes: 105 additions & 19 deletions docs/topics/03-Apuntes/Pro-2/Tema-4-Colas.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,20 @@ SPDX-License-Identifier: CC-BY-NC-4.0

<tldr id="tldr">

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.

</tldr>

<include from="Para-Colaboradores.md" element-id="en-construccion"></include>

## 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).

<note>

Expand All @@ -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
```
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.

<note>

Para más información: [](Tema-1-Tipos-Abstractos-de-Datos-TAD.md#especificaci-n-de-un-tad)

</note>

#### Generadoras

<list>
<li>
<code-block lang="tex"> createEmptyQueue \rightarrow Queue </code-block><br/>
<p>
Objetivo: Crea una cola vacía<br/>
Salida: Una cola vacía<br/>
PosCondición: La cola sin datos<br/>
</p>
<code-block lang="c" src="./Ejemplos/Tema_4/createEmptyQueue.c" collapsible="true" collapsed-title="Mostrar implementación"/>
</li>
<li>
<code-block lang="tex"> enqueue (Item, Quede) \rightarrow Quede, bool </code-block><br/>
<p>
Objetivo: Inserta un elemento en la cola quedando al final.<br/>
Entrada:<br/>
Item: Contenido del elemento a insertar.<br/>
Queue: Cola donde vamos a insertar.<br/>
Salida: Queue: Cola con el elemento Item insertado y verdadero si se ha podido insertar, falso en caso contrario.<br/>
</p>
<code-block lang="c" src="./Ejemplos/Tema_4/enqueue.c" collapsible="true" collapsed-title="Mostrar implementación"/>
</li>
</list>

#### Destructoras

<list>
<li>
<code-block lang="tex"> dequeue(Queue) \rightarrow Queue </code-block><br/>
<p>
Objetivo: Elimina el primer elemento de la cola<br/>
Entrada: Queue: Cola a modificar<br/>
Salida: Queue: Cola sin el primer elemento<br/>
Precondición: La cola no está vacía<br/>
</p>
<code-block lang="c" src="./Ejemplos/Tema_4/dequeue.c" collapsible="true" collapsed-title="Mostrar implementación"/>
</li>
</list>

#### Observadoras

<list>
<li>
<code-block lang="tex"> front(Queue) \rightarrow Item </code-block><br/>
<p>
Objetivo: Recupera el contenido del primer elemento de la cola<br/>
Entrada: Queue: Cola donde obtener el dato<br/>
Salida: Item: Contenido del primer elemento de la cola<br/>
Precondición: La cola no está vacía<br/>
</p>
<code-block lang="c" src="./Ejemplos/Tema_4/front.c" collapsible="true" collapsed-title="Mostrar implementación"/>
</li>
<li>
<code-block lang="tex"> isEmptyQueue(Queue) \rightarrow bool </code-block><br/>
<p>
Objetivo: Determina si la cola está vacía<br/>
Entrada: Queue: Cola a comprobar<br/>
Salida: Verdadero si la cola está vacía, falso en caso contrario<br/>
</p>
<code-block lang="c" src="./Ejemplos/Tema_4/isEmptyQueue.c" collapsible="true" collapsed-title="Mostrar implementación"/>
</li>
</list>

## Implementación con array circular

<include from="Para-Colaboradores.md" element-id="en-construccion"></include>

## Implementación con lista dinámica circular

<include from="Para-Colaboradores.md" element-id="en-construccion"></include>

## Implementación a partir del TAD Lista

<note>

Esta implementación se basa en el [](Tema-3-Listas.md).

</note>

<include from="Para-Colaboradores.md" element-id="en-construccion"></include>
2 changes: 2 additions & 0 deletions src/Ejemplos/Tema_4/createEmptyQueue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions src/Ejemplos/Tema_4/dequeue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions src/Ejemplos/Tema_4/enqueue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions src/Ejemplos/Tema_4/front.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324
2 changes: 2 additions & 0 deletions src/Ejemplos/Tema_4/isEmptyQueue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// EN CONSTRUCCIÓN
// COLABORA https://github.com/TeenBiscuits/Pro2324

0 comments on commit 1412fb0

Please sign in to comment.