SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Pilas y Colas
Dennis Escobar Salazar
Ampliación de informática
Índice
◼ TDA Cola
◼ Definición y operaciones básicas
◼ Operaciones e implementación
◼ Aplicaciones
TDA COLA
Def: una cola es una lista ordenada de elementos en la que todas las
inserciones se realizan por un extremo (frente o principio) y las
supresiones se realizan por el otro (final).
Definición
Estructura FIFO (First In First Out): “primero en entrar primero
en salir”
Operaciones básicas
◼ QUEUE: encolar, meter
◼ DEQUEUE: desencolar, sacar
TDA COLA
Operaciones
◼ Crear_cola(C: cola, ok: lógico)
◼ Borrar_cola(C: cola, ok: lógico)
◼ Vacía?(C: cola, resp: lógico)
◼ Llena?(C: cola, resp: lógico)
◼ Queue(C: cola, X: elemento, resp: lógico)
◼ Dequeue(C: cola, X: elemento, resp: lógico)
◼ Tamaño(C: cola, N: numérico)
TDA COLA
Implementación con listas enlazadas
◼ Definición de tipos
ELEMENTO = T;
NODO = registro de
info: ELEMENTO;
sgte: puntero a NODO;
fin registro;
POSICION = puntero a NODO;
TDA COLA
COLA = registro de
tam: numerico;
prim, ult: POSICIÓN;
fin registro;
Implementación con listas enlazadas
◼ Operación QUEUE
Algoritmo QUEUE(C: cola, X: ELEMENTO, resp: lógico) es
temp: POSICION;
INICIO
Llena?(C,resp);
si resp = cierto entonces
Escribir “Cola llena”;
resp := falso;
sino {la cola no está llena, por lo que procedemos a añadir el elemento}
Obtener(temp);
temp →.info := X;
temp→.sgte := nil; {porque va a ser el último}
Vacía?(C,resp);
si resp = cierto entonces {será el primero}
C.prim := temp;
sino C.ult→.sgte := temp; {será el siguiente al último}
finsi;
C.ult := temp; {porque es el nuevo último elemento}
C.longitud := C.longitud + 1; {pues ahora hay un elemento más en la cola}
finsi;
FIN
TDA COLA
Implementación con listas enlazadas
◼ Operación DEQUEUE
Algoritmo DEQUEUE(C: cola, X: ELEMENTO, resp: lógico) es
temp: POSICION;
tam: numérico;
INICIO
Vacía?(C,resp);
si resp = cierto entonces
Escribir “Cola vacía”;
resp := falso;
sino
temp := C.prim;
E := temp→.info;
Tamaño(C,tam);
si tam = 1 entonces
C.ult := nil;
finsi;
C.prim := temp→.sgte; {si sólo había un elemento, será nil}
Liberar(temp);
C.longitud := C.longitud -1;
finsi;
FIN
TDA COLA
Implementación con vectores
◼ Si el principio de la cola es fijo en la primera posición del vector y el final es
variante para eliminar un elemento de la cola hay que desplazar todos los
demás una posición (Dequeue() es ineficiente).
◼ Si principio y final de la cola son variantes, no hacen falta desplazamientos.
◼ Problema: la cola puede desbordarse teniendo celdas libres.
TDA COLA
Implementación con vectores
◼ Solución: VECTOR CIRCULAR cuando algún índice llega al final, vuelve al
comienzo del vector
TDA COLA
Para saber si la cola está llena o
vacía, su tamaño se controla con el
campo tam del registro
◼ Definición de tipos
ELEMENTO = T;
COLA = registro de
prim, ult, tam: numérico;
arreglo: vector[1..MAX] de
ELEMENTO;
finregistro;
Implementación con vectores
◼ Operación QUEUE
Algoritmo QUEUE(C: COLA, X: ELEMENTO, resp: lógico) es
INICIO
Llena?(C,resp);
si resp = cierto entonces {la cola está llena}
Escribir “Cola llena”;
resp := falso;
sino {la cola no está llena, por lo que procedemos a añadir el elemento}
C.ult := (C.ult + 1) mod MAX; {hacemos que ult avance de forma circular}
C.arreglo[C.ult] := X;
C.tam := C.tam +1; {pues ahora hay un elemento más en la cola}
finsi;
FIN
TDA COLA
Implementación con vectores
◼ Operación Dequeue
Algoritmo DEQUEUE(C: COLA, X: ELEMENTO, resp: lógico) es
INICIO
Vacía?(C,resp);
si resp = cierto entonces {la cola está vacía}
Escribir “Cola vacía”;
resp := falso;
sino {hay al menos un elemento}
X := C.arreglo[C.prim];
C.prim := (C.prim + 1) mod MAX;
C.longitud := C.longitud -1;
finsi;
FIN
TDA COLA
Aplicaciones de las colas
Principalmente: gestión de recursos
◼ Sistemas de tiempo compartido: los recursos (CPU, memoria, …) se
asignan a los procesos que están en cola de espera en el orden en el
que fueron introducidos.
◼ Colas de impresión: al intentar imprimir varios documentos a la vez o la
impresora está ocupada, los trabajos se almacenan en una cola según
el orden de llegada.
◼ Simulación por computadora de situaciones reales: una cola de clientes
en un supermercado o el tiempo de espera para ser atendidos por un
operador de una línea telefónica.
TDA COLA

