24
19/04/2018 1 Facultad de Informática Culiacán Tema: COLAS( Queue ) Instructor: MC. Gerardo Gálvez Gámez Abril de 2018 UNIVERSIDAD AUTÓNOMA DE SINALOA Colas FIUAS Temas Colas Definición. Características. Representación. Utilización. Estados de una estructura Cola. Tipos de Colas y Operaciones que se pueden realizar. Clases para la implementación de la estructura Cola. Prácticas y resolución de problemas.

Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

1

Facultad de Informática Culiacán

Tema: COLAS(Queue )

Instructor: MC. Gerardo Gálvez Gámez

Abril de 2018

UNIVERSIDAD AUTÓNOMA DE SINALOA

Colas • FIUAS

Temas

• Colas

▫ Definición.

▫ Características.

▫ Representación.

▫ Utilización.

▫ Estados de una estructura Cola.

▫ Tipos de Colas y Operaciones que

se pueden realizar.

▫ Clases para la implementación

de la estructura Cola.

▫ Prácticas y resolución de problemas.

Page 2: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

2

Colas • FIUAS

Definición de Cola

▫ Constituye una estructura lineal de datos en laque los nuevos elementos se introducen por unextremo y los ya existentes se eliminan por elotro. (Cairo)

• Es una colección de elementos homogéneosdispuestos en orden tal que se recuperan enigual orden a como se introdujeron.

• Reciben el nombre de estructuras FIFO(First-In, First-Out: primero en entrar,primero en salir).

Colas • FIUAS

Clasificación de Colas

Cola Lineal

Cola Circular

Doble Cola

Page 3: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

3

Colas • FIUAS

Características de la Cola

• Es una lista de elementos en la que éstos seintroducen por un extremo y se eliminan por otro.

• Los elementos se eliminan en el mismo orden en elque se insertaron.

• Por lo tanto el primer elemento que entra a la colaserá el primero en salir.

• El único elemento accesible es el primero.

Colas • FIUAS

Representación de Colas

• Mediante el uso de:

▫ Arreglos.

▫ Listas Enlazadas.

▫ Tipo de Objeto del

Lenguaje C# y Java

(Queue ).

122 222 333 ...

1 2 3

FRENTE FINAL

MÁX

122

...

222

333

1

2

3

FRENTE

FINAL

MÁX

Page 4: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

4

Colas • FIUAS

Utilización de Colas

Las Colas suelen emplearse en los siguientes contextos:

1. Personas esperando para usar un teléfono público (la primerapersona de la cola será la primera que use el teléfono).

2. Personas que esperan para ser atendidas en la caja de unbanco (la primera persona de la cola será la primera en seratendida).

3. Autos que esperan el cambio de luz de un semáforo en rojo.

4. Niños que esperan para subir a un juego mecánico.

5. Control de Impresiones.- Cuando hay una sola impresorapara atender a varios usuarios.

6. Sistemas de tiempo compartido. Varios usuarios compartenciertos recursos, como CPU y memoria de la computadora.

Colas • FIUAS

Page 5: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

5

Colas • FIUAS

Operaciones

• Insertar un elemento (se llevarán a cabo por el FINAL de la cola).

• Eliminar un elemento (se harán por el FRENTE).

• Auxiliares:▫ Cola Vacía (se presenta al intentar

eliminar).▫ Cola Llena (se presenta al tratar

insertar).▫ Limpiar Cola.▫ Cola Con Elementos.▫ Próximo Elemento en Salir.

Entra

Sale

Final

Frente

Colas • FIUAS

Estados de una Cola

Cola Llena Con Algunos Elementos

Cola Vacía

122

...

222

333

1

2

3

FRENTE

MÁXFINAL 999

a)

122

...

222

333

MÁX

1

2

3

FRENTE

FINAL

b)

...

c)

MÁX

1

2

3

FRENTE = FINAL = 0

Page 6: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

6

Colas • FIUAS

Clases para la implementación de

Colas Lineal

• Utilizando arreglos.

1.Debe definirse un Tamaño Máximo para la cola.2.Contar con una variable que guarde la posición del

primer elemento de la cola (FRENTE).3.Contar con una variable que guarde la posición del

último elemento de la cola (FINAL).

• Mediante Objetos de C#.

▫ Queue

Colas • FIUAS

Diseño de

la clase Cola Lineal

ColaLineal

- [ ]Datos: int- Frente:int- Final:int-Tamaño:int- Mensaje:string- NumeroError:int

+Insertar(pDato:int):void+Eliminar():int+LimpiarCola():void+ProximoElemento():int+ColaConElementos():bool.ColaVacia():bool-ColaLlena():bool

