La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Realizado por: Ing. Mauricio Rivera1 Colas. Realizado por: Ing. Mauricio Rivera2 ¿Qué es una Cola? Una cola es un grupo ordenado de elementos homogéneos.

Presentaciones similares


Presentación del tema: "Realizado por: Ing. Mauricio Rivera1 Colas. Realizado por: Ing. Mauricio Rivera2 ¿Qué es una Cola? Una cola es un grupo ordenado de elementos homogéneos."— Transcripción de la presentación:

1 Realizado por: Ing. Mauricio Rivera1 Colas

2 Realizado por: Ing. Mauricio Rivera2 ¿Qué es una Cola? Una cola es un grupo ordenado de elementos homogéneos en el que los nuevos elementos se añaden por un extremo (el final) y se quitan por el otro extremo (el frente). FIFO (Fisrt In, Fisrt Out) Nos preguntamos entonces cual es la función de la cola FIFO?, Para añadir un elemento accesamos el frente.

3 Realizado por: Ing. Mauricio Rivera3 Colas Con esto estaríamos diciendo que los elementos del medio son inaccesibles, siempre y cuando no usemos una estructura como un arreglo con el cual físicamente sería accesible. Ejemplo: Cola de un banco

4 Realizado por: Ing. Mauricio Rivera4 Colas Las operaciones básicas en una cola son parecidas a la de una pila las cuales son: Inicializar una cola Añadir una cola Quitar de una cola Verificar estado de la cola (vacía o llena).

5 Realizado por: Ing. Mauricio Rivera5 Comienzo de una Cola Como en el ejemplo de la librería pueden añadirse nuevos elementos a la cola, con una operación llamada InsCola (Cola,NuevoElemento). También podemos quitar elementos del frente de la cola la cual llamaremos a la operación SupCola (Cola, Elemento), que sería quitar el dato del principio de la cola y devolver su contenido en elemento.

6 Realizado por: Ing. Mauricio Rivera6 Comienzo de una Cola A diferencia de las pilas los nombres de las operaciones meter y sacar no tienen nombres Estándar. Llamándose así InsCola = Añadir o insertar, y SupCola = Quitar o Extraer Una operación útil sobre la cola es ver si esta Vacía. ColaVacia (Cola) devuelve true si cola esta vacía y false en los demás casos.

7 Realizado por: Ing. Mauricio Rivera7 Comienzo de una Cola También necesitaremos una operación para inicializar una cola a un estado vacío la cual se llamará LimpiarCola.

8 Realizado por: Ing. Mauricio Rivera8 Paquete de Colas El paquete de cola se le conoce a la estructura de datos abstracta cola y a sus funciones de acceso y Operaciones. Con esto se dará un conocimiento acerca de la implementación con las interfaces a utilizar para la creación de una cola.

9 Realizado por: Ing. Mauricio Rivera9 Paquete de Cola :Operaciones LimpiarCola (Cola) Función: Inicializa cola a un estado vacío Entrada: Cola a inicializar Precondiciones: Ninguna Salida: Cola (inicializada) Postcondiciones: Cola esta vacía. ColaVacía (Cola): Devuelve un valor Booleano Función: Indica si cola esta vacía Entrada: Cola a ser comprobada Precondiciones: Ninguna Salida: Cola Vacía (indicativo booleano) Postcondiciones: Cola vacía = (Cola esta vacía)

10 Realizado por: Ing. Mauricio Rivera10 ColaLlena (Cola): Devuelve un valor Booleano Función: Indica si cola esta llena Entrada: Cola a ser comprobada Precondiciones: Ninguna Salida: ColaLlena (indicativo booleano) Postcondiciones: Colallena = (cola esta llena) InsCola (Cola, NuevoElemento) Función: Añade un nuevo elemento al final de la cola Entrada: Cola, NuevoElemento a ser añadido Precondiciones: Hay espacio en la cola Salida: Cola (cambiada) Postcondiciones: Cola = (Cola original con NuevoElemento añadido al final) Paquete de Cola :Operaciones

11 Realizado por: Ing. Mauricio Rivera11 SupCola(Cola,ElemSuprimido) Función: Quita el elemento del frente de Cola y devuelve su valor como ElemSuprimido Entrada: Cola Precondiciones: Cola no esta vacía Salida: Cola(cmabiada) Postcondiciones: Cola = cola original con el elemento frente quitado ElemSuprimido = elemento frente de la cola original Paquete de Cola :Operaciones

12 Realizado por: Ing. Mauricio Rivera12 Implementación de Colas con arreglos Creación de un tipo de dato Cola. Const maxcola=100; Type TipoElemento = integer; TipoIndice = 1..maxCola; TipoCola = Record Elementos: array[TipoIndice] of TipoElemento; Frente: TipoIndice; Final: TipoIndice; End;

13 Realizado por: Ing. Mauricio Rivera13 Implementación paquete Colas Procedure LimpiarCola(VAR Cola: TipoCola); Begin Cola.frente:= MaxCola; Cola.final:=MaxCola; End; {Inicializa cola a estado vacío} Function ColaVacía(Cola : TipoCola):Boolean; Begin ColaVacia:=Cola.final = Cola.frente; End; {Devuelve true si la cola esta vacía}

14 Realizado por: Ing. Mauricio Rivera14 Implementación paquete Colas Function ColaLlena(Cola: TipoCola):boolean; Var sigFinal : TipoIndice; Begin if Cola.final = maxCola then SigFinal:=1; else sigFinal:=Cola.final + 1; ColaLlena := SigFinal = Cola.Frente; End; {Devuelve true si la cola esta llena} {Cola esta llena si la siguiente posición disponible del final es igual al frente de la cola}

15 Realizado por: Ing. Mauricio Rivera15 Implementación paquetes Colas Procedure InsCola(Var Cola:TipoCola;valor:TipoElemento); Begin if Cola.Final = MaxCola then Cola.Final:=1; else Cola.Final:= Cola.Final + 1; Cola.Elementos[Cola.Final]:=valor; End;

16 Realizado por: Ing. Mauricio Rivera16 Implementación Paquetes Colas Procedure SupCola(VAR Cola: TipoCola;VAR extraido: TipoElemento); Begin {Actualiza Cola.frente para acceder al frente de la cola. Cola.frente es el índice que la posición del array que precede al elemento frente de la cola, la cola puede continuar después del final del array} if Cola.Frente = MaxCola then Cola.frente:=1; else Cola.frente:=Cola.frente+1; {Asigna el elemento frente de la cola al extraido} extraido:=Cola.Elementos[Cola.Frente]; End;

17 Realizado por: Ing. Mauricio Rivera17 Ejercicio con Cola


Descargar ppt "Realizado por: Ing. Mauricio Rivera1 Colas. Realizado por: Ing. Mauricio Rivera2 ¿Qué es una Cola? Una cola es un grupo ordenado de elementos homogéneos."

Presentaciones similares


Anuncios Google