tipos de datos abstractos colas

26
07/06/22 Marbella Castañeda 1 Tipo de Dato Abstracto COLA Marbella Castañeda Email: [email protected] Tipos de Datos Abstractos TDA COLA

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Tipos De Datos Abstractos Colas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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