Page 7: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

7

Colas • FIUAS

Estado Inicial de la Cola (Vacía)

Frente

Final

0

8

7

6

5

4

3

2

1

Colas • FIUAS

Insertar el Primer Elemento

10Frente

Final

0

Elemento=10

8

7

6

5

4

3

2

1

Page 8: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

8

Colas • FIUAS

Insertar el Segundo Elemento

20

10Frente

Final

0

Elemento=20

8

7

6

5

4

3

2

1

Colas • FIUAS

Insertar el Tercer Elemento

30

20

10Frente

Final

0

Elemento=30

8

7

6

5

4

3

2

1

Page 9: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

9

Colas • FIUAS

Insertar el ultimo Elemento

70

60

50

40

30

20

10Frente

Final

0

Elemento=80

Nota: Cuando Final ==Tamaño de Cola, la Cola alcanza el estado de Cola llena

Tamaño=8

8

7

6

5

4

3

2

1

Colas • FIUAS

Insertar el ultimo Elemento

80

70

60

50

40

30

20

10Frente

Final

0

Elemento=80

Nota: Cuando Final ==Tamaño de Cola, la Cola alcanza el estado de Cola llena

Tamaño=8

8

7

6

5

4

3

2

1

Page 10: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

10

Colas • FIUAS

Algoritmo propuesto para Insertar

PUBLICO SINVALOR Insertar(ENTERO pDato)

INICIO

//Se verifica que exista espacio libre en la Cola

SI Existe espacio en Cola ENTONCES

Incrementar el Apuntador Final en 1

Insertar el dato en la cola

SI_NO

Indicar un mensaje de “Cola Llena”

FIN_SI

FIN

Lógica de la operación :Se realiza por el final

Colas • FIUAS

Eliminar Elemento

80

70

60

50

40

30

20

10Frente

Final

0

Lógica de la operación: Se realiza por el frente 8

7

6

5

4

3

2

1

Page 11: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

11

Colas • FIUAS

Eliminar Elemento

80

70

60

50

40

30

20

Frente

Final

0

8

7

6

5

4

3

2

1

Colas • FIUAS

Eliminar Elemento

80

70

60

50

40

30

Frente

Final

0

8

7

6

5

4

3

2

1

Page 12: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

12

Colas • FIUAS

Eliminar Elemento

80

70

60

50

40

Frente

Final

0

8

7

6

5

4

3

2

1

Colas • FIUAS

Eliminar Elemento

80

Frente

Final

0

8

7

6

5

4

3

2

1

Page 13: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

13

Colas • FIUAS

Eliminar el ultimo Elemento

Frente

Final

0

Nota: En este momento la

estructura Cola, alcanza el Estado de Cola Vacía?

8

7

6

5

4

3

2

1

Lógica de la operación: Se realiza por el frente

Colas • FIUAS

Algoritmo propuesto para Eliminar

PUBLICO ENTERO ELIMINAR()

INICIO

//Verificar que existan elementos en la Cola

SI Existen Elementos en la Cola ENTONCES

Incrementar el Apuntador Frente en 1

Eliminar el dato en la cola

SI_NO

Indicar un mensaje de “Cola Vacía”

FIN_SI

FIN // del Método

Page 14: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

14

Colas • FIUAS

Actividades para el Alumno:

Elaborar los algoritmos para cada una de lassiguientes operaciones restantes de la EstructuraCola.

▫ Cola Vacía (se presenta al intentar eliminar).▫ Cola Llena (se presenta al tratar insertar).

▫ Limpiar Cola.

▫ Cola Con Elementos.

▫ Próximo Elemento en Salir.

Prácticas

Resolución de problemas

utilizando la Estructura Colas

Lineal

Page 15: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

15

Colas • FIUAS

Proyectos:

Elaboré un proyecto gráfico, utilizando ellenguaje java y el IDE NetBeans, tal quepermita invocar las distintas operacionesde una estructura cola lineal, al mismotiempo que muestre gráficamente elestado de la estructura en pantalla.

Cola Circular

Page 16: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

16

Colas • FIUAS

Colas Circulares

• Constituyen unaestructura de datoslineal en la cual elsiguiente elementodel último en realidades el primero.

• De esta forma seutiliza de maneramás eficiente lamemoria de lacomputadora.

Colas • FIUAS

Cola Circular

• Las colas lineales tienen un grave problema:

▫ Las extracciones sólo pueden realizarse por un extremo

▫ Puede llegar un momento en que el apuntador Final, sea igual al máximo número de elementos en la cola

▫ Siendo que al Frente de la misma existan lugares vacíos, y