Contenu connexe

Similaire à Colas Dennis Escobar Salazar.pdf

Similaire à Colas Dennis Escobar Salazar.pdf (20)

2- TDA Listas
2- TDA Listas2- TDA Listas
2- TDA Listas
 
Estructura dedatos
Estructura dedatosEstructura dedatos
Estructura dedatos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
10 colas1 t2018
10 colas1 t201810 colas1 t2018
10 colas1 t2018
 
Ejercicios pilas y_colas
Ejercicios pilas y_colasEjercicios pilas y_colas
Ejercicios pilas y_colas
 
Pilas Dennis Escobar Salazar.pdf
Pilas Dennis Escobar Salazar.pdfPilas Dennis Escobar Salazar.pdf
Pilas Dennis Escobar Salazar.pdf
 
Colas
ColasColas
Colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Operaciones con colas
Operaciones con colasOperaciones con colas
Operaciones con colas
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
Practica 3
Practica  3Practica  3
Practica 3
 
Evidencia unidad 1
Evidencia unidad 1Evidencia unidad 1
Evidencia unidad 1
 
Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedio
 
Pilas colas
Pilas colasPilas colas
Pilas colas
 
PILAS
PILASPILAS
PILAS
 
colasEjeRe_1_2022.pdf
colasEjeRe_1_2022.pdfcolasEjeRe_1_2022.pdf
colasEjeRe_1_2022.pdf
 
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
Aedii pilas colas_y_recursividad_teoria_sem07_a_sem10
 
S6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colasS6-EDD-3.2 Pilas y colas
S6-EDD-3.2 Pilas y colas
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 

Dernier

INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 

Dernier (9)

INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 

