FACULTAD DE INGENIERIA Y SISTEMAS ESTRUCTURA DE DATOS
CATEDRATICO: Ing. Carlos Roberto meja GRU!O " #$% PROYECTO: PILAS Y COLAS
NOM&RE ORDEN ALFA&ETICO
CARN'
AV100311
Abrego Valladares, Valladares, Melvin Jose
Cruz Marroquín, Dimas Alexander
CP
Cruz Pacheco, David Salvador Herrera Cisneros, Ariel Amilcar
CM102911
HC100410
San Salvador, de !"V#$M%&$ !"V#$M%&$ de '()*
ÍNDICE #!+&"DCC#-!......................................................................................................./ "%J$+#V"S...............................................................................................................0 "b1e2ivo general.................... general............................ ................. .................. .................. .................. ..........................................0 .................................0
Objet(os es)e*+,*os.......................................................................................0 P#3AS #!4"&MA+#CAS.............................................................................................* 56u7 es una 8ila9..................................................................................................* +7cnicas de Pilas................. Pilas.......................... .................. ................. ................. .................. .................. ................... .............................: ...................: A8licaci;n de Pilas............... Pilas....................... ................. .................. .................. .................. ................. ................. ..............................< .....................< C"3AS $! #!4"&MA+#CA........ #!4"&MA+#CA................ ................. .................. .................. .................. ..........................................)) .................................)) 56u7 es una C"3A9............................................................................................)) +7cnica de Colas.................. Colas.......................... ................. .................. .................. .................. ............................................)' ...................................)' A8licaci;n de Colas................ Colas........................ ................. .................. .................. .................. ................. ................. .................. .................)0 ........)0 P#3AS = C"3AS................. C"3AS.......................... .................. ................. ................. .................. .................. ....................................... ................................)* ..)* A!$>"S................ A!$>"S......................... .................. ................. ................. .................. .................. .................. ................. ................. ............................): ...................):
INTRODUCCIÓN $n mundo de la in?orm@2ica es una de las @reas m@s ex2ensas com8le2as, debido a la necesidad del ser humano en a8licarlas en la vida co2idiana, en la ac2ualidad las com8u2 com8u2ador adoras, as, el so?2Ba so?2Bare re es decir decir la 2ecnol 2ecnologí ogía a es 2an im8or2an2 im8or2an2e e 8ara desarrollar 2an2as ac2ividades de la vida desde un sencillo 1uego a com8le1os sis2emas ca8aces de darle vida a em8resas mundiales. $n el 8resen2e 2raba1o nos en?a2izamos en dos 27rminos mu im8or2an2es en el mundo in?orm@2ico 2ales como las 8ilas las colas. Se 8ueden dividir a los 8rogramas en dos 8ar2es ?undamen2ales que son • •
Algori2mos $s2ruc2uras de da2os
3os 3os da2o da2oss ?ísi ?ísico coss se encu encuen2 en2ra ran n asoc asocia iado doss a un mecani mecanism smo o de da2os, da2os, que con2rola con2rola la ?orma en la que la in?ormaci;n in?ormaci;n 8uede ser accedida 8or los 8rogramas, exis2en 8rinci8almen2e cua2ro 2i8os de es2os mecanismos. 6ue son 3as colas, 3as 8ilas, 3as lis2as 3os @rboles Cada uno de los m72odos mencionados con an2erioridad 8ro8orciona una soluci;n a cada 2i8o de 8roblema. 8roblema. Cada uno un dis8osi2i dis8osi2ivo vo que realiza una una o8eraci;n o8eraci;n de almacenamien2o de recu8eraci;n de los da2os dados. +odos +odos ellos 2ienen dos elemen2os en comn, como es
$l almacenamien2o de da2os 3a recu8eraci;n de da2os
A con2inuaci;n se de2allan los siguien2es 27rminos 8ilas colas.
/
OBJETIVOS Objetiv "e#e$%& #nves2igar, conocer com8arar las herramien2as de es2ruc2ura de da2os en • P#3AS C"3AS. Objetivos específcos
•
•
#nves2igar sobre las 27cnicas de 8ilas colas, c;mo se a8lica, ven2a1as desven2a1as. Crear una a8licaci;n en CEE, a8licando los 2emas de 8ilas colas.
0
PI'AS IN(ORMATICAS )*+, e- +#% .i&%/ na 8ila es una es2ruc2ura de da2os a la cual se 8ued 8uede e acc acceder eder sol solo 8or 8or un ex2 ex2remo remo de la misma. $s decir es una lis2a ordenada o es2 es2ruc2 ruc2ura ura de da2 da2os os en la que el modo de acceso a sus elemen2os es de 2i8o 3#4" 3#4" Fdel Fdel ingl7s 3as2 #n 4irs2 "u2, l2imo en en2rar, 8rimero en sali salirG rG que que 8erm 8ermi2i2e e almac almacena enarr recu recu8er 8erar ar da2o da2os. s. $s2 $s2a es2 es2ruc2 ruc2ur ura a se a8l a8lica ica en mul mul2i2 2i2ud de ocas ocasio ione ness en el @re @rea de in?orm@2ica debi debido do a su sim8 sim8lilici cida dad d orde ordena naci ci;n ;n im8l im8líc íci2i2a a de la 8ro8 8ro8ia ia es2ruc2ura. A una 8ila, se le conoce como una es2ruc2ura de da2os l2ima en en2rar, 8rimera en salir F$PSG Así mismo, en cada momen2o que q ue el usuario u suario se s e encuen2re en la 8ar2e 8ar 2e in2erna del equi8o 8ues solo se 2iene al l2imo ob1e2o a8ilado de lo cual es denominado I+"S que viene a signi?icar I+o8 o? S2racK de 2al manera que el 2ermino re2irar 2iene como ob1e2ivo re2irar la ob2enci;n de es2e elemen2o a que es re2irado de la 8ila in?orm@2ica en lo cual 8ermi2ir@ el acceso al siguien2e que 8asa a ser el nuevo +"S. na me2@?ora que se u2iliza con ?recuencia es la idea de una 8ila de 8la2os en una ca?e2ería con muelle de 8ila. $n esa serie, s;lo la 8rimera 8laca es visible accesible accesible 8ara el usuario, 2odas las dem@s 8lacas 8ermanecen 8ermanecen ocul2as. ocul2as. Como se aLaden las nuevas 8lacas, cada nueva 8laca se convier2e convier2e en la 8ar2e su8erior de la 8ila, escondidos deba1o de cada 8la2o, em8u1ando a la 8ila de 8lacas. A medida que la 8laca su8erior se elimina de la 8ila, la segunda 8laca se convier2e en la 8ar2e su8erior de la 8ila. Dos 8rinci8ios im8or2an2es son ilus2rados 8or es2a me2@?ora $n 8rimer lugar la l2ima salida es un 8rinci8io, la segunda es que el con2enido de la 8ila es2@ ocul2o. S;lo la 8laca de la 8ar2e su8erior es visible, 8or lo que 8ara ver lo que ha en la 2ercera 8laca, el 8rimer segundo 8la2os 2endr@n que ser re2irados. 3as 8ilas son ?recuen2emen2e u2ilizadas en el desarrollo de sis2emas in?orm@2icos so?2Bare en general. Por e1em8lo, el sis2ema de so8or2e en 2iem8o de com8ilaci;n e1ecuci;n del Pascal u2iliza una 8ila 8ara llevar la cuen2a de los 8ar@me2ros de 8rocedimien2 8rocedimien2os os ?unciones, ?unciones, variables locales, globales din@micas. din@micas. $s2e 2i8o de es2ruc2uras 2ambi7n son u2ilizadas 8ara 2raducir ex8resiones ari2m72icas o cuando se quiere recordar una secuencia de acciones u ob1e2os en el orden inverso del ocurrido. *
T,#i% T ,#i%- e Pi&%3as 8ilas no son es2ruc2uras ?undamen2ales de da2os es decir no es2@n de?inidas como 2ales en los lengua1es de 8rogramaci;n. Para su re8resen2aci;n requieren de o2ras $Ds, como
Arreglos n arreglo es un con1un2o de da2os o una es2ruc2ura de da2os homog7neos que se encuen2ran ubicados en ?orma consecu2iva en la memoria &AM Fsirve &AM Fsirve 8ara almacenar da2os en ?orma 2em8oralG. da2os ?undamen2ales, 8uede ser usada 8ara Lstas: es una de las es2ruc2uras de da2os ?undamen2ales, im8lemen2ar o2ras es2ruc2uras de da2os. na 8ila cuen2a con ' o8eraciones im8rescindibles a8ilar desa8ilar, a las que en las im8lemen2aciones modernas de las 8ilas se suelen aLadir m@s de uso habi2ual. •
•
•
•
•
•
Crear: se crea la 8ila vacía. Fcons2ruc2orG Tama-o: regresa el nmero de elemen2os de la 8ila. FsizeG A)lar: se aLade un elemen2o a la 8ila.F8ushG Desa)lar: se elimina el elemen2o ?ron2al de la 8ila.F8o8G Cma: devuelve el elemen2o que es2@ en la cima de la 8ila. F2o8 o 8eeKG #a*+a: devuelve cier2o si la 8ila es2@ sin elemen2os o ?also en caso de que con2enga uno.
2ilizan arreglos. $s im8or2an2e de?inir el 2amaLo del m@ximo de la 8ila, así como una variable auxiliar que se denomina +"P$. $s2@ variable se u2iliza u2iliza 8ara indicar indicar el l2imo elemen2o que se inser2; en la 8ila.
:
Por e1em8lo, una 8ila 8uede comenzar en una 8osici;n de la memoria de mil, am8l am8lia iarr 8or 8or deba deba1o 1o de las las direc direcci cion ones es,, en cuo cuo caso, caso, los los nuev nuevos os da2o da2oss se almacenan en lugares que van 8or deba1o de )(((, el 8un2ero de 8ila se decremen2o cada vez que un nuevo elemen2o se agrega. Cuando un 2ema es eliminado de la 8ila, el 8un2ero de 8ila se incremen2a. 3os 8un2eros de 8ila 8ueden a8un2ar al origen de una 8ila o de un nmero limi2ado de direcciones, a sea 8or encima o 8or deba1o del origen Fde8endiendo de la direcci;n direcci;n en que crece la 8ilaG, sin embargo el 8un2ero de 8ila no 8uede cruzar el origen de la 8ila. $n o2ras 8alabras, si el origen de la 8ila es2@ en la direcci;n )((( la 8ila crece hacia aba1o Fhacia las direcciones <<<, <
Se hace re?erencia a una 8ila 8or medio de un a8un2ador hacia el elemen2o elemen2o en la cima de la 8ila. $l miembro liga del l2imo nodo de la 8ila, se es2ablece en !33 8ara indicar el ?ondo de la 8ila. na 8ila es una versi;n res2ringida de una lis2a ligada. 3os nuevos nodos 8ueden aLadirse eliminarse de una 8ila s;lo en la cima. Para el mane1o de los da2os se cuen2a con dos o8eraciones b@sicas a8ilar F8ushG, que coloca un ob1e2o en la 8ila, su o8eraci;n inversa, re2irar Fo desa8ilar, 8o8G, que re2ira el l2imo elemen2o a8ilado.
Algortmo e /na )la •
Var P#3A arra )..3"!QMA>R de en2eros
•
4unci;n VACA T sub8rograma ?unci;n VACAU
•
#nicio
•
Si 8 (
•
$n2onces VAC#A cier2o
•
Sino VAC#A ?also
•
4insi
•
V VAC#A
•
4in
•
procedimiento M$+$& FPSHGU T procedimiento
•
8rocedimien2o M$+$&
•
#nicio
•
Si P 3"!QMA>
•
en2onces
•
escribir Oerror en M$+$&O
N
•
escribir Odesbordamien2o de la 8ilaO
•
Sino
•
PPE)
•
SFPG >
•
4insi
•
4in
•
Procedimien2o SACA&
•
#nicio
•
Si VAC#A Tinvocaci;n a la ?unci;n VAC#AU
•
$n2onces
•
$scribir Oerror en SACA&O
•
$scribir O8ila vacíaO
•
Sino
•
> SFPG
•
PPW)
•
4insi
•
4in
<
A.&i%i# e Pi&%na 8ila es normalmen2e re8resen2ada en los ordenadores 8or un bloque de celdas de memoria, con los Ode aba1oO en una ubicaci;n ?i1a, el 8un2ero de 8ila de la direcci;n ac2ual de la OcimaO de c7lulas de la 8ila. A8ilando un elemen2o en la 8ila, se a1us2a el 8un2ero de 8ila 8or el 2amaLo de elemen2os Fa sea decremen2o o incremen2ar, en ?unci;n de la direcci;n en que crece la 8ila en la memoriaG, que a8un2a a la 8r;xima celda, co8ia el nuevo elemen2o de la cima en @rea de la 8ila. De8endiendo de nuevo sobre la a8licaci;n exac2a, al ?inal de una o8eraci;n de a8ilar, el 8un2ero de 8ila 8uede seLalar a la siguien2e ubicaci;n no u2ilizada en la 8ila, o 2al vez a8un2e al m@ximo elemen2o de la 8ila. Si la 8ila a8un2a al m@ximo elemen2o de la 8ila, el 8un2ero de 8ila se ac2ualizar@ an2es de que un nuevo elemen2o se a8ile, si el 8un2ero que a8un2a a la 8r;xima ubicaci;n dis8onible en la 8ila, que se ac2ualizar@ des8u7s de que el m@ximo elemen2o se a8ile en la 8ila. Al u2ilizar arreglos 8ara im8lemen2ar 8ilas se 2iene la limi2aci;n de que se debe reservar el es8acio en memoria con an2ici8aci;n. na vez dado un m@ximo de ca8acidad a la 8ila no es 8osible inser2ar un nmero de elemen2os maor que el m@ximo es2ablecido. Si es2o ocurre, en o2ras 8alabras si la 8ila es2@ llena se in2en2a inser2ar un nuevo elemen2o, se 8roducir@ un error conocido como desbordamien2o Wover?loB. na 8osible soluci;n a es2e 2i8o de inconvenien2es consis2e en de?inir 8ilas de gran 2amaLo, 8ero es2o resul2ar@ ine?icien2e cos2oso si solo se u2ilizar@n algunos elemen2os. !o siem8re es viable saber con exac2i2ud el nmero de elemen2os a 2ra2ar, siem8re exis2e la 8osibilidad de que ocurra un error de desbordamien2o. 3as 3as 8ila 8ilass son son es2r es2ruc uc2u 2ura rass mu mu usada usadass en la solu soluci ci;n ;n de dive diverso rsoss 2i8os 2i8os de 8roblemas, en el @rea de com8u2aci;n. Algunos de los casos m@s re8resen2a2ivos de a8licaci;n de las mismas son
)(
Llamaas a s/b)rogramas Cuando se 2iene un 8rograma que llama a un sub8rograma, 2ambi7n conocido como m;dulo o ?unci;n, in2ernamen2e se usan 8ilas 8ara guardar el es2ado de las variables del 8rograma, así como ins2rucciones 8endien2es de e1ecuci;n en el momen2o momen2o que se hace la llamada. Cuando 2ermina 2ermina la e1ecuci;n e1ecuci;n del sub8rograma, sub8rograma, los valores almacenados en la 8ila se recu8eran 8ara con2inuar con la e1ecuci;n del 8rograma en el 8un2o en el cual ?ue in2errum8ido. in2errum8ido. Adem@s Adem@s de las variables se recu8era la direcci;n del 8rograma en la que se hizo la llamada, 8or que a esa 8osici;n se regresa el con2rol del 8roceso.
Re*/rs(a n 8roblema que 8ueda ser de?inido en ?unci;n de su 2amaLo, 2amaLo, sea es2e !, 8ueda ser dividido en ins2ancias ins2ancias m@s 8equeLas 8equeLas FX !G del mismo 8roblema 8roblema se conozca la soluci;n ex8líci2a a las ins2ancias m@s sim8les, lo que se conoce como casos base, se 8uede a8licar inducci;n inducci;n sobre sobre las llamadas m@s 8equeLas su8oner que es2as quedan resuel2as.
Tratamento Tratamento e e0)resones artm1t*as 1. A B = I nfij a 2. AB = posfij a 3. AB = Pr efij a A+B = I nfij a :$s2a
no2aci;n es #n?i1a 8orque el o8erador se encuen2ra en2re los o8eradores . AB+ = pos fij a :$s2a no2aci;n es Pos?i1a 8orque el o8erador se encuen2ra des8u7s de los o8eradores. $s2a es una una no2a no2aci; ci;n n Pre? Pre?i1i1a a B = Pr efij a:$s2a +A 8orqu 8orque e el o8era o8erador dor se encu encuen en2r 2ra a an2e an2ess de los o8eradores.
Orena*2n "rdenar signi?ica reagru8ar o reorganizar un con1un2o de da2os u ob1e2os en una secuencia es8ec es8ecí? í?ica ica 3a orden ordenaci aci;n ;n es una una ac2iv ac2ivid idad ad ?undamen2al.
))
CO'AS EN IN(ORMATICA IN(ORMATICA )*+, e- +#% CO'A/ Una *ola es /na estr/*t/ra en one los elementos son nsertaos en el n*o 3,ront4 e la msma5 6 retraos al ,nal e la msma5 ebo a ello el *om)ortamento e /na *ola se *ono*e *omo FIFO 3 )rmero en entrar5 )rmero )rmero en salr 4. 3as colas se u2ilizan en sis2emas in?orm@2icos, 2rans8or2es o8eraciones de inves2igaci;n Fen2re o2rosG, d;nde los ob1e2os, 8ersonas o even2os son 2omados como da2os que se almacenan se guardan median2e colas 8ara su 8os2erior 8rocesamien2o. $s2e 2i8o de es2ruc2ura de da2os abs2rac2a se im8lemen2a en lengua1es orien2ados a ob1e2os median2e clases, en ?orma de lis2as enlazadas.
na cola es una colecci;n de elemen2os homog7neos Falmacenados en dicha es2ruc2uraG, en la misma se 8ueden inser2ar elemen2os 8or uno de los ex2remos, llamado ?ren2e, re2irar los mismos 8or el o2ro ex2remo, denominado ?inal. $s im8or2an2e aclarar que, 2an2o el ?ren2e como el ?inal de la cola, son los nicos indicados 8ara re2irar e inser2ar elemen2os, res8ec2ivamen2e. $s2o nos indica que no 8odemos acceder acceder direc2amen2e direc2amen2e a cualquier cualquier elemen2o elemen2o de la cola, sino solo al 8rimero, o sea el que es2@ o se encuen2ra en el ?ren2e, no se 8ueden inser2ar elemen2os en cualquier 8osici;n sino solo 8or el ?inal, así el elemen2o inser2ado queda como l2imo. Por es2a es2a raz;n raz;n la cola cola es denomi denominad nada a una es2ruc es2ruc2ur 2ura a 4.#.4. #.4."., o sim8le sim8lemen men2e 2e una lis2a 4.#.4." #.4."., ., es2o re8resen2a re8resen2a el acr;nimo acr;nimo de las 8alabras 8alabras inglesas inglesas I?irs2 I?irs2 in, ?irs2 ou2 F8rimero en en2rar, 8rimero en salirG.
)'
T,#i% T ,#i% e C&%$l uso de las colas es variado en2re algunos 2i8os 2enemos Colas *r*/lares 3anllos4: 3anllos4: en las que el l2imo elemen2o el 8rimero es2@n unidos. ellas, s, los los elem elemen en2o 2oss se Colas Col as e )r )ror ora a : $n ella a2ie a2iend nden en en el orde orden n indic indicado ado 8or 8or una una 8rior 8riorida idad d asociada a cada uno. Si varios elemen2os 2ienen la misma 8rioridad, se a2ender@n de modo convencional seg segn n la 8osi 8osici ci;n ;n que que ocu8 ocu8en en.. Ha Ha ' ?orm ?ormas as de im8lemen2aci;n ALadir un cam8o a cada nodo con su 8rio 8riori rida dad. d. &esu &esul2l2a a conv conveni enien en2e 2e man2 man2en ener er la cola cola ordenada 8or orden de 8rioridad. Crear rear 2an2 2an2as as colas olas como omo 8ri 8riori oridade dadess ha haa, almacenar cada elemen2o en su cola.
&*olas:: son colas en donde los nodos se 8ueden aLadir qui2ar 8or ambos ex2remos se &*olas les llama D$6$ FDouble $nded 6$ueG. Para re8resen2ar las bicolas lo 8odemos hacer con un arra circular con #nicio 4in que a8un2en a cada uno de los ex2remos. Ha varian2es •
&*olas e entraa restrnga: Son aquellas donde la inserci;n s;lo se hace 8or
•
el ?inal, aunque 8odemos eliminar al inicio o al ?inal. &*olas e sala restrnga: Son aquellas donde s;lo se elimina 8or el ?inal, aunque se 8uede inser2ar al inicio al ?inal.
)/
3as o8eraciones que se 8ueden realizar con una cola son
%.
A**e **eer al )rmer elemento e la Cola
7.
A-ar /n /n elemento al ,nal e la la Cola
8.
Elmnar el )r )rmer el elemento e e la la Co Cola
9.
#a*ar /na Cola
.
#er,*ar el el estao e la Cola: (a*+a5 Llena.
)0
A.&i%i# e C&%-
3as Colas 2ambi7n se u2ilizan en muchas maneras en los sis2emas o8era2ivos 8ara 8lani?icar el uso de los dis2in2os recursos de la com8u2adora. com8u2adora. no de es2os recursos es la 8ro8ia CP Fnidad Cen2ral de Procesamien2oG.
)*
Si es2@ 2raba1ando en una sis2ema mul2iusuario, cuando le dice a la com8u2adora que e1ecu2e un 8rograma concre2o, concre2o, el sis2ema o8era2ivo aLade su 8e2ici;n a su Ocola de 2raba1oO. 2raba1oO.
Cuando su 8e2ici;n llega al ?ren2e de la cola, el 8rograma solici2ado 8asa a e1ecu2arse. #gualmen2e, las colas se u2ilizan 8ara asignar 2iem8o a los dis2in2os usuarios de los dis8osi2ivos de en2radaYsalida F$YSG, im8resoras, im8resoras, discos, cin2as dem@s. $l sis2ema o8era2ivo man2iene colas 8ara 8e2iciones de im8rimir, leer o escribir en cada uno de es2os dis8osi2ivos.
A)l*a*ones re*tas: • • • • • • •
His2;rico de 8@ginas visi2adas en un broBser bro Bser de Beb Secuencia de Iundo en un edi2or de 2ex2os. Cadena de llamadas a m72odos en JVM o medioambien2e run2ime en CEE. Parsers en com8iladores Freconocedores sin2ac2icosG. SS"" Conver2ir no2aci;n in?i1a a 8os?i1a o 8re?i1a. #m8lemen2aci;n de recursividad.
A)l*a*ones nre*tas: • •
$s2ruc2uras de da2os auxiliares 8ara algori2mos. Com8onen2es de o2ras es2ruc2uras de da2os.
Ha ' ?ormas de im8lemen2aci;n ). ALadir un cam8o cam8o a cada nodo nodo con su su 8rioridad. 8rioridad. &esul2a &esul2a conveni convenien2e en2e man2ener man2ener la cola cola ordenada ordenada 8or orden de 8rioridad. '. /. Crear 2an2as 2an2as colas colas como 8rioridade 8rioridadess haa, almacenar almacenar cada elemen2o elemen2o en su cola. cola.
):
PI'AS CO'AS 3a di?erencia radica en cuales son los elemen2os que salen 8rimero. Pilas F8rimeras en en2rar, l2imas en salirG son como una 8ila de libros, los 8rimeros que en2ran a la 8ila son los l2imas que salen 8orque quedan deba1o de los l2imos.
Colas FPrimeras en2rar, 8rimeras en salirG Son como la cola 8ara com8rar un bole2o del cine, los 8rimeros en en2rar ala cola son los 8rimeros que salen de ella.
"2ra di?erencia es que en las 8ilas los í2ems se aLaden se eliminan en el mismo ex2remo. Se en2iende 8or cola una es2ruc2ura de da2os en la que se aLaden nuevos í2ems en un ex2remo se su8rimen in2ems vie1os en el o8ues2o. A di?erencia de las colas, en las 8ilas los í2ems se aLaden se eliminan en el mismo . 3as 8ilas las colas son es2ruc2uras de da2os
)
homog7neas.
ANE5OS
)N
)<