▫ Al insertar un nuevo elemento mandará un error de cola llena.

Page 17: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

17

Colas • FIUAS

Ejemplo de Espacios Disponibles

80

70

60

50

40

30

Frente

Final

-1

Se realiza por el frente

7

6

5

4

3

2

1

0

Colas • FIUAS

Cola Circular

• Para solucionar el problema de desperdicio dememoria se implementaron las colascirculares, en las cuales existe un apuntadordesde el último elemento al primero de lacola.

• Las condiciones para este tipo de estructurason:

▫ Cola Llena.- cuando se realice una inserción.

▫ Cola Vacía.- cuando se requiera de una extracciónen la cola.

Page 18: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

18

Colas • FIUAS

Operaciones

• InsertarColaCircula

• EliminarColaCircula

▫ Actividad para el alumno:

Elaborar los Algoritmos correspondientes a las Operaciones Anteriores.

Pág. 99 bibliografía: OSVALDO CAIRO

Colas • FIUAS

Ejemplo de inserción

PP ZZ KK TT VV RR

0 1 2 3 4 5 6 7

FINAL FRENTE

COLA CIRCULAR

ZZ KK TT VV RR

0 1 2 3 4 5 6 7

FRENTE FINAL

COLA CIRCULAR

Page 19: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

19

Colas • FIUAS

Ejemplos de Cola Llena

PP AA GG ZZ KK TT VV RR

0 1 2 3 4 5 6 7

FINAL FRENTE

COLA CIRCULAR

BB AA ZZ KK TT VV RR ZZ

-1 0 1 2 3 4 5 6 7

FRENTE FINAL

COLA CIRCULAR SI Frente ==-1 AND Final ==Tamaño-1

SI Final == Frente

Colas • FIUAS

Ejemplo de Eliminación

PP RR

0 1 2 3 4 5 6 7

FINAL FRENTE

COLA CIRCULAR

KK TT VV RR

0 1 2 3 4 5 6 7

FRENTE FINAL

COLA CIRCULAR Se incrementa Frente y se elimina el dato

Page 20: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

20

Colas • FIUAS

Cola Vacía

PP dd gg

0 1 2 3 4 5 6 7

FINAL FRENTE

COLA CIRCULAR

Se incrementa Frente y se elimina el dato

SI al Eliminar el Frente alcanza a FinalHacer que Frente y Final = -1

Colas • FIUAS

Diseño de

la clase ColaCircularColaCircular

- [ ]arreglo: int- Frente:int- Final:int-Tamaño:int- mensaje:string- numeroerror:int

+Insertar(Dato:int):void+Eliminar():int+LimpiarCola():void+ProximoElemento():int+ColaConElementos():bool.ColaVacia():bool-ColaLlena():bool

Page 21: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

21

Doble Cola

Bicola

Colas • FIUAS

Doble Cola

• Es una generalización de una estructura de cola simple.

• Los elementos pueden ser insertados o eliminados por cualquiera de los extremos.

• Se pueden insertar y eliminar valores tanto por el FRENTE como por el FINAL de la cola

1 2 3 MÁX

DOBLE COLAFRENTE FINAL

Page 22: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

22

Colas • FIUAS

Variantes de dobles colas• Doble cola con entrada restringida.- Permite que las

eliminaciones puedan hacerse por cualquiera de los dos Extremos, mientras que las inserciones sólo por el FINAL de la cola.

• Doble cola con salida restringida.- Permite que las inserciones puedan hacerse por cualquiera de los dos Extremos, mientras que las eliminaciones sólo por el FRENTE de la cola

1 2 3 MÁX

DOBLE COLAFRENTE FINAL

1 2 3 MÁX

DOBLE COLAFRENTE FINAL

Colas • FIUAS

Operaciones

• Insertar

• Eliminar

Page 23: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

23

Colas • FIUAS

Actividad

▫ Elaborar los Algoritmoscorrespondientes a lasOperaciones Anteriores, paracada tipo de doble cola.

Colas • FIUAS

Bibliografía

ESTRUCTURAS DE DATOS

De: OSVALDO CAIRO

Editorial: MCGRAW-HILL INTERAMERICANA

ISBN: 9701059085

Edición: 3ª

Año: 2006

No. de páginas: 467

Idioma: ESPAÑOL

País: MEXICO

Page 24: Tema: COLAS Queuegalvez.milibreta.com.mx/UAS/Estructura de Datos/5.-Colas.pdf · Colas • FIUAS Definición de Cola Constituye una estructura lineal de datos en la que los nuevos

19/04/2018

24

Colas • FIUAS

Preguntas?

FIN de Unidad