TADsListas Pila y Cola Ana Lilia LaureanoCruces Universidad

  • Slides: 37
Download presentation
TADs_Listas: Pila y Cola Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana-Azcapotzalco TADs_Listas: Pila y Cola:

TADs_Listas: Pila y Cola Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana-Azcapotzalco TADs_Listas: Pila y Cola: Ana Laureano / UAM-A

Listas … • Las lista es un conjunto de elementos del mismo tipo donde

Listas … • Las lista es un conjunto de elementos del mismo tipo donde pueden considerarse extracciones e inserciones. • Cuando las listas cuentan con acceso restringido se convierten en especializaciones. Tal es el caso de las listas tipo Cola y Pila TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 2

Especificación del TAD Lista con base en sus operaciones … • Incicializadoras: • Inic.

Especificación del TAD Lista con base en sus operaciones … • Incicializadoras: • Inic. Lista: crea e inicializa una estructura Lista vacía. • Constructoras: • Ins. Lista: inserta un elemento de tipo elem en una posición pos de la estructura Lista. • Anx. Lista: inserta un elemento de tipo elem al final de la estructura Lista. TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 3

 • Simplificadoras: • Elim. Lista: elimina un elemento (elem), dada su posición (pos).

• Simplificadoras: • Elim. Lista: elimina un elemento (elem), dada su posición (pos). • Anul. Lista: Limpia la estructura Lista, regresando un lista vacía. TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 4

TADs … • Analizadoras: • Info. Lista: devuelve el el valor de elemento (elem);

TADs … • Analizadoras: • Info. Lista: devuelve el el valor de elemento (elem); dada su posición (pos) • Long. Lista: nos proporciona la longitud de la Lista • Llena. Lista: valor verdadero si esta llena, falso caso contrario (memoria Estática) • Las estructuras de datos de los TADs pueden ser diseñadas considerando memoria estática o memoria dinámica. TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 5

Memoria dinámica … Lista Info Sig Lista tonta Info Sig NIL Lista. Sig TADs_Listas:

Memoria dinámica … Lista Info Sig Lista tonta Info Sig NIL Lista. Sig TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 6

Memoria dinámica … q p 2 5 p p q q p q q

Memoria dinámica … q p 2 5 p p q q p q q 2 p 2 2 TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 7

Funcionalidad del TAD Lista considerando memoria estática … • DOMINIO - CODOMINIO • •

Funcionalidad del TAD Lista considerando memoria estática … • DOMINIO - CODOMINIO • • Inic. Lista ( ) Lista Ins. Lista (Lista, Pos, Elemento) Lista Anx. Lista (Lista, Elemento) Lista Elim. Lista (Lista, Pos) Lista Anul. Lista (Lista) Lista Info. Lista (Lista, Pos) Elemento Long. Lista (Lista) Entero Llena. Lista (Lista) Lógico TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 8

Funcionalidad del TAD Lista considerando memoria dinámica … • DOMINO - CODOMINIO • •

Funcionalidad del TAD Lista considerando memoria dinámica … • DOMINO - CODOMINIO • • Inic. Lista ( ) Lista Ins. Lista ( Lista, Elemento) Lista Anx. Lista ( Lista, Elemento) Lista Elim. Lista ( Lista) Lista Anul. Lista ( Lista) Lista Info. Lista ( Lista) Elemento Long. Lista ( Lista) Entero Existen. Elems ( Lista) Lógico TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 9

Con memoria dinámica … • En este caso se puede considerar que la operación

Con memoria dinámica … • En este caso se puede considerar que la operación Ins. Lista sea utilizada para insertar a un elemento en la primera posición y que Llena. Lista se convierta en Existen. Elems dado que se utiliza memoria dinámica. Por otro lado Elim. Lista e Info. Lista debe especificarse si es el primero o último elemento. TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 10