Colas Dennis Escobar Salazar.pdf

  • 1. Pilas y Colas Dennis Escobar Salazar Ampliación de informática
  • 2. Índice ◼ TDA Cola ◼ Definición y operaciones básicas ◼ Operaciones e implementación ◼ Aplicaciones
  • 3. TDA COLA Def: una cola es una lista ordenada de elementos en la que todas las inserciones se realizan por un extremo (frente o principio) y las supresiones se realizan por el otro (final). Definición Estructura FIFO (First In First Out): “primero en entrar primero en salir”
  • 4. Operaciones básicas ◼ QUEUE: encolar, meter ◼ DEQUEUE: desencolar, sacar TDA COLA
  • 5. Operaciones ◼ Crear_cola(C: cola, ok: lógico) ◼ Borrar_cola(C: cola, ok: lógico) ◼ Vacía?(C: cola, resp: lógico) ◼ Llena?(C: cola, resp: lógico) ◼ Queue(C: cola, X: elemento, resp: lógico) ◼ Dequeue(C: cola, X: elemento, resp: lógico) ◼ Tamaño(C: cola, N: numérico) TDA COLA
  • 6. Implementación con listas enlazadas ◼ Definición de tipos ELEMENTO = T; NODO = registro de info: ELEMENTO; sgte: puntero a NODO; fin registro; POSICION = puntero a NODO; TDA COLA COLA = registro de tam: numerico; prim, ult: POSICIÓN; fin registro;
  • 7. Implementación con listas enlazadas ◼ Operación QUEUE Algoritmo QUEUE(C: cola, X: ELEMENTO, resp: lógico) es temp: POSICION; INICIO Llena?(C,resp); si resp = cierto entonces Escribir “Cola llena”; resp := falso; sino {la cola no está llena, por lo que procedemos a añadir el elemento} Obtener(temp); temp →.info := X; temp→.sgte := nil; {porque va a ser el último} Vacía?(C,resp); si resp = cierto entonces {será el primero} C.prim := temp; sino C.ult→.sgte := temp; {será el siguiente al último} finsi; C.ult := temp; {porque es el nuevo último elemento} C.longitud := C.longitud + 1; {pues ahora hay un elemento más en la cola} finsi; FIN TDA COLA
  • 8. Implementación con listas enlazadas ◼ Operación DEQUEUE Algoritmo DEQUEUE(C: cola, X: ELEMENTO, resp: lógico) es temp: POSICION; tam: numérico; INICIO Vacía?(C,resp); si resp = cierto entonces Escribir “Cola vacía”; resp := falso; sino temp := C.prim; E := temp→.info; Tamaño(C,tam); si tam = 1 entonces C.ult := nil; finsi; C.prim := temp→.sgte; {si sólo había un elemento, será nil} Liberar(temp); C.longitud := C.longitud -1; finsi; FIN TDA COLA
  • 9. Implementación con vectores ◼ Si el principio de la cola es fijo en la primera posición del vector y el final es variante para eliminar un elemento de la cola hay que desplazar todos los demás una posición (Dequeue() es ineficiente). ◼ Si principio y final de la cola son variantes, no hacen falta desplazamientos. ◼ Problema: la cola puede desbordarse teniendo celdas libres. TDA COLA
  • 10. Implementación con vectores ◼ Solución: VECTOR CIRCULAR cuando algún índice llega al final, vuelve al comienzo del vector TDA COLA Para saber si la cola está llena o vacía, su tamaño se controla con el campo tam del registro ◼ Definición de tipos ELEMENTO = T; COLA = registro de prim, ult, tam: numérico; arreglo: vector[1..MAX] de ELEMENTO; finregistro;
  • 11. Implementación con vectores ◼ Operación QUEUE Algoritmo QUEUE(C: COLA, X: ELEMENTO, resp: lógico) es INICIO Llena?(C,resp); si resp = cierto entonces {la cola está llena} Escribir “Cola llena”; resp := falso; sino {la cola no está llena, por lo que procedemos a añadir el elemento} C.ult := (C.ult + 1) mod MAX; {hacemos que ult avance de forma circular} C.arreglo[C.ult] := X; C.tam := C.tam +1; {pues ahora hay un elemento más en la cola} finsi; FIN TDA COLA
  • 12. Implementación con vectores ◼ Operación Dequeue Algoritmo DEQUEUE(C: COLA, X: ELEMENTO, resp: lógico) es INICIO Vacía?(C,resp); si resp = cierto entonces {la cola está vacía} Escribir “Cola vacía”; resp := falso; sino {hay al menos un elemento} X := C.arreglo[C.prim]; C.prim := (C.prim + 1) mod MAX; C.longitud := C.longitud -1; finsi; FIN TDA COLA
  • 13. Aplicaciones de las colas Principalmente: gestión de recursos ◼ Sistemas de tiempo compartido: los recursos (CPU, memoria, …) se asignan a los procesos que están en cola de espera en el orden en el que fueron introducidos. ◼ Colas de impresión: al intentar imprimir varios documentos a la vez o la impresora está ocupada, los trabajos se almacenan en una cola según el orden de llegada. ◼ Simulación por computadora de situaciones reales: una cola de clientes en un supermercado o el tiempo de espera para ser atendidos por un operador de una línea telefónica. TDA COLA