tipos de datos abstractos colas
Upload: instituto-universitario-de-tecnologia-dr-federico-rivero-palacio
Post on 24-Dec-2014
6.379 views
DESCRIPTION
TRANSCRIPT
![Page 1: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/1.jpg)
10/04/23 Marbella Castañeda 1
Tipo de Dato Abstracto
COLAMarbella Castañeda
Email: [email protected]
Tipos de Datos AbstractosTDA COLA
![Page 2: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/2.jpg)
10/04/23 Marbella Castañeda 2
CONTENIDO:• Introducción• Definición y Conceptos Básicos• Especificación Sintáctica• Especificación Semántica• Representación• Implementación
Tipos de Datos AbstractosTDA COLA
![Page 3: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/3.jpg)
10/04/23 Marbella Castañeda 3
• Definición y Conceptos Básicos
Una COLA es otro tipo especial de Lista en el cual los elementos se insertan en
un extremo (el posterior) y la supresiones tienen lugar en el otro extremo denominado anterior o frente. A las Colas se les llama también Listas FIFO (first in firts out) o Listas (primero en entrar, primero en salir).
Un tipo de dato abstracto (TDA) de la familia COLA incluye a menudo las cinco operaciones que se especificarán a través de su sintáctica y semántica.
Las diferencias sustanciales con las Colas es que las inserciones se realizan en un extremo (al final o posterior) y las eliminaciones en el otro extremo (anterior o frente)
Tipos de Datos AbstractosTDA COLA
![Page 4: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/4.jpg)
10/04/23 Marbella Castañeda 4
• Especificación Sintáctica y Semántica
Para definir el objeto abstracto COLA y sus propiedades (operaciones) se describe el tipo de dato COLA independientemente de cualquier representación e implementación
Para ello es necesario definir el TDA COLA en términos de su especificación sintáctica y semántica:
Tipos de Datos AbstractosTDA COLA
![Page 5: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/5.jpg)
10/04/23 Marbella Castañeda 5
• Especificación SintácticaTipo: COLA
DOMINIO RANGO
1. COLA_VACÍA: COLA COLA
2. ES_VACÍA : COLA LÓGICO
3. ENCOLAR : COLA x ELEMENTO COLA
4. DESENCOLAR : COLA COLA
5. PRIMERO: COLA COLA
Tipos de Datos AbstractosTDA COLA
![Page 6: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/6.jpg)
10/04/23 Marbella Castañeda 6
• Especificación Semántica
Tipo: COLA
Procedimiento COLA_VACÍA (Var C:COLA);Precondición: NingunaPostcondición: C = ( )Acción: C = ( )fin;
Función ES_VACÍA (C:COLA):LÓGICO;Precondición: NingunaPostcondición: ES_VACÍA := falso o ES_VACÍA := verdadAcción: Si C = ( ) entonces ES_VACIA := verdad
Sino ES_VACIA := falsofin;
Tipos de Datos AbstractosTDA COLA
![Page 7: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/7.jpg)
10/04/23 Marbella Castañeda 7
• Especificación Semántica
Tipo: COLA
Procedimiento ENCOLAR (Var C:PILA, E:ELEMENTO);
Precondición: ninguna
Postcondición: P = (E) v P = (p1, p2,,pn,E)
Acción: Si C = ( ) entonces C = (E)
Sino Si C = (c1, c2,…,cn) entonces
C = (c1, c2,…,cn,E)
fin;
Tipos de Datos AbstractosTDA COLA
![Page 8: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/8.jpg)
10/04/23 Marbella Castañeda 8
• Especificación Semántica
Tipo: COLA
Procedimiento DESENCOLAR(Var C: COLA)
Precondición : C <> ( )
Postcondición : C = (c2,…,cn)
Acción : Si C = (c1, c2,…,cn) entonces
C = (c2,…,cn)
fin
Tipos de Datos AbstractosTDA COLA
![Page 9: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/9.jpg)
10/04/23 Marbella Castañeda 9
• Especificación Semántica
Tipo: COLA
Función PRIMERO (Var C:COLA): ELEMENTO;Precondición: C <> ( )Postcondición: PRIMERO = c1Acción:
Si C = (c1, c2,…,cn) entonces PRIMERO = c1fin;
Tipos de Datos AbstractosTDA COLA
![Page 10: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/10.jpg)
10/04/23 Marbella Castañeda 10
• Representación Interna
La representación interna para los objetos del TDA COLA, se especifica en
términos de las estructuras de datos provistas por los lenguajes de programación.
Un TDA COLA puede tener diversas representaciones como una estructura de datos estáticas y/o estructuras de datos dinámicas.
Tipos de Datos AbstractosTDA COLA
![Page 11: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/11.jpg)
10/04/23 Marbella Castañeda 11
Representación Interna con una Estructura de Datos Estática
Tipos de Datos AbstractosTDA COLA
![Page 12: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/12.jpg)
10/04/23 Marbella Castañeda 12
• Representación Interna
Seleccionemos una estructura de datos, existentes en los lenguajes de
programación que nos permita simular un TDA COLA. Seleccionemos un arreglo
para representar la COLA y los ELEMENTOS que contiene la misma son
representados por el tipo abstracto TRIANGULO. La cantidad de ELEMENTOS
que puede contener la COLA tiene un máximo de n ELEMENTOS.
Tipos de Datos AbstractosTDA COLA
![Page 13: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/13.jpg)
10/04/23 Marbella Castañeda 13
• Representación Interna
Por lo que la representación formal de este tipo se define de la siguiente manera:
TipoCOLA = registro
arreglo [1..n] de TRIANGULO;primero, ultimo : ENTERO;
fin;Var
C : COLA;
Tipos de Datos AbstractosTDA COLA
![Page 14: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/14.jpg)
10/04/23 Marbella Castañeda 14
• Representación Gráfica
Gráficamente podríamos ver la COLA C de esta forma:
1 n
Tipos de Datos AbstractosTDA COLA
Primero Último
![Page 15: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/15.jpg)
10/04/23 Marbella Castañeda 15
Tipos de Datos AbstractosTDA COLA
• Implementación
Procedimiento COLAVACÍA (Var C :COLA)
principio
C.primero := 1;
C.ultimo := n;
fin;
• Ejecución : COLAVACÍA( C)
C.Primero C.Último
N1
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 16: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/16.jpg)
10/04/23 Marbella Castañeda 16
Tipos de Datos AbstractosTDA COLA
• Implementación
Función ES_VACÍA (C :COLA) : LÓGICO
principio
Si SIG (C.ultimo) = C.primero entonces
ES_VACÍA := Verdad
Sino ES_VACÍA := Falso;
fin;
• Ejecución : ES_VACÍA (C:COLA)
N1
C.Primero C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 17: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/17.jpg)
10/04/23 Marbella Castañeda 17
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Encolar (var C:COLA, E:Elemento);
principio
Si SIG(SIG(P.ultimo)) = C.primero entonces
OVERFLOW;
Sino
principio
C.ultimo := SIG( C.ultimo);
C.arreglo [C.ultimo] := E;
fin;
fin;
• Ejecución : Encolar (C:Cola, )
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 18: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/18.jpg)
10/04/23 Marbella Castañeda 18
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Encolar (var C:COLA, E:Elemento);
principio
Si SIG(SIG(P.ultimo)) = C.primero entonces
OVERFLOW;
Sino
principio
C.ultimo := SIG( C.ultimo);
C.arreglo [C.ultimo] := E;
fin;
fin;
• Ejecución : Encolar (C:Cola, )
N1
C.PrimeroC.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 19: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/19.jpg)
10/04/23 Marbella Castañeda 19
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Encolar (var C:COLA, E:Elemento);
principio
Si SIG(SIG(P.ultimo)) = C.primero entonces
OVERFLOW;
Sino
principio
C.ultimo := SIG( C.ultimo);
C.arreglo [C.ultimo] := E;
fin;
fin;
• Ejecución: Encolar(C:COLA, )
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 20: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/20.jpg)
10/04/23 Marbella Castañeda 20
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Encolar (var C:COLA, E:Elemento);
principio
Si SIG(SIG(P.ultimo)) = C.primero entonces
OVERFLOW;
Sino
principio
C.ultimo := SIG( C.ultimo);
C.arreglo [C.ultimo] := E;
fin;
fin;
• Ejecución: Encolar(C:COLA, )
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 21: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/21.jpg)
10/04/23 Marbella Castañeda 21
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Encolar (var C:COLA, E:Elemento);
principio
Si SIG(SIG(P.ultimo)) = C.primero entonces
OVERFLOW;
Sino
principio
C.ultimo := SIG( C.ultimo);
C.arreglo [C.ultimo] := E;
fin;
fin;
• Ejecución: Encolar(Var C:COLA, )
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 22: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/22.jpg)
10/04/23 Marbella Castañeda 22
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Desencolar (var C:COLA)
principio
Si ESVACÍO( C ) entonces
UNDERFLOW
Sino
C.primero := SIG(C.primero);
fin;
• EJECUCIÓN: Desencolar(C:COLA)
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 23: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/23.jpg)
10/04/23 Marbella Castañeda 23
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Desencolar (var C:COLA)
principio
Si ESVACÍO( C ) entonces
UNDERFLOW
Sino
C.primero := SIG(C.primero);
fin;
• EJECUCIÓN: Desencolar(C:COLA)
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 24: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/24.jpg)
10/04/23 Marbella Castañeda 24
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Desencolar (var C:COLA)
principio
Si ESVACÍO( C ) entonces
UNDERFLOW
Sino
C.primero := SIG(C.primero);
fin;
• EJECUCIÓN: Desencolar(C:COLA)
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 25: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/25.jpg)
10/04/23 Marbella Castañeda 25
Tipos de Datos AbstractosTDA COLA
• ImplementaciónProcedimiento Desencolar (var C:COLA)
principio
Si ESVACÍO( C ) entonces
UNDERFLOW
Sino
C.primero := SIG(C.primero);
fin;
• EJECUCIÓN: Desencolar(C:COLA)
N1
C.Primero
C.Último
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO
![Page 26: Tipos De Datos Abstractos Colas](https://reader033.vdocuments.pub/reader033/viewer/2022061214/549ade16b4795924098b460a/html5/thumbnails/26.jpg)
10/04/23 Marbella Castañeda 26
Tipos de Datos AbstractosTDA COLA
• ImplementaciónFunción PRIMERO (C:COLA) : ENTERO;
principio
PRIMERO := C.primero;
Fin;
• Ejecución : PRIMERO (C:COLA)
N1
C.Primero
C.Último
PRIMERO
1. COLAVACÍA
2. ESVACÍA
3. ENCOLAR
4. DESENCOLAR
5. PRIMERO