4_tad (2).pps
TRANSCRIPT
-
8/20/2019 4_TAD (2).pps
1/37
TADs_Listas: Pila y Cola
Ana Lilia Laureano-Cruces
Universidad AutónomaMetropolitana-Azcapotzalco
-
8/20/2019 4_TAD (2).pps
2/37
TADs_Listas: Pila y 2
Listas …
• Las lista es un conjunto de elementosdel mismo tipo donde puedenconsiderarse extracciones einserciones.
• Cuando las listas cuentan con accesorestringido se convierten enespecializaciones. Tal es el caso de laslistas tipo Cola y Pila
-
8/20/2019 4_TAD (2).pps
3/37
TADs_Listas: Pila y 3
Especificación del TAD Lista conbase en sus operaciones …
• Incicializalizadoras:• InicLista: crea e inicializa una estructura
Lista vac a.
• Constructoras:• InsLista: inserta un elemento de tipo elem
en una posición pos de la estructura Lista.• AnxLista: inserta un elemento de tipo elem
al !inal de la estructura Lista.
-
8/20/2019 4_TAD (2).pps
4/37
TADs_Listas: Pila y 4
• Simplifcadoras:• "limLista: elimina un elemento #elem$% dada su
posición #pos$.
• AnulLista: Limpia la estructura Lista% regresandoun lista vac a.
-
8/20/2019 4_TAD (2).pps
5/37
TADs_Listas: Pila y 5
TADs …
• Analizadoras:• In!oLista: devuelve el el valor de elemento #elem$&
dada su posición #pos$
• LongLista: nos proporciona la longitud de la Lista• LlenaLista: valor verdadero si esta llena% !also
caso contrario #memoria "st'tica$
• Las estructuras de datos de los TA(s puedenser dise)adas considerando memoriaestática o memoria dinámica .
-
8/20/2019 4_TAD (2).pps
6/37
TADs_Listas: Pila y 6
Memoria dinámica …
Lista
In!o *ig
↑ Lista tonta
In!o *ig +IL
Lista ↑← tonta ↑ Lista ↑ . *ig
-
8/20/2019 4_TAD (2).pps
7/37 TADs_Listas: Pila y 7
Memoria dinámica …
5
↓ p
2
↓ ,
p ∧ ← , ∧
p ← ,2
↓p ↓ ,
2
↓ ,
2
↓ p
-
8/20/2019 4_TAD (2).pps
8/37 TADs_Listas: Pila y 8
uncionalidad del TAD Listaconsiderando memoria estática …
• ( MI+I - C ( MI+I• InicLista # $ → Lista• InsLista #Lista% os% "lemento$ → Lista• AnxLista #Lista% "lemento$ → Lista• "limLista #Lista% os$ → Lista• AnulLista #Lista$ → Lista
• In!oLista #Lista% os$ → "lemento• LongLista #Lista$ → "ntero• LlenaLista #Lista$ → Lógico
-
8/20/2019 4_TAD (2).pps
9/37 TADs_Listas: Pila y 9
uncionalidad del TAD Listaconsiderando memoria dinámica …
• ( MI+ - C ( MI+I• InicLista # $ → ∧ Lista• InsLista # ∧ Lista% "lemento$ → ∧ Lista• AnxLista # ∧ Lista% "lemento$ → ∧ Lista• "limLista # ∧ Lista$ → ∧ Lista• AnulLista # ∧ Lista$ → ∧ Lista
• In!oLista # ∧ Lista$ → "lemento• LongLista # ∧ Lista$ → "ntero• "xisten"lems # ∧ Lista$ → Lógico
-
8/20/2019 4_TAD (2).pps
10/37 TADs_Listas: Pila y 10
Con memoria dinámica …
• "n este caso se puede considerar ,uela operación InsLista sea utilizada parainsertar a un elemento en la primeraposición / ,ue LlenaLista se conviertaen "xisten"lems dado ,ue se utilizamemoria din'mica. or otro lado"limLista e In!oLista de0e especi!icarsesi es el primero o 1ltimo elemento.
-
8/20/2019 4_TAD (2).pps
11/37 TADs_Listas: Pila y 11
ormali!ación …
• per2InicLista:• 3 reCond: 4erdad 5• 3 ostCond: Lista: A66A7 8 9..Tam ← ;& + ← 9< +
← Tam5• 3 ostCond: ∧ Lista ← +IL 5
• per2InsLista:• 3 reCond: ∃ Lista AND 9 = pos = + 5• 3 ostCond: ∃ "lemento AND + > + - 95• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: ∃ "lemento% IN Lista5
-
8/20/2019 4_TAD (2).pps
12/37 TADs_Listas: Pila y 12
ormali!ación …
• per2AnxLista:• 3 reCond: ∃ Lista AND 9 = pos = Tam 5• 3 ostCond: ∃ "lemento AND + > + - 95
• 3 reCond:∧
Lista ? +IL 5• 3 ostCond: ∃ "lemento AND ∧ Lista.*ig > NIL
AND ∧ Ultimo ← ∧ Lista5• per2"limLista:
• 3 reCond:∃
Lista AND 9 = pos = Tam 5• 3 ostCond: ∉ "lemento AND + > + @ 95• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: ∉ "lemento < ∧ Inicio.In!o < ∧ Ultimo.In!o 5
-
8/20/2019 4_TAD (2).pps
13/37
TADs_Listas: Pila y 13
ormali!ación …
• per2AnulLista:• 3 reCond: ∃ Lista 5• 3 ostCond: pos > 9& Lista 8 9..Tam ← ;5
• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: ∧ Lista > NIL5
• per2In!oLista:• 3 reCond: ∃ Lista AND 9 pos = Tam 5• 3 ostCond: "lem5• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: "lem ← ∧ Inicio.In!o < ∧ Ultimo.In!o 5
-
8/20/2019 4_TAD (2).pps
14/37
TADs_Listas: Pila y 14
ormali!ación …
• per2LongLista:• 3 reCond: ∃ Lista AND 9 = + = Tam 5• 3 ostCond: +5• 3 reCond: ∧ Lista ? +IL 5
• 3 ostCond: + 5• per2"xisten"lems:
• 3 reCond: ∃ Lista AND 9 = + = Tam 5• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: T6U" 5
• LlenaLista:• 3 reCond: ∃ Lista AND 9 = + = Tam 5• 3 reCond: no tiene sentido con memoria din'mica 5• 3 ostCond: T6U" 5
-
8/20/2019 4_TAD (2).pps
15/37
15TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La Pila …
• La pila es una lista de accesorestringido #especialización$% lasinserciones / las salidas son por elmismo extremo.
-
8/20/2019 4_TAD (2).pps
16/37
16TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
Especificación del TAD Pila conbase en sus operaciones …
• Incicializalizadoras:• Inic ila: crea e inicializa una estructura
ila vac a.
• Constructoras:•
Ins ila: inserta un elemento de tipo elem en la ila. #Tope de la ila$
-
8/20/2019 4_TAD (2).pps
17/37
17TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
Especificación del TAD Pila conbase en sus operaciones …
• Simplifcadoras:• "lim ila: elimina un elemento #elem$ de la ila #el
del Tope$.• Anul ila: Limpia la estructura ila% regresando una
estructura ila vac a.• Analizadoras:
• Tope ila: devuelve el el valor de elemento #elem$&siempre el del Tope
• Long ila: nos proporciona la longitud de la ila• Llena ila: valor verdadero si esta llena% !also caso
contrario #memoria "st'tica$
-
8/20/2019 4_TAD (2).pps
18/37
18TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
uncionalidad del TAD Pilaconsiderando memoria estática …
• Inic ila # $ → ila• Ins ila # ila% "lemento$ → ila• "lim ila # ila$ → ila• Anul ila # ila$ → ila• Tope ila # ila$ → ila• Long ila # ila$ → "ntero• Llena ila # ila$ → Lógico
-
8/20/2019 4_TAD (2).pps
19/37
19TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
uncionalidad del TAD Pilaconsiderando memoria dinámica …
• Inic ila # $ → ∧ ila• Ins ila # ∧ ila% "lemento$ → ∧ ila• "lim ila # ∧ ila$ → ∧ ila• Anul ila # ∧ ila$ → ∧ ila• Tope ila # ∧ ila$ → "lemento• Long ila # ∧ ila$ → "ntero• Llena ila # ∧ ila$ → Lógico
-
8/20/2019 4_TAD (2).pps
20/37
2TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ación …
• Inic ila:• 3 reCond: 4erdad 5• 3 ostCond: ila: A66A7 8 9..Tam ← ; 5
• 3 ostCond: ∧ ila 5
• Ins ila:•
3 reCond:∃
ila AND ∼
LLena ila 5• 3 ostCond: ∃ "lemento AND Tope > Tope - 95• 3 reCond: ∧ Tope ? +IL 5• 3 ostCond: ∧ Tope.In!o > "lemento5
-
8/20/2019 4_TAD (2).pps
21/37
21TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ación …
• "lim ila:• 3 reCond: ∃ ila 5• 3 ostCond: ∉ "lemento AND Tam > + @ 95• 3 reCond: ∧ ila ? +IL 5• 3 ostCond: ∉ "lemento < Inicio > ∧ Inicio.sig < enultimo > ∧
enultimo.*ig 5
• Anul ila:
• 3 reCond: ∃ ila AND #9 ? Tope ? Tam$ 5• 3 ostCond: Tope > Tam @ 95• 3 reCond: ∧ ila ? +IL 5• 3 ostCond: ∧ ila > +IL5
-
8/20/2019 4_TAD (2).pps
22/37
22TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ación …
• Tope ila:• 3 reCond: ∃ ila5• 3 ostCond: "lemento > ila 8tope 5
• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: "lem ← ∧ Inicio.In!o < ∧ Ultimo.In!o 5
• Long ila:• 3 reCond: ∃ ila AND 9 + = Tam 5• 3 ostCond: +5• 3 reCond: ∧ Lista ? +IL 5• 3 ostCond: + 5
-
8/20/2019 4_TAD (2).pps
23/37
2!TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ación …
• Llena ila:• 3 reCond: ∃ Lista AND 9 + = Tam 5• 3 no tiene sentido con memoria din'mica 5• 3 ostCond: T6U" 5
-
8/20/2019 4_TAD (2).pps
24/37
2"TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La formali!ación de las operaciones del TAD Pilase desarrollaran con base en las operaciones deL"#TA …
• Inic ila:• InicLista #Lista$
• Ins ila:• InsLista # "lemento% pos > 9% Lista$
• "lim ila:
• ostCond: "limLista #Lista% pos >9$
• Anul ila:
• AnulLista #Lista$
-
8/20/2019 4_TAD (2).pps
25/37
25TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La formali!ación de las operaciones del TAD Pilase desarrollaran con base en las operaciones deL"#TA …
• Tope ila:• In!oLista #Lista% pos > 9$
• Long ila:• LongLista #Lista$
• Llena ila:• LlenaLista #Lista$
-
8/20/2019 4_TAD (2).pps
26/37
26TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La Cola …
• La cola es una lista de accesorestringido #especialización$ dondetodas las inserciones son por unextremo / las extracciones por otro.
-
8/20/2019 4_TAD (2).pps
27/37
27TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
Especificación del TAD Cola conbase en sus operaciones …
• Incicializalizadoras:• InicCola: crea e inicializa una estructura
Cola vac a.
• Constructoras:• InsCola: inserta un elemento de tipo elem
en la Cola. #por de!ecto ser' en el 1ltimolugar$
-
8/20/2019 4_TAD (2).pps
28/37
28TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
Especificación del TAD Cola conbase en sus operaciones …
• Simplifcadoras:• "limCola: elimina un elemento #elem$ de la Cola
#por de!ecto ser' el primero$.• AnulCola: Limpia la estructura Cola% regresando
una estructura Cola vac a.• Analizadoras:
• In!oCola: devuelve el el valor de elemento #elem$&siempre el primero.
• LongCola: nos proporciona la longitud de la Cola• LlenaCola: valor verdadero si esta llena% !also
caso contrario #memoria "st'tica$
-
8/20/2019 4_TAD (2).pps
29/37
-
8/20/2019 4_TAD (2).pps
30/37
!TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
Anatom$a de la estructura Cola%Circular …
9
LongMax
Inicio ← 9%"xtremo ← LongMax
-
8/20/2019 4_TAD (2).pps
31/37
!1TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La estructura &ac$a …
"xtremo
Inicio
-
8/20/2019 4_TAD (2).pps
32/37
!2TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La estructura Llena …
"xtremo
Inicio
La posición relativa de los apuntadores es la mismaCuando esta llena / cuando esta vac a
-
8/20/2019 4_TAD (2).pps
33/37
!!TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
La estructura &ac$a …
"xtremo
Inicio
-
8/20/2019 4_TAD (2).pps
34/37
!"TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ción …
• InicCola:• 3 reCond: 4erdad 5• 3 ostCond: Cola: A66A7 8 9..Tam ← ;% Inicio
> 9% "xtremo > LongMax5
• InsCola:• 3 reCond: ∃ Cola ∼ LLenaCola 5• 3 ostCond: ∃ "lemento AND "xtremo ←
"xtremo @ 95
-
8/20/2019 4_TAD (2).pps
35/37
!5TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ción …
• "limCola:• 3 reCond: ∼ 4aciaCola 5• 3 ostCond: ∉ "lemento AND "xtremo ←
"xtremo - 95
• AnulCola:• 3 reCond: ∃ Cola5• 3 ostCond: InicCola5
-
8/20/2019 4_TAD (2).pps
36/37
!6TADs_Listas: Pila y Cola: Ana Laureano / UAM-A
ormali!ción …
• In!oCola:• 3 reCond: ∃ Cola 5• 3 ostCond: In!oCola ← Cola 8 Inicio 5
• LongCola #Cola$ → "ntero• 3 reCond: ∃ Cola 5
• 3 ostCond: LongCola ← B "xtremo - Inicio B 5
-
8/20/2019 4_TAD (2).pps
37/37
!7TAD Li t Pil C l A L
• "xisteCola:• 3 reCond: ∼ 4aciaCola 5• 3 ostCond: 4erdadero < also 5
• LlenaCola:• 3 reCond: ssi Inicio > "xtremo @ D 5• 3 ostCond: 4erdadero 5
• 4aciaCola:• 3 reCond: ssi Inicio > 9 AND "xtremo > LongMax 5• 3 ostCond: 4erdadero 5