Unidad 2.doc

30
7/18/2019 Unidad 2.doc http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 1/30 UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL RESISTENCIA INGENIERÍA EN SISTEMAS DE INFORMACIÓN GESTIÓN DE DATOS  APUNTES TEÓRICOS Unidad 2: TAD y Objeto Et!"#t"!a $inea$e Lita % &i$a ' Co$a &!o(eo! Teo!)a: Ing. Carolina Orcola *e(e de T+ &+: Ing. Luis Eiman A",i$ia! de T+&+: Juan Carlos Fernandez

Transcript of Unidad 2.doc

Page 1: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 1/30

UNIVERSIDAD TECNOLÓGICA NACIONAL

FACULTAD REGIONAL RESISTENCIA

INGENIERÍA EN SISTEMASDE INFORMACIÓN

GESTIÓN DE DATOS

 APUNTES TEÓRICOS

Unidad 2: TAD y Objeto

Et!"#t"!a $inea$eLita % &i$a ' Co$a

&!o(eo! Teo!)a: Ing. Carolina Orcola*e(e de T+ &+: Ing. Luis Eiman

A",i$ia! de T+&+: Juan Carlos Fernandez

Page 2: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 2/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Índi#e

Unidad %& TA' ( Es#ruc#uras Lineales..............................................................................................)Calidad en el desarrollo de So$#*are............................................................................................)

Programaci!n ( A+s#racci!n.....................................................................................................)El rol de la a+s#racci!n.............................................................................................................),is#oria de la a+s#racci!n del so$#*are.....................................................................................-Procedimien#os.........................................................................................................................-!dulos..................................................................................................................................../Ti0os A+s#rac#os de 'a#os 1TA'2............................................................................................../

Es0eci$icaci!n de TA's........................................................................................................34en#a5a de los TA'...............................................................................................................6

O+5e#os.....................................................................................................................................6Programaci!n es#ruc#urada..........................................................................................................7Programaci!n Orien#ada a O+5e#os 1POO2...................................................................................7Es#ruc#uras de 'a#o 'in8micas..................................................................................................9:

TA' LISTA..................................................................................................................................99Es0eci$icaci!n $ormal del TA' Lis#a........................................................................................99Im0lemen#aci!n del TA' Lis#a con es#ruc#uras es#8#icas........................................................99Im0lemen#aci!n del TA' Lis#a median#e aria+les din8micas................................................9%Lis#as 'o+lemen#e Enlazadas................................................................................................9)Lis#a Circular median#e aria+les din8micas...........................................................................9)

TA' Pila..................................................................................................................................... 9/Es0eci$icaci!n $ormal del TA' Pila.........................................................................................9/Im0lemen#aci!n del TA' Pila con arreglos.............................................................................9/Im0lemen#aci!n del TA' Pila median#e aria+les din8micas..................................................93 A0licaciones de Pilas..............................................................................................................93

Llamada a su+0rogramas o 0rocedimien#os.......................................................................93Im0lemen#aci!n de 0rocedimien#os recursios median#e 0ilas...........................................96Ealuaci!n de E;0resiones Ari#m<#icas median#e Pilas......................................................9=Ordenamien#o.....................................................................................................................%)

E5em0lo 0r8c#ico de uso de 0ilas............................................................................................%)TA' COLA..................................................................................................................................%-

Es0eci$icaci!n $ormal del TA' Cola........................................................................................%-Im0lemen#aci!n del TA' Cola con arreglos lineales...........................................................%-Im0lemen#aci!n del TA' Cola con arreglos circulares........................................................%/Im0lemen#aci!n del TA' Cola con lis#as enlazadas...........................................................%6Im0lemen#aci!n del TA' Cola con lis#as circulares............................................................%6

Colas de Simulaci!n...............................................................................................................%7

Ing. Carolina Orcola A>o %::6 P8gina % 

Page 3: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 3/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Unidad 2: TAD y Et!"#t"!a Linea$eUnidad 2: TAD y Et!"#t"!a Linea$eCa$idad en e$ dea!!o$$o de So(t-a!e

La cons#rucci!n de so$#*are de calidad re?uiere el cum0limien#o de numerosas carac#er"s#icas.En#re ellas se des#acan las siguien#es&

E $ i c i e n c i aLa e$iciencia del so$#*are es su ca0acidad 0ara @acer un +uen uso de los recursos ?ue mani0ula.T r a n s 0 o r # a + i l i d a dO 0or#a+ilidad es la $acilidad con la ?ue un so$#*are 0uede ser #rans0or#ado so+re di$eren#essis#emas $"sicos o l!gicos.4 e r i $ i c a + i l i d a dEs la $acilidad de eri$icar un so$#*areB es su ca0acidad 0ara so0or#ar los 0rocedimien#os dealidaci!n ( de ace0#ar 5uegos de #es# o ensa(os de 0rogramas.I n # e g r i d a dEs la ca0acidad de un so$#*are 0ara 0ro#eger sus 0ro0ios com0onen#es con#ra los 0rocesos ?ueno #engan derec@o de acceso.F a c i l i d a d d e u s oSi se 0uede comunicar con <l de manera c!moda.C o r r e c c i ! nCa0acidad de realizar e;ac#amen#e las #areas de$inidas 0or su es0eci$icaci!n.R o + u s # e zCa0acidad de $uncionar incluso en si#uaciones anormales.E ; # e n s i + i l i d a dFacilidad ?ue #ienen los 0roduc#os de ada0#arse a cam+ios en su es0eci$icaci!n.R e u # i l i z a c i ! n

Ca0acidad 0ara ser reu#ilizado en su #o#alidad o en 0ar#e en nueas a0licaciones.C o m 0 a # i + i l i d a dFacilidad de los 0roduc#os 0ara ser com+inados con o#ros.

Programación y Abstracción

Un 0rograma no es m8s ?ue una dis0osici!n a+s#rac#a de un 0rocedimien#o o $en!meno ?uee;is#e o sucede en el mundo real. Frecuen#emen#e un 0rograma imi#a un com0or#amien#o oacci!n @umanaB o#ras eces simula 1es decir re0roduce2 un $en!meno $"sico.Sin em+argo la relaci!n en#re a+s#racci!n ( lengua5e de 0rogramaci!n es do+le& 0or un lado seu#iliza el lengua5e de 0rogramaci!n 0ara escri+ir un 0rograma ?ue es una a+s#racci!n del mundorealB 0or o#ro lado se u#iliza el lengua5e de 0rogramaci!n 0ara descri+ir de un modo a+s#rac#o elcom0or#amien#o $"sico de la com0u#adora ?ue se es#8 u#ilizando 10or e5em0lo u#ilizando nmeros

decimales en lugar de nmeros +inarios aria+les en lugar de celdas de memoria direccionadase;0l"ci#amen#e e#c.2.En la d<cada del cincuen#a el nico mecanismo de a+s#racci!n era el lengua5e ensam+lador ( dem8?uina ?ue o$rec"a la 0osi+ilidad de u#ilizar nom+res sim+!licos 0ara re0resen#ar celdas dememoria. Pos#eriormen#e los lengua5es de al#o niel o$recieron un nueo niel de a+s#racci!n.

El rol de la abstracción

Los 0rogramadores @an #enido ?ue luc@ar con el 0ro+lema de la com0le5idad duran#e muc@o#iem0o desde el nacimien#o de la in$orm8#ica.Los @umanos @emos desarrollado una #<cnica e;ce0cionalmen#e 0o#en#e 0ara #ra#ar lacom0le5idad& a+s#raernos de ella. Inca0aces de dominar en su #o#alidad los o+5e#os com0le5os seignoran los de#alles no esenciales #ra#ando en su lugar con el modelo ideal del o+5e#o (cen#r8ndonos en el es#udio de sus as0ec#os esenciales.

Ing. Carolina Orcola A>o %::6 P8gina ) 

Page 4: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 4/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

En de$ini#ia la abstracción es la ca0acidad 0ara enca0sular ( aislar la in$ormaci!n del dise>o (e5ecuci!n.

Historia de la abstracción del software

La a+s#racci!n es la clae 0ara dise>ar un +uen so$#*are. En los 0rimeros d"as de la in$orm8#icalos 0rogramadores enia+an ins#rucciones +inarias a una com0u#adora mani0ula+an direc#amen#ein#erru0ciones en sus 0aneles $ron#ales. Los 0nemo#<cnicos del lengua5e ensam+lador erana+s#racciones dise>adas 0ara ei#ar ?ue los 0rogramadores #uieran ?ue recordar las secuenciasde +i#s ?ue com0onen las ins#rucciones de un 0rograma. El siguien#e niel de a+s#racci!n seconsigue agru0ando ins#rucciones 0rimi#ias 0ara $ormar macroins#rucciones.

Tras los lengua5es de 0rogramaci!n ensam+ladores a0arecieron los lengua5es de 0rogramaci!nde al#o niel ?ue su0usieron un nueo niel de a+s#racci!n. Los lengua5es de 0rogramaci!n deal#o niel 0ermi#ieron a los 0rogramadores dis#anciarse de las in#erioridades ar?ui#ec#!nicases0ec"$icas de una m8?uina dada. Cada ins#rucci!n en un lengua5e de al#o niel 0uede inocar arias ins#rucciones de m8?uina

de0endiendo de la m8?uina es0ec"$icadonde se com0ila el 0rograma. Es#aa+s#racci!n 0ermi#"a a los 0rogramadoresescri+ir so$#*are 0ara 0ro0!si#o gen<ricosin 0reocu0arse so+re ?u< m8?uinae5ecu#ar"a el 0rograma.

Secuencias de sen#encias de lengua5e deal#o niel se 0ueden agru0ar en $uncioneso 0rocedimien#os ( ser inocados 0or unasen#encia. La 0rogramaci!n es#ruc#uradaalien#a el uso de a+s#racciones de con#rol#ales como +ucles o sen#encias i('t.en?ue se @an incor0orado en lengua5es deal#o niel.

El 0roceso de a+s#racci!n $ueeolucionando desde la a0arici!n de los0rimeros lengua5es de 0rogramaci!n. Elm<#odo m8s id!neo 0ara con#rolar lacom0le5idad $ue aumen#ar los nieles dea+s#racci!n. En un de#erminado sen#idolas #<cnicas orien#adas a o+5e#o 0uedenerse como un 0roduc#o na#ural de unalarga 0rogresi!n @is#!rica ?ue a desde

las es#ruc#uras de con#rol 0asando 0or los0rocedimien#os los m!dulos los #i0oa+s#rac#os de da#os ( los o+5e#os.

Procedimientos

Los 0rocedimien#os ( $unciones $ueron uno de los 0rimeros mecanismos de a+s#racci!n ?ue seu#ilizaron am0liamen#e en lengua5es de 0rogramaci!n. El 0rocedimien#o 0ro0orcion! la 0rimera0osi+ilidad de ocul#ar in$ormaci!n de im0lemen#aci!n. Un 0rogramador 0od"a escri+ir un0rocedimien#o o con5un#o de 0rocedimien#os ?ue se reu#iliza+an 0or o#ros 0rogramadores donde<s#os no necesi#a+an conocer con e;ac#i#ud los de#alles de im0lemen#aci!n solo necesi#a+an lain#er$az necesaria. Sin em+argo los 0rocedimien#os no resol"an #odos los 0ro+lemas.

Ing. Carolina Orcola A>o %::6 P8gina - 

E/o$"#i0n .it0!i#a de $aabt!a##i0n de$ So(t-a!e

Ins#rucciones en0nemo#<cnico

acroins#rucciones

Es#ruc#uras decon#rol

Funciones (0rocedimien#os

!dulos

Ti0o A+s#rac#o de'a#o 1TA'2

O+5e#os

Lengua5eEnsam+lador

Lengua5es de Al#o Niel

Programaci!nEs#ruc#urada

Prog. Orien#adaa O+5e#os

Page 5: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 5/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Módulos

Un m!dulo es una #<cnica ?ue 0ro0orciona la 0osi+ilidad de diidir sus da#os ( 0rocedimien#os enuna 0ar#e privada  Dsolo accesi+le den#ro del m!dulo ( o#ra 0ar#e  pública  Daccesi+le $uera delm!dulo. Los m!dulos 0ro0orcionan un m<#odo e$ec#io 0ara ocul#ar in$ormaci!n 0ero no 0ermi#enrealizar instanciación ?ue es la ca0acidad de @acer ml#i0les co0ias de las zonas de da#os.

Tipos Abstractos de Datos (TAD)

 Aun?ue los #<rminos tipo de datos estructuras de datos  ( tipo de dato abstracto  0arecenseme5an#es su signi$icado es di$eren#e.

Un tipo abstracto de datos (TAD) es un modelo ma#em8#ico de los o+5e#os de da#os ?uecons#i#u(en un #i0o de da#o as" como de las $unciones ?ue o0eran so+re es#os o+5e#os. Esim0or#an#e a0reciar ?ue las o0eraciones ?ue mani0ulan los o+5e#os es#8n incluidas en lases0eci$icaciones del TA'. Por e5em0lo el TA' Con5un#o 0uede ser de$inido como una colecci!nde elemen#os ?ue son #ra#ados 0or o0eraciones como la UNION INTERSECCIÓN ( 'IFERENCIA

de con5un#os.

El #<rmino tipo de datos se re$iere a la implementación del modelo ma#em8#ico es0eci$icado 0or un TA' es decir ?ue un #i0o de da#os es una re0resen#aci!n in$orm8#ica de un TA'. En unlengua5e de 0rogramaci!n el tipo de datos de una aria+le es el con5un#o de alores ?ue <s#a0uede #omar.

Para re0resen#ar un modelo ma#em8#ico +8sico de un TA' se em0lean estructuras de datos ?ueson con5un#os de aria+les ?uiz8 de #i0os dis#in#os conec#adas en#re s" de diersas $ormas.Los o+5e#os #ales como lis#as con5un#os ( gra$os as" como sus o0eraciones se 0ueden considerar como tipos abstractos de datos. No e;is#e ninguna regla so+re ?u< o0eraciones de+e mane5ar unTA' <s#a es una decisi!n de dise>o.

Un lengua5e de 0rogramaci!n o$rece @a+i#ualmen#e cier#o nmero de  tipos de datos predefinidos.Pero en muc@os casos el dise>o de un 0rograma in$orm8#ico re?uiere #i0os de da#os ?ue no seencuen#ran dis0oni+les en el lengua5e de 0rogramaci!n usado 0ara im0lemen#ar el 0rograma. Enes#os casos de+emos ser ca0aces de cons#ruir los #i0os de da#os necesarios usando los #i0os deda#os 0rede$inidos. Los #i0os de da#os cons#ruidos de es#a manera reci+en el nom+re de tipo dedatos definidos por el usuario.

El desarrollo de un nueo #i0o de da#os #iene dos 0un#os de is#a& una isi!n l!gica ( una isi!n deim0lemen#aci!n. La visión lógica de un #i0o de da#o de+er"a ser usada duran#e el dise>o del0rograma. Es#e es sim0lemen#e el modelo a0or#ado 0or la es0eci$icaci!n de un TA'. La visión deimplementación de un #i0o de da#os considera la manera en la ?ue los da#os son re0resen#ados en

la memoria ( c!mo las $unciones de acceso son im0lemen#adas. 'esde es#e 0un#o de is#a nos0reocu0ar8 0rinci0almen#e de ?u< manera las dis#in#as es#ruc#uras de da#os e im0lemen#acionesde ru#inas de acceso a$ec#an a la e$iciencia de las o0eraciones realizadas 0or el #i0o de da#os.S!lo de+er"a @a+er una isi!n l!gica de un #i0o de da#os 0ero 0ueden e;is#ir diersos en$o?ues deim0lemen#aci!n.

Un 0rograma de a0licaci!n de+er"a mani0ular un #i0o de da#o en $unci!n de su re0resen#aci!nl!gica m8s ?ue de su almacenamien#o $"sico. Es decir la comunicaci!n en#re el 0rograma dea0licaci!n ( la im0lemen#aci!n del #i0o de da#os de+er"a 0roducirse nicamen#e a #ra<s de lain#er$az ?ue a0or#an las ru#inas de acceso es0eci$icadas en el TA'. Es#o signi$ica ?ue mien#ras lain#er$az ?ue o$rece el #i0o de da#os no sea cam+iada la im0lemen#aci!n del #i0o de da#os 0odr"aser com0le#amen#e al#erada sin a$ec#ar al 0rograma de a0licaci!n ?ue usa el #i0o de da#os.

Ing. Carolina Orcola A>o %::6 P8gina / 

Page 6: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 6/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

La idea +8sica es ?ue la im0lemen#aci!n de esas o0eraciones se escri+e s!lo una ez en el0rograma ( cual?uier o#ra 0ar#e del 0rograma ?ue necesi#e realizar una o0eraci!n so+re el TA'0uede @acerlo llamando a la $unci!n a0ro0iada.

Las es#ruc#uras de da#os u#ilizadas 0ueden ser im0lemen#adas en arias $ormas 0ero si se @acecon correcci!n los 0rogramas ?ue las usen no necesi#ar8n sa+er ?u< im0lemen#aci!n se us!.

Idealmen#e una muralla se lean#aalrededor de la im0lemen#aci!n de unTA' de #al $orma ?ue un 0rograma dea0licaci!n s!lo es ca0az de mani0ular da#os 0or medio del uso de ru#inas deacceso. En <s#e caso la mani0ulaci!ndirec#a de los da#os almacenados en laim0lemen#aci!n del TA' no es#80ermi#ida.

La se0araci!n u ocul#amien#o de lare0resen#aci!n de un #i0o de da#os conres0ec#o a las a0licaciones ?ue usan el#i0o de da#os se conoce como encapsulación de datos (módulos). Es#o #rae en#a5as asociadas&Primero la $acilidad de modi$icaci!nB un #i0o de da#os enca0sulado adecuadamen#e 0ude ser modi$icado sin a$ec#ar a los 0rogramas de a0licaci!n ?ue usan es#e #i0o de da#os. Segunda0osi+ilidad de reu#ilizaci!n en o#ros 0rogramas de a0licaci!n ?ue re?uieren la $uncionalidada0or#ada 0or el #i0o de da#os sin #ener ?ue conocer c!mo $ue im0lemen#ado el #i0o de da#os.Tercero $acili#a la de0uraci!n (a ?ue es m8s sencillo con#rolar 0e?ue>os 0rogramas 1m!dulos2.

Especificación de TADs

La es0eci$icaci!n de un TA' Cons#a de dos 0ar#es ?ue son& una descri0ci!n ma#em8#ica de unacolecci!n de o+5e#os ( un con5un#o de o0eraciones de$inidas en cier#os elemen#os de es#acolecci!n de o+5e#os.'os TA' son di$eren#es si #ienen el mismo modelo ma#em8#ico 0ero dis#in#as o0eraciones (a ?uelo a0ro0iado de una realizaci!n de0ende en gran medida de las o0eraciones ?ue se an a realizar.

Una es0eci$icaci!n de un TA' se mues#ra en el siguien#e e5em0lo.

El TAD Conjunto.

El #i0o a+s#rac#o de da#os Con5un#o se usa 0ara re0resen#ar los con5un#os as" como laso0eraciones de$inidas so+re con5un#os. Un conjunto se de$ine como una colecci!n de miembros oelementos. A su ez cada miem+ro 0uede ser un con5un#o o un elemen#o 0rimi#io ?ue reci+e el

nom+re de átomo. Todos los miem+ros de un con5un#o son dis#in#os lo cual signi$ica ?ue ningncon5un#o 0uede #ener dos co0ias del mismo elemen#o.

E;is#en numerosas o0eraciones ?ue se 0ueden de$inir so+re con5un#os. Algunas de ellas son&

O1e!a#i0n

De#!i1#i0n de $a o1e!a#i0nF"n#i0n o &!o#ed+ en&!o+ Et!"#t"!ada

M3todo en &!o+O!ientada a Objeto

 ANULA 1C2 C.Anula 12Elimina los 0osi+les elemen#os del con5un#o generandoun con5un#o C ac"o. No re#orna ningn alor.

INSERTA 1; C2 C.Inser#a 1;2 Agrega el elemen#o ; al con5un#o C. Puede deolererdadero si el elemen#o no e;is#"a ( $also sino 0or e5..

Ing. Carolina Orcola A>o %::6 P8gina 3 

Acceso

directo

Rutina de

acceso

Muralla

Implementación

del TADPrograma de

aplicación

Programa de

aplicación

Page 7: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 7/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

SUPRIE 1; C2 C.Su0rime 1;2Elimina el elemen#o ; del con5un#o C. Puede deoler$also si el elemen#o no e;is#"a ( erdadero si e;is#"a ( loelimin!.

PERTENECE 1; C2 C.Per#enece 1;24eri$ica si el elemen#o ; 0er#enece al con5un#o C o no.

'euele erdadero o $also.UNION 1C9 C%2 C9.Union 1C%2

Re#orna un nueo con5un#o C ?ue con#iene loselemen#os de C9 ( de C%.

INTERSECCION 1C9 C%2 C9.In#ersecci!n 1C%2Re#orna un nueo con5un#o C ?ue con#iene solo loselemen#os ?ue 0er#enecen #an#o a C9 como a C%.

'IFERENCIA 1C9 C%2 C9.'i$erencia 1C%2Re#orna un nueo con5un#o C ?ue con#iene solo loselemen#os ?ue 0er#enecen a C9 ( no a C% ( los ?ue0er#enecen a C% ( no a C9.

IGUAL 1C9 C%2 C9.Igual 1C%2Re#orna erdadero o $also segn los con5un#osingresados #engan los mismos elemen#os o no.

Ventaa de los TAD

Los #i0os a+s#rac#os de da#os 0ro0orcionan numerosos +ene$icios al 0rogramados ?ue se 0uedenresumir en los siguien#es&

• Permi#e una me5or conce0#ualizaci!n ( modelado del mundo real. e5ora la re0resen#aci!n ($acili#a la com0rensi!n. Clari$ica los o+5e#os +asados en es#ruc#uras ( com0or#amien#oscomunes.

• e5ora la ro+us#ez del sis#ema. Los TA' 0ermi#en la com0ro+aci!n de #i0os de da#o 0araei#ar errores en #iem0o de e5ecuci!n.

• e5ora el rendimien#o. Para sis#emas #i0i$icados el conocimien#o de los o+5e#os 0ermi#e lao0#imizaci!n de #iem0o de com0ilaci!n.

• Se0ara la im0lemen#aci!n de la es0eci$icaci!n. Permi#e la modi$icaci!n ( me5ora de laim0lemen#aci!n sin a$ec#ar la in#er$az 0+lica del TA' es decir las ru#inas ?ue lo usan.

• Permi#e la e;#ensi+ilidad del sis#ema. Los com0onen#es de so$#*are reu#iliza+les son m8s$8ciles de crear ( man#ener.

• Recoge me5or la sem8n#ica del #i0o. Los #i0o a+s#rac#os de da#os agru0an o localizan laso0eraciones ( la re0resen#aci!n de a#ri+u#os.

!betos

Un o+5e#o es sencillamen#e un TA' al?ue se a>ade im0or#an#es innoacionesen cuan#o a com0ar#ici!n de c!digo (reu#ilizaci!n. Las en#idades +8sicas de la0rogramaci!n orien#ada a o+5e#os son&o+5e#os mensa5es ( m<#odos clases eins#ancias ( @erencia.

Una idea $undamen#al es la comunicaci!nde los o+5e#os a #ra<s del 0aso demensajes. Adem8s de es#a idea sea>aden los mecanismos de erencia  ( polimorfismo. La erencia  0ermi#edi$eren#e #i0o de da#os 0ara com0ar#ir el mismo c!digo 0ermi#iendo una reducci!n en el #ama>o

del c!digo ( un incremen#o en la $uncionalidad. El  polimorfismo 0ermi#e ?ue un mismo mensa5e0ueda ac#uar so+re o+5e#os di$eren#es ( com0or#arse de modo dis#in#o.

Ing. Carolina Orcola A>o %::6 P8gina 6 

Conce0#os Claes

 A+s#racci!n Enca0sulaci!n Persis#encia

,erencia Polimor$ismo Genericidad

En#idades H8sicas

,erenciaJerar?u"a

 

ensa5es<#odos

ClasesIns#ancias

O+5e#os

Page 8: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 8/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

La  persistencia se re$iere a la 0ermanencia de un o+5e#o es#o es la can#idad de #iem0o 0ara elcual se le asigna es0acio ( 0ermanece accesi+le en la memoria del com0u#ador.

&!o!a4a#i0n et!"#t"!ada

La 0rogramaci!n es#ruc#urada se em0lea desde el 0rinci0io de la d<cada de los se#en#a ( es unode los m<#odos m8s u#ilizados en el cam0o de la 0rogramaci!n.

La t!cnica descendente  1#o0 do*n2 o el refinamiento sucesivo  comienza descom0oniendo el0rograma en 0iezas m8s sim0les m8s mane5a+les ( 0e?ue>as 1$unciones o 0rocedimien#os2 ?uerealizan #areas menos com0le5as.

Un conce0#o im0or#an#e ?ue se in#rodu5o con la 0rogramaci!n es#ruc#urada es la abstracción. Enun 0rograma es#ruc#urado es su$icien#e conocer ?ue un 0rocedimien#o dado realiza una #areaes0ec"$icaB el c!mo lo @ace no es im0or#an#e sino conocer como se u#iliza correc#amen#e la$unci!n ( lo ?ue @ace 10ar8me#ros de en#rada ( salida2.

 A medida ?ue la com0le5idad de un 0rograma crece #am+i<n de+e crecer su inde0endencia de los

#i0os de da#os $undamen#ales ?ue 0rocesa. En un 0rograma es#ruc#urado las es#ruc#uras de da#osde un 0rograma son #an im0or#an#es como las o0eraciones realizadas so+re ellas. Es#o se @acem8s eiden#e a medida ?ue crece un 0rograma en #ama>o. Los #i0os de da#os se 0rocesan enmuc@as $unciones den#ro de un 0rograma es#ruc#urado ( cuando se 0roducen cam+ios en esos#i0os de da#os las modi$icaciones se de+en @acer en cada sen#encia ?ue ac#a so+re esos #i0osde da#os den#ro del 0rograma. Es#a #area 0uede ser $rus#ran#e ( consumir un #iem0o considera+leen 0rogramas con miles l"neas de c!digo ( cen#enares de $unciones.

En un 0rograma es#ruc#urado losda#os locales se ocul#an den#ro de$unciones ( los da#os com0ar#idosse 0asan como argumen#os.

O#ro 0ro+lema es ?ue dado ?uemuc@as $unciones acceden a losmismos da#os el medio en ?ue sealmacenan los da#os se @ace m8scr"#ico. La dis0osici!n de los da#osno se 0uede cam+iar sin modi$icar #odas las $unciones ?ue acceden a ellos. Si 0or e5em0lo se a>aden nueos da#os se necesi#ar8modi$icar #odas las $unciones ?ue acceden a los da#os de modo ?ue ellos 0uedan acceder #am+i<n a es#os elemen#os.

&!o!a4a#i0n O!ientada a Objeto 5&OO6La POO es un nueo 0aradigma de 0rogramaci!n es decir es una nuea $orma de isualizar elmundo de la 0rogramaci!n a #ra<s de un con5un#o de #eor"as es#8ndares ( m<#odos.

La ma(or"a de los 0rogramadores #ra+a5an con un solo lengua5e de 0rogramaci!n ( u#ilizan el0aradigma $orzado 0or dic@o lengua5e.

En POO las en#idades cen#rales son los o+5e#os ?ue son #i0os de da#os ?ue enca0sulan con elmismo nom+re las es#ruc#uras de da#os ( las o0eraciones ?ue mani0ulan esos da#os.

Un o+5e#o es una en#idad ?ue con#iene los a#ri+u#os ?ue descri+en el es#ado de un o+5e#o delmundo real ( las acciones ?ue se asocian con el o+5e#o del mundo real. Se designa 0or un nom+reo iden#i$icador del o+5e#o.

Ing. Carolina Orcola A>o %::6 P8gina 7 

VariablesGlobales

Variables

Locales 

Variables

Locales 

Accesible por cualquier función

Función A Función

Accesible solo por función A Accesible solo por función

Page 9: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 9/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

'en#ro del con#e;#o de un lengua5e orien#ado a o+5e#os 1LOO2 un o+5e#o enca0sula da#os ( los0rocedimien#os$unciones 1m<#odos2 ?ue mane5an esos da#os. La no#aci!n gr8$ica de un o+5e#oar"a de una me#odolog"a a o#ra.

 A#ri+u#os& da#os oaria+les ?ue carac#erizan

el es#adode un o+5e#o.

<#odos&0rocedimien#os o acciones ?ue

cam+ianel es#ado de un o+5e#o.

C$ae

'esde una 0ers0ec#ia conce0#ual una Clase re0resen#a un con5un#o de O+5e#os ?ue com0ar#en&

Las mismas 0ro0iedades 1A#ri+u#os2

El mismo com0or#amien#o 1<#odos2

Las mismas relaciones con o#ros O+5e#os 1ensa5es2

La misma sem8n#ica den#ro del sis#ema

'esde una 0ers0ec#ia $"sica una Clase es una 0ieza de so$#*are ?ue ac#ua como un molde 0ara$a+ricar #i0os 0ar#iculares de o+5e#os ?ue dis0onen de los mismos a#ri+u#os ( m<#odos.

Es#os elemen#os ?ue con$iguran cada #i0o de o+5e#o s!lo se de$inen una ez cuandoes0eci$icamos la es#ruc#ura de la Clase a la ?ue 0er#enecen.

Los o+5e#os ?ue se @an creado a 0ar#ir de una Clase concre#a se llaman ins#ancias de es#a Clase( se di$erencian en#re ellos nicamen#e 0or los alores de sus a#ri+u#os 1aria+les2.

La clase es la cons#rucci!n del lengua5e m8s $recuen#emen#e usada 0ara de$inir los TA'. Unaclase se 0uede de$inir como una descri0ci!n a+s#rac#a de un gru0o de o+5e#os cada uno de loscuales se di$erencia 0or su es#ado es0ec"$ico ( es ca0az de realizar una serie de o0eraciones.

KCu8l es la di$erencia en#re una clase ( un o+5e#o con inde0endencia de su com0le5idad Unaclase erdaderamen#e descri+e una $amilia de elemen#os similaresB es una 0lan#illa 0ara un #i0o0ar#icular de o+5e#os. Si se #ienen muc@os o+5e#os del mismo #i0o solo se #ienen ?ue de$inir lascarac#er"s#icas generales de ese #i0o una ez en lugar de en cada o+5e#o.

Las o0eraciones ?ue mani0ulan las ins#ancias de una clase es decir de los o+5e#os se llamanm<#odos.

'i$eren#es o+5e#os 0ueden res0onder a un mismo mensa5e de di$eren#es maneras. El 0olimor$ismo0ermi#e a los o+5e#os in#erac#uar en#re ellos sin necesidad de conocer 0reiamen#e a ?ue #i0o0er#enecen.

,erencia es el mecanismo 0or el cual una clase de o+5e#os 0uede ser de$inida como un casoes0ecial de o#ra clase m8s gen<rica.

Los casos es0eciales de una clase se denominan Su+clases.

Ing. Carolina Orcola A>o %::6 P8gina = 

Nom+reClase A#ri+u#os

<#odos

Page 10: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 10/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

La clase m8s gen<rica se conoce como la Su0erclase de #odos sus casos es0eciales. Adem8s delos m<#odos ( a#ri+u#os ?ue @eredan las Su+clases de$inen sus 0ro0ios m<#odos ( a#ri+u#os.Tam+ien 0ueden rede$inir algunos de los @eredados 1oerriding2.

La in#er$ace de mensa5es de$inida 0ara una Su0erclase #am+i<n es @eredada 0or las su+clases.Es#o im0lica ?ue #odas las Su+clases de una Su0erclase es#an 0re0aradas 0ara res0onder correc#amen#e a los mismos mensa5es ?ue la Clase 0adre. Es#a 0ro0iedad es e;#remadamen#e #il0or?ue nos 0ermi#e #ra#ar de la misma manera a #odas las es0ecializaciones de una Clase.

El em0a?ue#ado de m<#odos ( a#ri+u#os den#ro de un o+5e#o median#e una in#er$ace de mensa5eses lo ?ue denominamos enca0sulaci!n.

Et!"#t"!a de Dato Din74i#a

Los 0rogramas es#8n $ormados 0or algori#mos ( es#ruc#uras de da#os. Un +uen 0rograma es a?uel?ue u#iliza los m<#odos correc#os 0ara almacenar ( recu0erar esos da#osB 0or eso es necesario#ener en cuen#a c!mo amos a es#ruc#urar los da#os a la @ora de crear un 0rograma.

Las es#ruc#uras de da#os se clasi$ican en es#8#icas 1arreglos ( regis#ros2 ( din8micas 10ilas colaslis#as ( 8r+oles2. Las 0rimeras reci+en su nom+re de+ido a ?ue duran#e la com0ilaci!n se lesasigna es0acio de memoria ( 0ermanecen inal#era+les duran#e la e5ecuci!n de un 0rograma. Lassegundas #oman im0or#ancia cuando no se conoce 0or adelan#ado cu8n#a memoria se re?uerir80ara un 0rograma. Por lo ?ue es conenien#e dis0oner de un m<#odo 0ara ad?uirir 0osicionesadicionales de memoria a medida ?ue se necesi#en duran#e la e5ecuci!n del 0rograma ( li+erarlascuando no se necesi#an 10or e5em0lo Ne*12 ( 'is0onse12 en Pascar2.

Las aria+les ?ue se crean ( es#8n dis0oni+les duran#e la e5ecuci!n de un 0rograma se llamanaria+les din8micas. Es#as aria+les se re0resen#an con un #i0o de da#o conocido como 0un#ero.Las aria+les din8micas se u#ilizan 0ara crear es#ruc#uras din8micas de da#os ?ue se 0ueden

am0liar o com0rimir a medida ?ue se re?uieran duran#e la e5ecuci!n de un 0rograma. Unaes#ruc#ura de da#os din8mica es una colecci!n de elemen#os denominados nodos de la es#ruc#uranormalmen#e de #i0o regis#ro ?ue son enlazados 5un#os.

El dinamismo de es#as es#ruc#uras soluciona el 0ro+lema de decidir cu8l es la can#idad !0#ima dememoria ?ue de+e reserarse 0ara un 0ro+lema dado. Sin em+argo no siem0re 0uedenreem0lazarse los arreglos 0or es#ruc#uras din8micas. E;is#en casos en ?ue la soluci!n secom0lica si se u#iliza es#e #i0o de es#ruc#ura en ez de arreglos.

Las es#ruc#uras din8micas de da#os se 0ueden diidir en % grandes gru0os&

LINEALES M LISTAS PILAS COLAS

NO LINEALES M RHOLES GRAFOS

Ing. Carolina Orcola A>o %::6 P8gina 9:

Page 11: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 11/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

TAD LISTA

Una lista enla"ada es una secuencia de nodos en el ?ue cada nodo es#8 enlazado o conec#ado

con el siguien#e.

La lis#a enlazada es una es#ruc#ura de da#os din8mica cu(os nodos suelen ser normalmen#eregis#ros ( ?ue no #ienen un #ama>o $i5o.

Una lis#a es una es#ruc#ura ?ue se u#iliza 0ara almacenar in$ormaci!n del mismo #i0o con lacarac#er"s#ica ?ue 0uede con#ener un nmero inde#erminado de elemen#os ( ?ue <s#os elemen#osman#ienen un orden e;0l"ci#o (a ?ue cada elemen#o con#iene en s" mismo la direcci!n delsiguien#e elemen#o.

Una lis#a es una secuencia de : a n elemen#os. A la lis#a de cero elemen#os llamaremos listavac#a.

Especificación formal del TAD "ista

a#em8#icamen#e una lis#a es una secuencia de cero o m8s elemen#os de un de#erminado #i0o.

1a9 a% a) ... an2 donde n Q :si n Q : la lis#a es ac"a.

Los elemen#os de la lis#a #ienen la 0ro0iedad de ?ue es#8n ordenados de $orma lineal segn las0osiciones ?ue ocu0an en la misma. Se dice ?ue a i 0recede a ai9 0ara i Q 9 % )... n 9 ( ?ue ai

sucede a ai9 0ara i Q % )... n.

Para $ormar el Tipo Abstracto de Datos "#$TA a 0ar#ir de la noci!n ma#em8#ica de lis#a se de+ede$inir un con5un#o de o0eraciones con o+5e#os de #i0o lis#a.

La decisi!n de ?u< o0eraciones ser8n las m8s u#ilizadas de0ende de las carac#er"s#icas del0ro+lema ?ue se a a resoler. Tam+i<n de0ender8 del #i0o de re0resen#aci!n elegido 0ara laslis#as. Es#e con5un#o de o0eraciones lo de$inir8n en la 0r8c#ica.

Para re0resen#ar las lis#as ( las corres0ondien#es im0lemen#aciones 0ueden seguirse dosal#erna#ias&

! U#ilizaci!n de la es#ruc#ura es#8#ica de arreglo 0ara almacenar los nodos de la lis#a.

! U#ilizaci!n de es#ruc#uras din8micas median#e 0un#eros ( aria+les din8micas.

#mplementación del TAD "ista con estructuras est%ticas

En la im0lemen#aci!n de Lis#as median#e arreglos los elemen#os se guardan en 0osicionescon#iguas del arreglo.

En es#a realizaci!n se de$ine el #i0o $ista como un regis#ro de dos cam0os& el 0rimero es elarreglo de elemen#os 1#endr8 un m8;imo nmero de elemen#os 0rees#a+lecido2B ( el segundo es

un en#ero ?ue re0resen#a la 0osici!n ?ue ocu0a el l#imo elemen#o de la lis#a. Las 0osiciones ?ueocu0an los nodos en la lis#a son alores en#erosB la 0osici!n i%en!sima es el en#ero i .

Ing. Carolina Orcola A>o %::6 P8gina 99

Page 12: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 12/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Definición de $istas usando arreglos&

a;& ... alor cons#an#eTi0oel#o& ... 1Ti0o del cam0o in$ormaci!n de cada nodo2

  Lita& Regis#ro  El#os& arreglo 9..a; de Ti0oel#o

  Ul#imo& en#ero  FRegis#ro

Con <s#a realizaci!n se $acili#a el recorrido de la lis#a ( la o0eraci!n de a>adir elemen#os al $inal.

Sin em+argo la o0eraci!n de inser#ar un elemen#o en una 0osici!n in#ermedia de la lis#a o+liga ades0lazar en una 0osici!n a #odos los elemen#os ?ue siguen al nueo elemen#o a inser#ar con elo+5e#o de de5ar un @ueco.

#mplementación del TAD "ista mediante &ariables din%micas

Es#e m<#odo de re0resen#aci!n de lis#as enlazadas u#iliza aria+les 0un#ero ?ue 0ermi#en crear aria+les din8micas 1Nodos2 en las cuales se almacena el campo de información ?ue 0uede ser un regis#ro un en#ero una cadena de carac#eres e#c. ( el campo de enlace al siguien#e nodo dela lis#a.

 A una lis#a enlazada se accede desde un 0un#ero e;#erno ?ue con#iene la direcci!n 1re$erencia2 del0rimer nodo de la lis#a. En el caso de la lis#a ac"a el 0un#ero e;#erno a0un#a a nulo.

El cam0o de direcci!n o enlace del l#imo elemen#o no de+e a0un#ar a ningn elemen#o.

Definición de $ista mediante uso de punteros&

Ti0oel#o& ... 1Ti0o del cam0o in$ormaci!n de cada nodo2

  Nodo& Regis#ro  El#o& Ti0oel#o  Sig& Nodo FRegis#ro

LISTA:  Nodo

Con <s#a im0lemen#aci!n se a5us#a la memoria ocu0ada al #ama>o real de la lis#a. A@ora cada ez?ue sea necesario crear un nueo nodo se llama al 0rocedimien#o ?ue ca0#a la memoria necesaria

de la 0ila de memoria li+re ( se enlaza con la lis#a. El 0roceso es din8mico la lis#a crece o

Ing. Carolina Orcola A>o %::6 P8gina 9%

Ul#imo

++

+

6

%:

9)

N+

++

)

%

9 )

Re0resen#aci!n de Lis#as median#e arreglos

L6 9: / =+++

Re0resen#aci!n de Lis#a u#ilizando 0un#eros

In$o Sg#e. 1Enlace2

Nodo de una Lis#a enlazada

L Nil

Page 13: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 13/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

decrece segn las necesidades. Con <s#a realizaci!n se ei#an los des0lazamien#os al inser#ar (su0rimir elemen#os.

Lo malo de <s#a re0resen#aci!n es ?ue cada ez ?ue se ?uiera acceder a un nodo @a( ?ue

recorrer la lis#a a #ra<s de los enlaces @as#a alcanzar su 0osici!n. Tam+i<n @a( ?ue #ener encuen#a ?ue en <s#e caso cada nodo ocu0a la memoria adicional del cam0o enlace.

Con los 0un#eros se 0uede cons#ruir #oda clase de es#ruc#uras enlazadas 10ilas colas e#c.2. Es#ases#ruc#uras son din8micas es decir ?ue el nmero de elemen#os 0uede cam+iar duran#e lae5ecuci!n del 0rograma ( as" se a5us#an a las necesidades de cada ins#an#e cosa ?ue no ocurrecon las es#ruc#uras es#8#icas como los arreglos.

 Al #ra+a5ar con es#ruc#uras din8micas @a( ?ue mane5ar dos clases di$eren#es de aria+les&variables puntero 1direccionan un da#o2 ( variables de referencia 1son a0un#adas2.

"istas Doblemente Enla'adasEn las lis#as sim0lemen#e enlazadas @a( un solo sen#ido en el recorrido de la Lis#a. Puede resul#ar #il el 0oder aanzar en am+os sen#idos de #al $orma ?ue los #<rminos 0redecesor ( sucesor no#engan signi$icado 0ues#o ?ue la lis#a es com0le#amen#e sim<#rica. En cada nodo de <s#e #i0o delis#as e;is#e dos enlaces uno al siguien#e nodo ( o#ro al an#erior.

Un nodo de una lis#a do+lemen#e enlazada 0uede ser considerado como un regis#ro con #rescam0os& un cam0o in$ormaci!n ( dos cam0os de enlace.

Ld

La im0lemen#aci!n de lis#as do+lemen#e enlazadas se 0uede realizar con es#ruc#uras es#8#icas1arreglos2 o con es#ruc#uras din8micas 10un#eros2.

Im0lemen#aci!n con 0un#eros Im0lemen#aci!n con arreglosTi0oel#o&V (Tipo del campo información

de cada nodo)

Nodo& Regis#ro  El#o& Ti0oel#oB  Sig An#& NodoB

  FRegis#ro

Ld:  Nodo

a;& ... alor cons#an#e

Ti0oel#o& ... (Tipo del campo informaciónde cada nodo)

  Ld& Regis#ro  El#os& arreglo 9..a; de Ti0oel#oB  Ul#imo& en#eroB  FRegis#ro

Las o0eraciones ?ue se 0ueden de$inir en es#e TA' 0ueden ser las mismas ?ue 0ara el TA'Lis#as o 0ueden ariar de0endiendo de 0ara ?ue se las u#ilice. 

Ing. Carolina Orcola A>o %::6 P8gina 9)

Nodo de una Lis#a do+lemen#e enlazada

nilnil ......

Page 14: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 14/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

"ista ircular mediante &ariables din%micas

En las lis#as lineales siem0re @a( un l#imo nodo ?ue #iene el cam0o de enlace a nil. Una lis#acircular en cam+io 0or su na#uraleza no #iene 0rimero ni l#imo nodo. Sin em+argo resul#a #iles#a+lecer un 0rimer ( un l#imo nodoB una conenci!n es la de considerar ?ue el 0un#ero e;#ernode la lis#a circular re$erencia al l#imo nodo ( ?ue el nodo siguien#e sea el 0rimer nodo de la lis#a.

Todos los recorridos de la lis#a circular se @acen #omando como re$erencia el considerado l#imonodo.

Lc

 Al igual ?ue con las lis#as ( las lis#as do+lemen#e enlazadas so+re una lis#a circular se 0uedenes0eci$icar una serie similar de o0eraciones ( as" $ormar el TA' Lis#a Circular.

O#ra al#erna#ia ser"a @acerla do+lemen#e enlazada 0ara 0oder recorrerla en am+os sen#idos.

Lcd

Ing. Carolina Orcola A>o %::6 P8gina 9-

...

...

Page 15: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 15/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

TAD &i$a

Una 0ila es una es#ruc#ura de da#os en la ?ue #odas las inserciones ( eliminaciones de elemen#osse realizan 0or un e;#remo denominado #o0e o cima de la 0ila.

La im0lemen#aci!n de una 0ila se 0uede realizar median#e arreglos o con 0un#eros. Elinconenien#e de la realizaci!n de una 0ila median#e arreglos es ?ue su #ama>o m8;imo se de+ees0eci$icar en #iem0o de com0ilaci!n. 'e+ido a es#o la im0lemen#aci!n de 0ilas se realiza$recuen#emen#e median#e 0un#eros.

Especificación formal del TAD Pila

Una 0ila es una lis#a ordenada de elemen#os en el ?ue #odas las inserciones ( eliminaciones serealizan 0or un mismo e;#remo de la lis#a. En una 0ila el l#imo elemen#o a>adido es el 0rimero ensalir de la 0ila. Por esa raz!n a las 0ilas se las denomina #am+i<n lis#as LIFO 1 last input' firts

output B l#imo en en#rar 0rimero en salir2.

Las 0ilas crecen ( decrecen din8micamen#e es una es#ruc#ura de da#os din8mica. En cuan#o a lare0resen#aci!n de una 0ila e;is#en arias al#erna#ias. Una 0rimera re0resen#aci!n 0odr"a ser median#e la es#ruc#ura es#8#ica de un arreglo de la cual (a indicamos la desen#a5a.

Una segunda al#erna#ia ser"a usando lis#as enlazadas. Las lis#as crecen ( decrecendin8micamen#e al igual ?ue ocurre con una 0ila. En es#a re0resen#aci!n din8mica se u#ilizan0un#eros ( aria+les din8micas. Las o0eraciones se de$inir8n en la 0r8c#ica.

#mplementación del TAD Pila con arreglos

Un arreglo cons#i#u(e el de0!si#o de los elemen#os de la 0ila. El rango del arreglo de+e ser losu$icien#emen#e am0lio 0ara 0oder con#ener el m8;imo 0reis#o de elemen#os de la 0ila. Une;#remo del arreglo se considera el fondo de la 0ila ?ue 0ermanecer8 $i5o. La 0ar#e su0erior de la0ila tope o cima es#ar8 cam+iando din8micamen#e duran#e la e5ecuci!n del 0rograma. Adem8sdel arreglo una aria+le en#era nos sire 0ara #ener en #odo momen#o el "ndice del arreglo ?uecon#iene el elemen#o tope. Las declaraciones 0rocedimien#os ( $unciones 0ara re0resen#ar el TA'Pila $orman 0ar#e de la unidad 0ila.a;elemQ ...1'e0ender8 de cada realizaci!n2Ti0oelemQ... 1Ti0o de los elemen#os de la 0ila2PilaQ Regis#ro

ElemQ arreglo 9..a;elem de Ti0oelemB

To0eQ en#eroBFinRegis#ro

Ing. Carolina Orcola A>o %::6 P8gina 9/

Page 16: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 16/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

#mplementación del TAD Pila mediante &ariables din%micasLa im0lemen#aci!n din8mica de una 0ila se @ace almacenando los elemen#os como nodos de unalis#a enlazada con la 0ar#icularidad de ?ue siem0re ?ue se ?uiera me#er o sacar un elemen#o se@ar8 0or el mismo e;#remo.

Es#a realizaci!n #iene la en#a5a de ?ue el #ama>o se a5us#a e;ac#amen#e a los elemen#os de la0ila. Sin em+argo 0ara cada elemen#o se necesi#a m8s memoria (a ?ue @a( ?ue guardar elcam0o de enlace. En la realizaci!n con arreglos @a( ?ue es#a+lecer un m8;imo de 0osi+leselemen#os aun?ue el acceso es m8s r80ido (a ?ue se @ace con una aria+le su+indicada.

Ti0oelemQ... 1Ti0o de los elemen#os de la 0ila2PilaQ Nodo8NodoQ Regis#ro

ElemQ Ti0oelemBSigQ Nodo8

FinRegis#ro

 Aplicaciones de Pilas

La Pila son u#ilizadas 0ara solucionar una am0lia ariedad de 0ro+lemas. Se u#ilizan encom0iladores en sis#emas o0era#ios ( en 0rogramas de a0licaci!n. Los casos m8sre0resen#a#ios son&

• Llamada a su+0rogramas• Recursi!n• Tra#amien#o de e;0resiones ari#m<#icas• Ordenaci!n

"lamada a subprogramas o procedimientos

Cuando den#ro de un 0rograma se realizan llamadas a su+0rogramas el 0rograma 0rinci0al de+erecordar el lugar d!nde se @izo la llamada de modo ?ue 0ueda re#ornar all" cuando elsu+0rograma se @a(a #erminado de e5ecu#ar.

Ing. Carolina Orcola A>o %::6 P8gina 93

Page 17: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 17/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Su0ongamos ?ue #enemos #res su+0rogramas llamados A H C ( su0ongamos #am+i<n ?ue Ainoca a H ( H inoca a C. En#onces H no #erminar8 su #ra+a5o @as#a ?ue C @a(a #erminado (deuel#o su con#rol a H. 'e modo similar A es el 0rimero ?ue arranca su e5ecuci!n 0ero es ell#imo ?ue la #ermina #ras la #erminaci!n ( re#orno de H.

Es#a o0eraci!n se consigue dis0oniendo las direcciones de re#orno en una 0ila.

ProgramaPrinci0al

Su+0rograma A WSu+0rograma H XSu+0rograma C Y

Pila de direcciones de re#orno

Cuando un su+0rograma #ermina de+e re#ornar a la direcci!n siguien#e a la ins#rucci!n ?ue lellam! 1llamara2. Cada ez ?ue se inoca un su+0rograma la direcci!n siguien#e 1; ( o z2 sein#roduce en la 0ila. El aciado o lim0ieza de la 0ila se realiza 0or los sucesios re#ornosBdecremen#8ndose el 0un#ero de 0ila ?ueda li+re siem0re a0un#ando a la siguien#e direcci!n dere#orno.

Pun#ero de la 0ila PWX X

Y Y Y PRe#orno asu+0rogram

a H

Re#orno asu+0rogram

a A

Re#orno a0rograma0rinci0al

 Adem8s de guardar las direcciones an#es mencionadas cuando se #iene un 0rograma ?ue llama aun su+0rograma in#ernamen#e se usan 0ilas 0ara guardar el es#ado de las aria+les del 0rogramaen el momen#o ?ue se @ace la llamada. As" cuando #ermina la e5ecuci!n del su+0rograma losalores almacenados en la 0ila 0ueden recu0erarse 0ara con#inuar con la e5ecuci!n del 0rogramaen el 0un#o en el ?ue $ue in#errum0ido.

Ing. Carolina Orcola A>o %::6 P8gina 96

Programa Principal

  Llamar_a A subprograma A

Dirección X

Llamar_a B subprograma B

  Dirección Y

  Fin_subprograma A

  Llamar_a C subprograma C

  Dirección Z

  Fin_subprograma B

  Fin_subprograma C

Page 18: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 18/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

#mplementación de procedimientos recursi&os mediante pilas

Un 0rocedimien#o o $unci!n con#iene #an#o aria+les locales como argumen#os $ic#icios o0ar8me#ros. A #ra<s de los argumen#os se #ransmi#en da#os en las llamadas a los su+0rogramaso +ien se deuelen alores al 0rograma o su+0rograma inocan#e.

 Adem8s el su+0rograma de+e guardar la direcci!n de re#orno al 0rograma ?ue realiza la llamada.En el momen#o en ?ue #ermina la e5ecuci!n de un su+0rograma el con#rol 0asa a la direcci!nguardada. A@ora el su+0rograma es recursio en#onces adem8s de la direcci!n de re#orno los aloresac#uales de las aria+les locales ( argumen#os de+en de guardarse (a ?ue se usar8n de nueocuando el su+0rograma se reac#ie.

Su0ongamos ?ue se @a llamado al su+0rograma P ?ue #iene llamadas a s" mismo es decir esrecursio. El $uncionamien#o del 0rograma recursio P ser8&

Se crea una 0ila 0ara cada argumen#o. Se crea una 0ila 0ara cada aria+le local. Se crea una 0ila 0ara almacenar la direcci!n de re#orno.

Cada ez ?ue se @ace una llamada recursia a P los alores ac#uales de los argumen#os ( de lasaria+les locales se me#en en sus 0ilas 0ara ser 0rocesadas 0os#eriormen#e. Asimismo cada ez?ue @a( un re#orno a P 0roceden#e de una llamada recursia an#erior se res#auran los alores dearia+les locales ( argumen#os de la simas de la 0ilas.

Para la o+#enci!n de la direcci!n de re#orno amos a su0oner ?ue el 0rocedimien#o P con#iene unallamada recursia en la sen#encia N. En#onces guarda en o#ra 0ila la direcci!n de re#orno ?ue ser8la sen#encia siguien#e la N9. 'e #al $orma ?ue cuando el niel de e5ecuci!n del 0rocedimien#o P

ac#ual #ermine o sea alcance la sen#encia end  $inal usar8 dic@a 0ila de direcciones 0ara oler alnueo niel de e5ecuci!n. 'e es#a $orma cuando la 0ila de direcciones se ?ueda ac"a oler8 al0rograma ?ue llam! al su+0rograma recursio P.

El problema de las Torres de anoi resuelto sin recursividad 

El problema de las Torres de anoi' cua solución recursiva se a descrito en la práctica' se puede resolver de forma no recursiva siguiendo esta estrategia.Los argumen#os conocidos son&

N: número de discos A: Varilla A B: Varilla B C: Varilla C 

Para cada uno de ellos se de$ine una 0ila& PilaN, PilaA, PilaB, PilaC Adem8s la 0ila de direcciones& PilaDir

Las e#a0as a considerar en la cons#rucci!n del algori#mo ,ANOI son&9. Crear Pilas.

Anular (PilaN); Anular (PilaA); Anular (PilaB); Anular (PilaC);

Anular (PilaDir);

%. Condici!n de $in.

Si N=1 entoncesEscribir  !"o#er $isco%, N, ! $e %, A, ! a !, C&'

Ir a ('

Ing. Carolina Orcola A>o %::6 P8gina 97

Page 19: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 19/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Fin-si.

). Llamada recursia.

a2 Guardar en 0ilas&

MEE (N! PilaN);

MEE (A! PilaA);

MEE (B! PilaB);

MEE (C! PilaC);

MEE ("#aso $%! PilaDir);

+2 Ac#ualizar los argumen#os&

N&N-';

A&A;

Au&B;

B&C; *ntercambiar + C C&Au;

c2 4oler al 0aso 9.

-. Progreso.

Escribir  !"o#er $isco%, N, ! $e %, A, ! a !, C&'

/. Segunda llamada recursia.

a2 Guardar en 0ilas&

MEE (N! PilaN);

MEE (A! PilaA);

MEE (B! PilaB);MEE (C! PilaC);

MEE ("#aso %! PilaDir);

+2 Ac#ualizar los argumen#os&

N&N-';

C&C;

Au&B;

B&A; *ntercambiar + AA&Au;

c2 4oler al 0aso 9.

3. Re#orno de las llamadas recursias.

a2 Si las 0ilas es#8n ac"as en#onces $in de algori#mo& oler a la ru#ina llamadora.

+2 Sacar de las 0ilas&

N& *ACA (PilaN);

A& *ACA (PilaA);

B& *ACA (PilaB);

C& *ACA (PilaC);

Dir& *ACA (PilaDir);

c2 Ir al 0aso ?ue es#8 guardado en Dir.

Ing. Carolina Orcola A>o %::6 P8gina 9=

Page 20: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 20/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

E&aluación de Epresiones Aritm*ticas mediante Pilas

Una de las a0licaciones m8s #"0icas del TA' Pila es almacenar los carac#eres de una e;0resi!nari#m<#ica con el $in de ealuar el alor num<rico de dic@a e;0resi!n.

Una e;0resi!n ari#m<#ica es#8 $ormada 0or o0erandos ( o0eradores.La $orma @a+i#ual de escri+ir una e;0resi!n ari#m<#ica 1el o0erador en medio de los o0erandos2 seconoce como notación infia.

Coniene recordar ?ue las o0eraciones #ienen dis#in#os nieles de 0recedencia&

Par<n#esis & 1 2 Niel ma(or de 0rioridadPo#encia & Zul#i0licaci!n'iisi!n & [ SumaRes#a & Niel menor de 0rioridad

Tam+i<n su0onemos ?ue a igualdad de 0recedencia son ealuados de iz?uierda a derec@a.,otación -refija (-olaco) -ostfija (-olaco *nversa)

La $orma @a+i#ual de escri+ir o0eraciones ari#m<#icas es si#uar el o0erador en#re sus doso0erandos median#e la ci#ada no#aci!n infija. Es#a $orma de no#aci!n o+liga en muc@as ocasionesa u#ilizar 0ar<n#esis 0ara indicar el orden de ealuaci!n.  A [ H 1A C2 ! A [ H A C

Es#as e;0resiones 0or m8s ?ue se 0arecen llean a resul#ados di$eren#es.

La no#aci!n en la ?ue el o0erador se coloca delan#e de los o0erandos se conoce como notación  prefia o Polaca 1en @onor al ma#em8#ico 0olaco ?ue la es#udi!2.

 A [ H 1A C2

1in$i5a2 [ A H A C 10olaca2 A [ H A C 1in$i5a2 [ A H A C 10olaca2

Podemos o+serar ?ue con la no#aci!n Polaca no es necesario el uso de 0ar<n#esis al escri+ir lae;0resi!n. La 0ro0iedad $undamen#al de la no#aci!n 0olaca es ?ue el orden en el ?ue se an arealizar las o0eraciones es#8 de#erminado 0or las 0osiciones de los o0eradores ( los o0erandosen la e;0resi!n.

O#ra $orma de escri+ir las o0eraciones es median#e la notación prostfia o  polaco in&ersa ?uecoloca el o0erador a con#inuaci!n de sus o0erandos.

 A [ H 1A C2 1in$i5a2 A H [ A C 10olaca inersa2

 A [ H A C 1in$i5a2 A H [ A C 10olaca inersa2

 Algoritmos para la evaluación de una epresión aritm!tica

 A la @ora de ealuar una e;0resi!n ari#m<#ica escri#a normalmen#e en no#aci!n in$i5a lacom0u#adora sigue dos 0asos&

9\ Trans$orma la e;0resi!n in$i5a en 0os#$i5a

%\ Eala la e;0resi!n en 0os#$i5a

En el algori#mo 0ara resoler cada 0aso es $undamen#al la u#ilizaci!n de 0ilas. Se 0ar#e de unae;0resi!n en no#aci!n in$i5a ?ue #iene o0eradores o0erandos ( 0uede o no #ener 0ar<n#esis.

Ing. Carolina Orcola A>o %::6 P8gina %:

Page 21: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 21/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

La #rans$ormaci!n se realiza u#ilizando una 0ila en la ?ue se almacenan los o0eradores ( los0ar<n#esis iz?uierdos. La e;0resi!n se a le(endo car8c#er a car8c#er los o0erandos 0asandirec#amen#e a $ormar 0ar#e de la e;0resi!n 0os#$i5a.

Los o0eradores se me#en en la 0ila siem0re ?ue <s#a es#< ac"a o +ien siem0re ?ue #enganma(or 0rioridad ?ue el o0erador tope de la 0ila1o +ien igual si es la m8;ima 0rioridad2. Si la0rioridad es menor o igual se saca el elemen#o tope de la 0ila ( se uele a @acer la com0araci!ncon el nueo elemen#o tope.

Los 0ar<n#esis iz?uierdo siem0re se me#en en la 0ila con la m"nima 0rioridad. Cuando se lee un0ar<n#esis derec@o @a( ?ue sacar #odos los o0eradores de la 0ila 0asando a $ormar 0ar#e de lae;0resi!n 0os#$i5a @as#a llegar a un 0ar<n#esis iz?uierdo el cual sim0lemen#e se elimina (a ?uelos 0ar<n#esis no $orman 0ar#e de la e;0resi!n 0os#$i5a. El algori#mo #ermina cuando no @a( m8si#ems en la e;0resi!n ( la 0ila es#8 ac"a.

Desarrollo de un ejemplo de pasar una epresión infija a postfija

Para me5or com0rensi!n desarrollaremos el siguien#e e5em0lo&Sea la e;0resi!n in$i5a A [ 1H C D 1' E Z F2 D G2 D , la e;0resi!n en 0os#$i5a se a a ir $ormandocon la siguien#e secuencia&

Lis#a deE;0resi!n In$i5a

Es#adode la Pila

 Acci!n Lis#a deE;0resi!n Pos#$i5a

 A[1HCD1'EZF2DG2D,

Pilaac"a

Inicialmen#e. Lis#a ac"a

[1HCD1'EZF2DG2D, Car8c#er A a la e;0resi!n A

1HCD1'EZF2DG2D, [ Car8c#er [ a la 0ilaHCD1'EZF2DG2D, 1

[

Car8c#er 1 a la 0ila

CD1'EZF2DG2D, Car8c#er H a la e;0resi!n AHCD1'EZF2DG2D,

1[

Car8c#er a la 0ila D1'EZF2DG2D, Car8c#er C a la e;0resi!n AHC

1'EZF2DG2D, 1[

El nueo car8c#er le"do es ?ue #iene igual0rioridad ?ue el elemen#o del tope de la 0ila 0orlo ?ue se agrega el a la e;0resi!n ( el D a la 0ila.

 AHC

'EZF2DG2D, 11[

Car8c#er 1 a la 0ilaEZF2DG2D, Car8c#er ' a la e;0resi!n AHC'

EZF2DG2D,

11[

Car8c#er a la 0ila

ZF2DG2D, Car8c#er E a la e;0resi!n AHC'E

F2DG2D, Z11[

Car8c#er Z a la 0ila2DG2D, Car8c#er F a la e;0resi!n AHC'EF

 DG2D, 1[

Car8c#er 2 0rooca aciar la 0ila @as#a encon#rarun 1 al cual lo elimina ( a los elemen#os sacadosde la 0ila los a agregando a la e;0resi!n en el

orden en el ?ue los lee

 AHC'EFZ

G2D, Car8c#er D a la 0ila ( se e;#rae ( se agrega a la AHC'EFZ

Ing. Carolina Orcola A>o %::6 P8gina %9

Page 22: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 22/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

1[

e;0resi!n el D del tope 0or #ener igual 0rioridad

2D, 1[

Car8c#er G a la e;0resi!n AHC'EFZG

 D,[

Car8c#er 2 0rooca aciar la 0ila @as#a encon#rarun 1 al cual lo elimina ( a los elemen#os sacadosde la 0ila los a agregando a la e;0resi!n en elorden en el ?ue los lee

 AHC'EFZG

, Car8c#er se saca de la 0ila [ ( se 0one AHC'EFZG[Lis#a ac"a Car8c#er , a la e;0resi!n AHC'EFZG[,Lis#a ac"a Pila 4ac"a Lis#a de en#rada ac"a 0or lo cual se ac"a la 0ila (

se a 0oniendo en la lis#a. AHC'EFZG[,

En el e5em0lo desarrollado se o+sera ?ue el 0ar<n#esis iz?uierdo #iene la m8;ima 0rioridad $uerade la 0ila es decir en la no#aci!n in$i5aB sin em+argo cuando es#8 aden#ro de la 0ila la 0rioridad es

m"nima. 'e igual $orma 0ara #ra#ar el @ec@o de ?ue arios o0eradores de 0o#enciaci!n sonealuados de derec@a a iz?uierda es#e o0erador #endr8 ma(or 0rioridad cuando #oda"a no es#<me#ido en la 0ila ?ue el mismo 0ero me#ido en la 0ila.

Las 0rioridades son de#erminadas segn es#a #a+la&O0erador Prioridad den#ro de la 0ila Prioridad $uera de la 0ila

Z ) -

[ % % 9 9

1 : /

O+s<rese ?ue no se #ra#a de 0ar<n#esis derec@o (a ?ue es#e 0rooca sacar o0eradores de la 0ila@as#a encon#rar un 0ar<n#esis iz?uierdo el cual se des@ec@a.

 Algoritmo para transformar una epresión en notación infija a notación postfija

El algori#mo de 0aso de no#aci!n in$i5a a 0os#$i5a ser"a&

9. O+#ener carac#eres de la e;0resi!n ( re0e#ir los 0asos del % al - 0ara cada car8c#er.%. Si es o0erando 0asarlo a la e;0resi!n 0os#$i5a. 4oler al 0aso 9.). Si es o0erador&  ).9 Si la 0ila es#8 ac"a me#erlo en la 0ila. 4oler al 0aso 9.

).% Si la 0ila no es#8 ac"a&).%.9 Si la 0rioridad del o0erador le"do es ma(or ?ue la 0rioridad del o0erador tope de

la 0ila me#erlo en la 0ila. 4oler al 0aso 9.).%.% Si la 0rioridad del o0erador le"do es menor o igual ?ue la 0rioridad del o0erador 

del tope  de la 0ila sacar el elemen#o tope de la 0ila ( 0asarlo a la e;0resi!n0os#$i5a ( oler al 0aso ).

-. Si es 0ar<n#esis derec@o&-.9 Sacar el elemen#o tope de la 0ila ( 0asarlo a la e;0resi!n 0os#$i5a.-.% Si el nueo tope es el 0ar<n#esis iz?uierdo su0rimir el elemen#o tope.-.) Si el elemen#o tope no es el 0ar<n#esis iz?uierdo oler al 0aso -.9.-.- 4oler al 0aso 9.

/. Si ?uedan elemen#os en la 0ila 0asarlos a la e;0resi!n 0os#$i5a.3. Fin del algori#mo.

Ing. Carolina Orcola A>o %::6 P8gina %%

Page 23: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 23/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

Evaluación de la epresión en postfija

En una lis#a o ec#or @a sido almacenada la e;0resi!n (a en no#aci!n 0os#$i5a. El algori#mo deealuaci!n u#iliza una 0ila de o0erandos 1nmeros2. Al descri+ir el algori#mo PF es la lis#a ?uecon#iene la e;0resi!n en 0os#$i5a. El nmero de elemen#os ?ue con#iene la e;0resi!n esnQLONGITU' 1PF2.

9. E;aminar la lis#a PF desde el 0rimer elemen#o @as#a el elemen#o n. Re0e#ir los 0asos % ( )0ara cada elemen#o del la lis#a PF.

%. Si el elemen#o es un o0erando me#erlo en la 0ila.). Si el elemen#o es un o0erador 1lo designamos ]2 en#onces&

).9 Sacar los dos elemen#os su0eriores de la 0ila 1los llamamos Y e X res0ec#iamen#e2.).% Ealuar X]Y ( el resul#ado W 0onerlo en la 0ila.).) Re0e#ir a 0ar#ir del 0aso 9.

-. El resul#ado de la ealuaci!n de la e;0resi!n es#8 en el elemen#o tope de la 0ila./. Fin del algori#mo.

!rdenamiento

O#ra a0licaci!n de las 0ilas 0uede erse en el m<#odo de ordenaci!n r80ida o ?uic^sor#. Es 0osi+leaumen#ar la elocidad de e5ecuci!n del algori#mo de ordenaci!n r80ida eliminando las llamadasrecursias. La recursi!n es un ins#rumen#o mu( 0oderoso 0ero la e$iciencia de e5ecuci!n es un$ac#or mu( im0or#an#e en un 0roceso de ordenamien#o ?ue es necesario cuidar ( adminis#rar mu(+ien. Es#as llamadas recursias 0ueden sus#i#uirse u#ilizando 0ilas dando lugar a la i#era#iidad.

Eemplo pr%ctico de uso de pilas

Plan#<ese el siguien#e e5ercicio 0r8c#ico de 0ilas&

• Es 0osi+le guardar dos 0ilas en un solo arreglo si

una de ellas crece desde la 0osici!n 9 del arreglo( la o#ra lo @ace desde la l#ima 0osici!n. No sede+en re0or#ar des+ordamien#os en ninguna 0ilaal menos ?ue no e;is#an 0osiciones li+res en elarreglo. Generar el TA' 0ara dic@a es#ruc#ura.

• Se 0ueden almacenar ^ 0ilas en un solo arreglocomo se mues#ra en el gr8$ico. Im0lemen#eru#inas 0ara PONER ( _UITAR elemen#os decada 0ila. Considere ?ue si la inserci!n en 0ila i@ace ?ue TOPE1i2 iguale a HASE1i92 an#es dee$ec#uarla @a( ?ue des0lazar #odas las 0ilas demodo ?ue ?uede una se0araci!n del #ama>oa0ro0iado en#re cada 0ar de 0ilas ad(acen#es.Por e5em0lo es 0osi+le @acer ?ue lasse0araciones en#re 0ilas sean #odas iguales o?ue la se0araci!n ?ue ?ueda encima de la 0ila isea 0ro0orcional al #ama>o ac#ual de la 0ila i 1enel su0ues#o de ?ue las 0ilas m8s grandes #ienenma(or 0ro+a+ilidad de crecer an#es ( se desea 0os#ergar la siguien#e reorganizaci!n el ma(or #iem0o 0osi+le2. Crear 0ara ello un 0rocedimien#o REORGANIWA al ?ue se llama si las 0ilascolisionan.

Ing. Carolina Orcola A>o %::6 P8gina %)

 

To0e

  ^ Pilas  Hase ^Q)

Pila 9

Pila %

Pila )

)

%

9

)

%

9

Pila %

To0e %

To0e 9

Pila 9a;

9

Page 24: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 24/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

 

Ing. Carolina Orcola A>o %::6 P8gina %-

Page 25: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 25/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

TAD COLA

Una #o$a es una lis#a en la ?ue #odas las inserciones a la lis#a se realizan 0or un e;#remo ( #odas

las eliminaciones o su0resiones de la lis#a se realizan 0or el o#ro e;#remo. Las colas se llaman#am+i<n es#ruc#uras FIFO 1first%in' firs%out B 0rimero en en#rar 0rimero en salir2.

Las a0licaciones de las colas son numerosas en el mundo de la com0u#aci!n& colas de im0resi!nacceso a almacenamien#o en disco sis#emas de #iem0o com0ar#ido uso de UCP.

Especificación formal del TAD ola

Una cola es una lis#a ordenada de elemen#os en la ?ue las eliminaciones se realizan en un soloe;#remo llamado frente o  principio de la cola ( los nueos elemen#os son a>adidos 0or el o#roe;#remo llamado fondo o final de la cola.

Es#ruc#ura de da#os #i0o colaEn es#a es#ruc#ura de da#os el 0rimer elemen#o ?ue en#ra es el 0rimero en salir. Las o0eracionesdel TA' Cola se de$inir8n en la 0r8c#ica. Al igual ?ue las 0ilas la im0lemen#aci!n de colas 0uede@acerse u#ilizando un arreglo o una lis#a enlazada ( dos 0un#eros a los e;#remos.

#mplementación del TAD ola con arreglos lineales

La $orma m8s sencilla de re0resen#aci!n de una cola es median#e arreglos lineales. Sonnecesarios dos "ndices 0ara re$erenciar al elemen#o $ren#e ( al elemen#o $inal.

Definición de Cola usando arreglos lineales&

  Ti0oel#o& ... 1Ti0o del cam0o in$ormaci!n de cada nodo2  Co$a& Regis#ro  el#os& arreglo 9..N de Ti0oel#oB

  $ren#e& en#eroB  $inal& en#eroB

Ing. Carolina Orcola A>o %::6 P8gina %/

a2 Es#ruc#ura original

  A G , `

 $ren#e $inal

+2 Es#ruc#ura des0u<s de eliminar un elemen#o

G , `

 $ren#e $inal

c2 Es#ruc#ura des0u<s de agregar un elemen#o

G , ` L

 $ren#e $inal

Page 26: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 26/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

  Fregis#roB

Un arreglo es una es#ruc#ura es#8#ica ( 0or lo #an#o #iene dimensiones $ini#asB 0or el con#rario unacola 0uede crecer ( crecer sin l"mi#e ( en consecuencia se 0uede 0resen#ar la 0osi+ilidad de ?ue

ocurra un des+ordamien#o. Por es#a raz!n se necesi#ar"a incor0orar al TA' la o0eraci!n deeri$icaci!n de si la cola es#8 llena.La o0eraci!n de a>adir un nueo elemen#o a la cola comienza a 0ar#ir de la 0osici!n 9 del arreglo.

9 % ) -

 A G , ̀

 $ren#e $inal

Su0ongamos ?ue la cola se encuen#ra en la si#uaci!n an#erior& el $ren#e es#8 $i5o ( el $inal de la colaes el ?ue se muee al a>adir nueos elemen#os. Si a@ora se ?ui#a un elemen#o 1eiden#emen#e

0or el $ren#e2 la cola ?ueda as"&

9 % ) -

  G , `

  $ren#e $inal

Una al#erna#ia a es#a si#uaci!n es man#ener $i5o el $ren#e de la cola al comienzo del arreglo& es#e@ec@o su0one moer #odos los elemen#os de la cola una 0osici!n cada ez ?ue se ?uiera re#irar un elemen#o de la cola.Es#os 0ro+lemas se resuelen con los arreglos circulares.

#mplementación del TAD ola con arreglos circulares

La im0lemen#aci!n de una cola median#e arreglos lineales es 0oco e$icien#e. Cada o0eraci!n desu0resi!n de un elemen#o su0one moer #odos los elemen#os res#an#es de la cola.

Para ei#ar es#e gas#o imaginaremos un arreglo como una es#ruc#ura circular en la ?ue al l#imoelemen#o le sigue el 0rimero.

Es#a re0resen#aci!n im0lica ?ue an es#ando ocu0ado el l#imo elemen#o del arreglo 0uedea>adirse uno nueo de#r8s de <l ocu0ando la 0rimera 0osici!n del arreglo.

Ing. Carolina Orcola A>o %::6 P8gina %3

/e a dejado un uecono utili"able' por lo 0ue

se desaproveca 

Page 27: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 27/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

 Arreglos circulares

Para a1adir un elemento en la cola se muee el "ndice final  una 0osici!n en el sen#ido de lasmanecillas del relo5 ( se asigna el elemen#o. Para suprimir un elemento es su$icien#e con moer el

"ndice frente una 0osici!n en el sen#ido del aance de las manecillas del relo5. 'e es#a manera lacola se muee en un mismo sen#ido #an#o si se realizan inserciones o su0resiones de elemen#os.En es#e caso la condici!n de cola ac"a 1 frente Q siguien#e 1final 22 a a coincidir con una cola ?ueocu0a el c"rculo com0le#o una cola ?ue llene #odo el arreglo.Para resoler el 0ro+lema una 0rimera #en#a#ia ser"a considerar ?ue el elemen#o final   re$erencieuna 0osici!n adelan#ada a la ?ue realmen#e ocu0a el elemen#o en el sen#ido del aance del relo5.Teniendo 0resen#e es#a consideraci!n cuando la cola es#uiera llena el "ndice siguien#e a final ser"a frente.

Cola llena en un arreglo circular 

Consideremos a@ora el caso en el ?ue ?ueda un solo elemen#o en la cola. Si en es#as condicionesse su0rime el elemen#o la cola ?ueda ac"a el elemen#o frente aanza una 0osici!n en el sen#ido

de las agu5as del relo5 ( a a re$erenciar a la misma 0osici!n ?ue el siguien#e al 0un#ero final . Esdecir es#8 e;ac#amen#e en la misma 0osici!n rela#ia ?ue ocu0ar"a si la cola es#uiera llena.

/upresión del último elemento en un arreglo circular. Cola 2ac#a en un arreglo circular 

Una soluci!n a es#e 0ro+lema es sacri$icar una 0osici!n del arreglo ( de5ar ?ue final  re$erencie a la0osici!n realmen#e ocu0ada 0or el l#imo elemen#o a>adido. Si el arreglo #iene N 0osiciones no sede+e de5ar ?ue la cola crezca m8s ?ue N9.

Teniendo en cuen#a #odo lo e;0ues#o la definición de Cola usando arreglos circulares ser"a&

Ti0oel#o& ... 1Ti0o del cam0o in$ormaci!n de cada nodo2

  Co$a& Regis#ro  el#os& arreglo 9..N de Ti0oel#oB

Ing. Carolina Orcola A>o %::6 P8gina %6

Page 28: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 28/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

  $ren#e& en#eroB  $inal& en#eroB  Fregis#roB

#mplementación del TAD ola con listas enla'adas

Como ocurre con #oda re0resen#aci!n es#8#ica una de las 0rinci0ales desen#a5as es ?ue @a( ?ue0reer un m8;imo de elemen#os ( de ese m8;imo no 0odemos 0asarnos. La realizaci!n de unacola median#e una lis#a enlazada 0ermi#e a5us#arse e;ac#amen#e al nmero de elemen#os de lacola.Es#a im0lemen#aci!n con lis#as enlazadas u#iliza dos 0un#eros ?ue acceden a la lis#a el 0un#erofrente ( el 0un#ero final.

Cola implementada con listas enla"adas

El 0un#ero frente re$erencia al 0rimer elemen#o ?ue a a ser re#irado. El 0un#ero final  re$erencia all#imo nodo ?ue $ue a>adido. En es#a re0resen#aci!n no #iene sen#ido la o0eraci!n ?ue indica si lacola es#8 llena. Al ser una es#ruc#ura din8mica crece ( decrece segn las necesidades.

Las definición de Cola usando listas enla"adas ser"an&

Ti0oel#o& ... 1Ti0o del cam0o in$ormaci!n de cada nodo2

  Nodo& Regis#ro

  El#o& Ti0oel#oB  Sig& Nodo8 Fregis#roB

  Co$a& Regis#ro  $ren#e& Nodo8 

$inal& Nodo8  Fregis#roB

#mplementación del TAD ola con listas circulares

Es#a re0resen#aci!n es una arian#e de la realizaci!n con lis#as enlazadas. Al realizar una lis#acircular se es#a+leci! 0or coneniencia ?ue el 0un#ero al acceso a la lis#a re$erencia+a al l#imonodo ( ?ue el nodo siguien#e se considera el 0rimero. Segn es#e conenio ( #eniendo en cuen#ala de$inici!n de cola las inserciones de nueos elemen#os de la cola ser8n realizados 0or el nodore$erenciado 0or el 0un#ero cola ( la eliminaci!n 0or el nodo siguien#e.Las declaraciones de tipo 0ara es#a re0resen#aci!n es&

Ti0oel#o& ... 1Ti0o del cam0o in$ormaci!n de cada nodo2

Cola& Nodo8

  Nodo& Regis#ro  El#o& Ti0oel#oB

Ing. Carolina Orcola A>o %::6 P8gina %7

Page 29: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 29/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

  Sig& Nodo8 Fregis#roB

Cola implementada con una lista circular con punteros.

olas de $imulación

El o+5e#io de un 0rograma de simulaci!n es modelizar algn sistema f#sico 10or e5. un sis#emame#eorol!gico un +anco una l"nea de mon#a5e e#c.2 de #al $orma ?ue 0odamos analizar ( 0redecir su com0or#amien#o. El sis#ema $"sico 0uede ser considerado como una colecci!n de elemen#osin#erde0endien#es o en#idades ?ue o0eran e in#erac#an 0ara conseguir cier#a #area. Se u#ilizauna colecci!n de &ariables de estado 0ara re0resen#ar el es#ado del sis#ema $"sico. Has#an#e amenudo las aria+les de es#ado de un sis#ema se de$inen 0ara re0resen#ar los es#ados de lasen#idades inolucradas.

-or ejemplo& en la simulación del tráfico a!reo de un aeropuerto' un avión dado ser#auna entidad del sistema 0ue se está considerando' su estado podr#a estar definido

como en el aire' en tierra' aterri"ando o despegando.

,a+i#ualmen#e deseamos modelizar un sis#ema es#oc8s#icamen#eB en es#e caso a una o m8s delas aria+les de es#ado se le asignan alores de acuerdo con una dis#ri+uci!n de 0ro+a+ilidades.

En nuestro ejemplo& podr#amos modeli"ar la probabilidad de 0ue un avión seaincapa" de despegar debido a una aver#a de acuerdo a una distribución de probabilidad 0ue se ajuste estrictamente a los datos observados.

 Adem8s los cam+ios en el es#ado del sis#ema son normalmen#e medidos en $unci!n del #iem0o.En una simulación de sistema continua  el es#ado del sis#ema es#8 con#inuamen#eeolucionando con el correr del #iem0o. Por el con#rario en una simulación de sistemasdiscreta a las aria+les de es#ado s!lo se les 0ermi#e cam+iar en ins#an#es discre#os de #iem0o.

Es im0or#an#e dis#inguir en#re el tiempo simulado ?ue es el #iem0o en el sis#ema $"sico ( el #iem0ode c!m0u#o re?uerido 0ara e5ecu#ar el 0rograma. Para sis#emas com0le5os grandes 0ueden ser necesarias @oras de #iem0o de c!m0u#o 0ara simular unos 0ocos segundos de #iem0o en elsis#ema $"sico. En o#ras si#uaciones el #iem0o de c!m0u#o de+er"a ser muc@o menor ?ue el #iem0osimulado.

La 0rinci0al di$icul#ad ?ue surge al im0lemen#ar una simulaci!n in$orm8#ica su0one salar ladis#ancia conce0#ual ?ue e;is#e en#re el sis#ema $"sico ( su re0resen#aci!n in$orm8#ica. Es#oim0lica de#erminar ?u< es#ruc#uras de da#os 0ueden ser u#ilizadas 0ara modelizar lascom0onen#es del sis#ema $"sico.

Noso#ros nos concen#raremos en modelizar sistemas de colas es#o es sis#emas con lis#a dees0era. Un gran nmero de sis#emas $"sicos 0uede ser modelizado de es#a manera 0or e5em0lo&colas de +anco en comercios ( su0ermercados e#c.. Los clien#es ?ue $orman es#as colas sona#endidos considerando ?ue el 0rimero ?ue llega es el 0rimero en ser a#endido. Es#o res0e#a la0ro0iedad FIFO de las colas. Lo mismo se 0uede decir de los e@"culos es0erando en unagasoliner"a los aiones es0erando 0ermiso 0ara des0egar de la #orre de con#rol ( las#ransmisiones de mensa5es en una red in$orm8#ica de comunicaciones.

En su $orma m8s sim0le un sis#ema de colas consis#e en un nico seridor ?ue a#iende a unanica cola.

Con el $in de simular un sis#ema de es#a clase se de+e es0eci$icar la siguien#e in$ormaci!n&

Ing. Carolina Orcola A>o %::6 P8gina %=

Salida

Seridor Cola

 Arri+o

Page 30: Unidad 2.doc

7/18/2019 Unidad 2.doc

http://slidepdf.com/reader/full/unidad-2doc-56d7654a3b041 30/30

Uniersidad Tecnol!gica Nacional Ingenier"a en Sis#emas de In$ormaci!nFacul#ad Regional Resis#encia GESTIÓN DE DATOS

9. La dis#ri+uci!n de #iem0os de llegada de clien#es. Se asume ?ue los clien#es llegan deacuerdo a una dis#ri+uci!n de 0ro+a+ilidad conocida A1;2.1A& arri+o2

%. La dis#ri+uci!n del #iem0o de a#enci!n. Se asume ?ue el #iem0o de a#enci!n de un clien#eindiidual ar"a de acuerdo a una dis#ri+uci!n de 0ro+a+ilidad conocida S1;2 1S& sericio2.

Dado este escenario' abitualmente estamos interesados en determinar la distribución de lalongitud de la cola de los tiempos de espera de los clientes' la eficiencia del servidor.Es fácil etender esta idea a escenarios más complicados' por ejemplo los siguientes&

Salidas

+++

+++

+++

Cola n

Cola %

Cola 99

%

n

Llegadas

Seridores

Salidas

+++

nica cola

9

%

n

Llegadas

Seridores

Salidas

Cola )

Cola %

Cola 99

%

)

Llegadas