Formalización … • Oper_Inic. Lista: • { Pre. Cond: Verdad } • { Post.

Formalización … • Oper_Inic. Lista: • { Pre. Cond: Verdad } • { Post. Cond: Lista: ARRAY [ 1. . Tam] 0; N 1/ N Tam} • { Post. Cond: Lista NIL } • Oper_Ins. Lista: • • { Pre. Cond: Lista AND 1 ≤ pos ≤ N } { Post. Cond: Elemento AND N = N - 1} { Pre. Cond: Lista ≠ NIL } { Post. Cond: Elemento, IN Lista} TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 11

Formalización … • Oper_Anx. Lista: • { Pre. Cond: Lista AND 1 ≤ pos

Formalización … • Oper_Anx. Lista: • { Pre. Cond: Lista AND 1 ≤ pos ≤ Tam } • { Post. Cond: Elemento AND N = N - 1} • { Pre. Cond: Lista ≠ NIL } • { Post. Cond: Elemento AND Lista. Sig = NIL AND Ultimo Lista} • Oper_Elim. Lista: • { Pre. Cond: Lista AND 1 ≤ pos ≤ Tam } • { Post. Cond: Elemento AND N = N + 1} • { Pre. Cond: Lista ≠ NIL } • { Post. Cond: Elemento / Inicio. Info / Ultimo. Info } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 12

Formalización … • Oper_Anul. Lista: • { Pre. Cond: Lista } • { Post.

Formalización … • Oper_Anul. Lista: • { Pre. Cond: Lista } • { Post. Cond: pos = 1; Lista [ 1. . Tam] 0} • { Pre. Cond: Lista ≠ NIL } • { Post. Cond: Lista = NIL} • Oper_Info. Lista: • { Pre. Cond: Lista AND 1 ≥ pos ≤ Tam } • { Post. Cond: Elem} • { Pre. Cond: Lista ≠ NIL } • { Post. Cond: Elem Inicio. Info / Ultimo. Info } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 13

Formalización … • Oper_Long. Lista: • • { Pre. Cond: Lista AND 1 ≤

Formalización … • Oper_Long. Lista: • • { Pre. Cond: Lista AND 1 ≤ N ≤ Tam } { Post. Cond: N} { Pre. Cond: Lista ≠ NIL } { Post. Cond: N } • Oper_Existen. Elems: • { Pre. Cond: Lista AND 1 ≤ N ≤ Tam } • { Pre. Cond: Lista ≠ NIL } • { Post. Cond: TRUE } • Llena. Lista: • { Pre. Cond: Lista AND 1 ≤ N ≤ Tam } • { Pre. Cond: no tiene sentido con memoria dinámica } • { Post. Cond: TRUE } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 14

La Pila … • La pila es una lista de acceso restringido (especialización), las

La Pila … • La pila es una lista de acceso restringido (especialización), las inserciones y las salidas son por el mismo extremo. TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 15

Especificación del TAD Pila con base en sus operaciones … • Incicializadoras: • Inic.

Especificación del TAD Pila con base en sus operaciones … • Incicializadoras: • Inic. Pila: crea e inicializa una estructura Pila vacía. • Constructoras: • Ins. Pila: inserta un elemento de tipo elem en la Pila. (Tope de la Pila) TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 16

Especificación del TAD Pila con base en sus operaciones … • Simplificadoras: • Elim.

Especificación del TAD Pila con base en sus operaciones … • Simplificadoras: • Elim. Pila: elimina un elemento (elem) de la Pila (el del Tope). • Anul. Pila: Limpia la estructura Pila, regresando una estructura Pila vacía. • Analizadoras: • Tope. Pila: devuelve el el valor de elemento (elem); siempre el del Tope • Long. Pila: nos proporciona la longitud de la Pila • Llena. Pila: valor verdadero si esta llena, falso caso contrario (memoria Estática) TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 17

Funcionalidad del TAD Pila considerando memoria estática … • • Inic. Pila ( )

Funcionalidad del TAD Pila considerando memoria estática … • • Inic. Pila ( ) Pila Ins. Pila (Pila, Elemento) Pila Elim. Pila (Pila) Pila Anul. Pila (Pila) Pila Tope. Pila (Pila) Pila Long. Pila (Pila) Entero Llena. Pila (Pila) Lógico TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 18

Funcionalidad del TAD Pila considerando memoria dinámica … • • Inic. Pila ( )

Funcionalidad del TAD Pila considerando memoria dinámica … • • Inic. Pila ( ) Pila Ins. Pila ( Pila, Elemento) Pila Elim. Pila ( Pila) Pila Anul. Pila ( Pila) Pila Tope. Pila ( Pila) Elemento Long. Pila ( Pila) Entero Llena. Pila ( Pila) Lógico TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 19

Formalización … • Inic. Pila: • { Pre. Cond: Verdad } • { Post.

Formalización … • Inic. Pila: • { Pre. Cond: Verdad } • { Post. Cond: Pila: ARRAY [ 1. . Tam] 0 } • { Post. Cond: Pila } • Ins. Pila: • • { Pre. Cond: Pila AND LLena. Pila } { Post. Cond: Elemento AND Tope = Tope - 1} { Pre. Cond: Tope ≠ NIL } { Post. Cond: Tope. Info = Elemento} TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 20

Formalización … • Elim. Pila: • { Pre. Cond: Pila } • { Post.

Formalización … • Elim. Pila: • { Pre. Cond: Pila } • { Post. Cond: Elemento AND Tam = N + 1} • { Pre. Cond: Pila ≠ NIL } • { Post. Cond: Elemento / Inicio = Inicio. sig / Penultimo = Penultimo. Sig } • Anul. Pila: • { Pre. Cond: Pila AND (1 ≥ Tope ≤ Tam) } • { Post. Cond: Tope = Tam + 1} • { Pre. Cond: Pila ≠ NIL } • { Post. Cond: Pila = NIL} TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 21

Formalización … • Tope. Pila: • • { Pre. Cond: Pila} { Post. Cond:

Formalización … • Tope. Pila: • • { Pre. Cond: Pila} { Post. Cond: Elemento = Pila [tope]} { Pre. Cond: Lista ≠ NIL } { Post. Cond: Elem Inicio. Info / Ultimo. Info } • Long. Pila: • • { Pre. Cond: Pila AND 1 ≥ N ≤ Tam } { Post. Cond: N} { Pre. Cond: Lista ≠ NIL } { Post. Cond: N } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 22

Formalización … • Llena. Pila: • { Pre. Cond: Lista AND 1 ≥ N

Formalización … • Llena. Pila: • { Pre. Cond: Lista AND 1 ≥ N ≤ Tam } • { no tiene sentido con memoria dinámica } • { Post. Cond: TRUE } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 23

La formalización de las operaciones del TAD Pila se desarrollaran con base en las

La formalización de las operaciones del TAD Pila se desarrollaran con base en las operaciones de LISTA … • Inic. Pila: • Inic. Lista (Lista) • Ins. Pila: • Ins. Lista ( Elemento, pos = 1, Lista) • Elim. Pila: • Post. Cond: Elim. Lista (Lista, pos =1) • Anul. Pila: • Anul. Lista (Lista) TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 24

La formalización de las operaciones del TAD Pila se desarrollaran con base en las

La formalización de las operaciones del TAD Pila se desarrollaran con base en las operaciones de LISTA … • Tope. Pila: • Info. Lista (Lista, pos = 1) • Long. Pila: • Long. Lista (Lista) • Llena. Pila: • Llena. Lista (Lista) TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 25

La Cola … • La cola es una lista de acceso restringido (especialización) donde

La Cola … • La cola es una lista de acceso restringido (especialización) donde todas las inserciones son por un extremo y las extracciones por otro. TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 26

Especificación del TAD Cola con base en sus operaciones … • Incicializadoras: • Inic.

Especificación del TAD Cola con base en sus operaciones … • Incicializadoras: • Inic. Cola: crea e inicializa una estructura Cola vacía. • Constructoras: • Ins. Cola: inserta un elemento de tipo elem en la Cola. (por defecto será en el último lugar) TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 27

Especificación del TAD Cola con base en sus operaciones … • Simplificadoras: • Elim.

Especificación del TAD Cola con base en sus operaciones … • Simplificadoras: • Elim. Cola: elimina un elemento (elem) de la Cola (por defecto será el primero). • Anul. Cola: Limpia la estructura Cola, regresando una estructura Cola vacía. • Analizadoras: • Info. Cola: devuelve el el valor de elemento (elem); siempre el primero. • Long. Cola: nos proporciona la longitud de la Cola • Llena. Cola: valor verdadero si esta llena, falso caso contrario (memoria Estática) TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 28

Funcionalidad del TAD Cola considerando memoria estática … • • Inic. Cola ( )

Funcionalidad del TAD Cola considerando memoria estática … • • Inic. Cola ( ) Cola Ins. Cola (Cola, Elemento) Cola Elim. Cola (Cola) Cola Anul. Cola (Cola) Cola Info. Cola (Cola) Elemento Long. Cola (Cola) Entero Llena. Cola (Cola) Lógico Vacia. Cola (Cola) Lógico TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 29

Anatomía de la estructura Cola. Circular … Inicio 1, Extremo Long. Max 1 TADs_Listas:

Anatomía de la estructura Cola. Circular … Inicio 1, Extremo Long. Max 1 TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 30

La estructura Vacía … Extremo Inicio TADs_Listas: Pila y Cola: Ana Laureano / UAM-A

La estructura Vacía … Extremo Inicio TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 31

La estructura Llena … Extremo Inicio La posición relativa de los apuntadores es la

La estructura Llena … Extremo Inicio La posición relativa de los apuntadores es la misma Cuando esta llena y cuando esta vacía TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 32

La estructura Vacía … Extremo Inicio TADs_Listas: Pila y Cola: Ana Laureano / UAM-A

La estructura Vacía … Extremo Inicio TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 33

Formalizción … • Inic. Cola: • { Pre. Cond: Verdad } • { Post.

Formalizción … • Inic. Cola: • { Pre. Cond: Verdad } • { Post. Cond: Cola: ARRAY [ 1. . Tam] 0, Inicio = 1, Extremo = Long. Max} • Ins. Cola: • { Pre. Cond: Cola LLena. Cola } • { Post. Cond: Elemento AND Extremo + 1} TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 34

Formalizción … • Elim. Cola: • { Pre. Cond: Vacia. Cola } • {

Formalizción … • Elim. Cola: • { Pre. Cond: Vacia. Cola } • { Post. Cond: Elemento AND Extremo - 1} • Anul. Cola: • { Pre. Cond: Cola} • { Post. Cond: Inic. Cola} TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 35

Formalizción … • Info. Cola: • { Pre. Cond: Cola } • { Post.

Formalizción … • Info. Cola: • { Pre. Cond: Cola } • { Post. Cond: Info. Cola [ Inicio] } • Long. Cola (Cola) Entero • { Pre. Cond: Cola } • { Post. Cond: Long. Cola | Extremo - Inicio | } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 36

 • Existe. Cola: • { Pre. Cond: Vacia. Cola } • { Post.

• Existe. Cola: • { Pre. Cond: Vacia. Cola } • { Post. Cond: Verdadero / Falso } • Llena. Cola: • { Pre. Cond: ssi Inicio = Extremo + 2 } • { Post. Cond: Verdadero } • Vacia. Cola: • { Pre. Cond: ssi Inicio = 1 AND Extremo = Long. Max } • { Post. Cond: Verdadero } TADs_Listas: Pila y Cola: Ana Laureano / UAM-A 37