4_tad (2).pps

Upload: cieloci

Post on 07-Aug-2018

222 views

Category:

Documents


0 download

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