You are on page 1of 76

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

MARZO / 2009
Todo lo que se necesita sa e! so !e" #ilas $ colas $ a! oles Todo esto implementado en cdigo java.

Capitulo I: Pila capitulo II: Cola capitulo III: Arbol Ejemplos aplicativos

Facultad de Ingeniera de Sistemas

ESTRUCTURA DE DATOS EN JAVA


Yerson Carhuallanqui Palian

1
Pri'era E(icion# no re)isa(o Hecho con: Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los trminos de la Licencia Commons Creative

Pgina | 1 lash!inu"Libre # $%%&sin dudas revolucion el mundo, nos corresponde a nosotros colocarlo El Software en el puesto que se merece !

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

FlashLinux 2009

Est!uctu!a de Datos en %a&a


'ilas $ Colas $ (! oles

Yerson Carhuallanqui palian

lash!inu" # $%%&

Pgina | 2

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

A mis padres !esar y Florencia, Las personas "ue con su ternura # comprensi$n %i&o de m, 'na persona de bien(

A mis %ermanas, )or llenarme de alegra y felicidad

lash!inu" # $%%&

Pgina | 3

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Reconocimiento-Compartir bajo la misma licencia Usted es libre de: Copiar, distribuir y comunicar pblicamente la obra. Hacer obras derivadas.

Bajo las condiciones siguientes: Reconocimiento: Debe reconocer los crditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace su obra). Compartir bajo la misma licencia: i altera o transforma esta obra, o genera una obra derivada solo puede distribuir la obra ba!o una licencia idntica a sta. "l reutili#ar o distribuir la obra, tiene que de!ar bien claro los trminos de la licencia de esta obra. "lguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos del autor. $ada en esta licencia menoscaba o restringe los derechos morales del autor.

lash!inu" # $%%&

Pgina | 4

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

CONTENIDO
CA')TU*O )" ')*AS +, 'ila +,+, O*eraciones +,sica +,2, Arqui-ec-ura +,sica (e una *ila +,-, .'*le'en-aci/n CA')TU*O ))" CO*AS 2, Cola 2,+, Usos concre-os (e la cola 2,2, O*eraciones +,sica 2,-, Varia+les (e ins-ancia en la i'*le'en-aci/n $010 .'*le'en-aci/n CA')TU*O )))" AR.O*ES -, A! ol -,+, No'encla-ura (e los ,r+oles -,2, 2r+ol +inario0 -,-, Con)ir-ien(o a un ,r+ol +inario 3010 .'*le'en-aci/n CA')TU*O )V" EJEM'*OS /,+, E4e'*los 5: Pila /,2, E4e'*los $: Cola /,-, E4e'*los 3: Ar+oles

07

15

22

31

lash!inu" # $%%&

Pgina | 5

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

P R E FA C I O
Dar el *ri'er *aso sie'*re es i'*or-an-e6 *ero -a'+i7n es-o8 se9uro que i9ual o ',s i'*or-an-es a:n ser,n los *asos si9uien-es6 *orque 7s-os re;le4ar,n una con-inui(a( en el co'*ro'iso a(quiri(o en es-e 'un(o (on(e el *rinci*al o+4e-i)o (e+e ser +rin(ar lo 'e4or (e noso-ros 'is'os0 <=ui7n lo i+a a (ecir> <Yo escri+ien(o 'i *ro*io 'anual>6 Ahora -o(o es una reali(a(0 ?ucho se ha escri-o acerca (e que el a*ren(i@a4e no es acci(en-al sino el resul-a(o (irec-o (e es;uer@o 8 'ucha (e(icaci/n6 'uchos )en el a*ren(i@a4e co'o una ac-i)i(a( 'ane4a+le6 no *or el es-A'ulo6 sino *or el *ro*io es-u(ian-e6 quien (e+e querer a*ren(er 8 *ar-ici*ar en el *roceso (e a*ren(i@a4e6 si es que quiere lo9rar un *ro9reso real0 Es i'*or-an-e que el es-u(ian-e re;le"ione acerca (e lo an-erior'en-e e"*ues-o6 cuan(o se encuen-re en el *roceso (e a*ren(i@a4e (e es-a asi9na-ura0 ?uchos 4/)enes leen li+ros 8 'anuales acerca (e es-a asi9na-ura6 -al )e@ *or el a;,n (e en-en(er 'e4or los -e'as -ra-a(os en clase6 *ero 8o no ;ui uno (e ellos0 Yo in-en-o *las'ar -o(o lo a*ren(i(o en es-as ho4as0 Para ;acili-ar el *roceso (e a*ren(i@a4e en el 'un(o (e la *ro9ra'aci/n6 se ha *re*ara(o es-e 'a-erial (e a*o8o6 (e ;,cil lec-ura6 (on(e se han consi(era(o *un-os esenciales -ales co'o: !os as*ec-os que (e+en ser a*ren(i(os6 la ;or'a en que (e+en ser *resen-a(os 8 secuencia(os6 qu7 i(eas (e+en enseBarse an-es que o-ras6 la ;or'a ',s *r,c-ica (e *resen-ar ca(a conce*-oC -o(o es-o *ara que el es-u(ian-e lo9re los o+4e-i)os *ro*ues-os en la asi9na-ura0 DE"i-oD

lash!inu" # $%%&

Pgina | 6

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

CA')TU*O )" ')*AS

Qu es Estructuras de Datos?
Las estructuras de datos son, como su nombre lo indica, estructuras que guardan datos. Pero no son solamente eso, ya que tambin tienen operaciones bsicas para acceder e insertar nuevos datos, lo que las hace eficientes y muy tiles al crear cierto tipo de programas.

Para en-en(er clara'en-e es-e ca*A-ulo6 *ri'ero -en(re'os que recor(ar lo que es !is-as6 8a que una *ila es un -i*o (e !is-a0 Reco!de0os1 entonces1 lo que es una *ista" Una lis-a se (e;ine co'o una serie (e N ele'en-os E56 E$6 0006 EF6 or(ena(os (e 'anera consecu-i)a0 Es (ecir6 el ele'en-o EF Gque se (eno'ina ele'en-o F#7si'oH es *re)io al ele'en-o EFI50 Si la lis-a con-iene % ele'en-os se (eno'ina co'o lis-a )acAa0

!as o*eraciones que se *ue(en reali@ar en la lis-a son: inser-ar un ele'en-o en la *osici/n F6 +orrar el F# 7si'o ele'en-o6 +uscar un ele'en-o (en-ro (e la lis-a 8 *re9un-ar si la lis-a es-, )acAa0 E-c0
lash!inu" # $%%&
Pgina | 7

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

+, ')*A Una *ila Gs-acF o *ush(oJn en in9l7sH es una lis-a or(inal o es-ruc-ura (e (a-os en la que el 'o(o (e acceso a sus ele'en-os es (e -i*o *)2O G(el in9l7s !as- .n irs- Ou-6 3lti0o en ent!a!1 #!i0e!o en sali!H que *er'i-e al'acenar 8 recu*erar (a-os0 !as *ilas son unas (e las es-ruc-uras (e (a-os ',s usa(as (en-ro (e la *ro9ra'aci/n0 En es-e caso se *ue(e usar el ;a'oso (icho: Los primeros ser*n los +ltimos y los +ltimos ser*n los primeros( Una *ila es una lis-a (e ele'en-os en el que se cuen-a con (os o*eraciones +,sicas: a#ila! G*ushH6 que coloca un o+4e-o en la *ila6 8 su o*eraci/n in)ersa6 re-irar Go desa#ila! 4*o*H6 que re-ira el :l-i'o ele'en-o a*ila(o0 En ca(a 'o'en-o s/lo se -iene acceso a la *ar-e su*erior (e la *ila6 es (ecir6 al :l-i'o o+4e-o a*ila(o G(eno'ina(o ci0aH0 !a o*eraci/n (esa*ilar *er'i-e la o+-enci/n (e es-e ele'en-o6 que es re-ira(o (e la *ila *er'i-ien(o el acceso al si9uien-e Ga*ila(o con an-eriori(a(H6 que *asa a ser la nue)o ci'a0

Figura ,(, En la figura ,(,6 el ele'en-o E ha si(o el :l-i'o en in9resar a la *ila0 Si se quiere eli'inar un ele'en-o (e la *ila6 7s-e (e+e ser el :l-i'o que in9res/0 O sea el :l-i'o en en-rar es el *ri'ero en salir0 'a!a e5#lica! 0e%o! el conce#to de #ilas1 to0e0os el si6uiente caso" Su*on9a'os que so'os *ersonas que nos a*asiona leer li+ros GO4o: solo es-a'os su*onien(oH6 Si us-e( -iene un li+ro (e )rogramacion en la 'ano 8 (eseas u+icarlo en un lu9ar cualquiera6 en es-e caso en -u escri-orio6 lo colocarAas sin nin9:n *ro+le'a0 -Figura ,(./

Pro9ra'aci/

Figura ,(.

lash!inu" # $%%&

Pgina | 8

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Ahora +ien6 8a -ene'os u+ica(o nues-ro *ri'er li+ro0 A con-inuaci/n u+ica'os un se9un(o li+ro GestadsticaH enci'a (el *ri'er li+roC *ues +ien6 es-e *roceso (e u+icar un li+ro enci'a (el o-ro se lla'a a*ilar0 O-ro conce*-o que )a'os a u-ili@ar es la ci0a (e la *ilaC es (ecir6 el )alor que es-a al inicio (e la *ila6 en el 9ra;ico si9uien-e la ci'a es el li+ro (e es-a(As-ica 8 si a*ila'os un -ercer li+ro la ci'a )en(rAa ser es-e -ercer li+ro0 Vea'os c/'o )a que(an(o nues-ro 9r,;ico -Figura ,(0/(

Es-a(As-ica Pro9ra'aci/

C)MA

Figura ,(0 Kueno con es-o creo que se en-ien(e 'e4or lo que es-, escri-o lAneas arri+a: 7El 3lti0o que ent!a es el #!i0e!o que sale81 Claro que es-o se cu'*le6 *ues us-e( )a a *o(er re-irar o desapilar el :l-i'o li+ro que a*il/0 Y si *or al9:n 'o-i)o (eseas re-irar el li+ro (e #!o6!a0aci9n lo *ri'ero que -en(r,s que hacer es (esa*ilar el li+ro (e es-a(As-ica0 A(e',s (e es-o us-e( solo *ue(e a*ilar en la ci'a (e la *ila0 A:o!a #ode0os !e#!esenta! nuest!os li !os co0o una #ila" Si lo lle)a'os el caso an-erior a una *ila6 que(arAa (e la si9uien-e 'anera -Figura,(1/( El *ri'er li+ro que a*ila'os es el li+ro (e *ro9ra'aci/n6 lue9o el se9un(o li+ro a*ila(o ;u7 (e es-a(As-ica6 aquA se *ue(e o+ser)ar clara'en-e que la inserci/n (e ele'en-os en la *ila se reali@a *or la ci'a o inicio6 co'o 8a lo ha+Aa'os 'enciona(o an-erior'en-e0

Figura,(1 Para en-en(er 'e4or6 la ;i9ura an-erior se *ue(e )isuali@ar (e la si9uien-e 'anera:

Figura ,(2
lash!inu" # $%%&
Pgina | 9

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

+,+,

O'ERAC)ONES .(S)CAS

!as *ilas *ro)een (e las si9uien-es o*eraciones: a#ila!45; desa#ila!4; ci0a4; anula4; estaVacia4; )nse!ta el ele0ento 5 en el to#e o ci0a de la #ila, Eli'ina el ele'en-o que se encuen-ra en la ci'a (e la *ila0 re-orna el ele'en-o que se encuen-re en el -o*e o ci'a (e la *ila6 *ero sin eli'inarlo (e 7s-a G-o* en in9l7sH0 Korra -o(os los ele'en-os (e la *ila0 Re-orna )er(a(ero si la *ila no con-iene ele'en-os6 ;also en caso con-rario0

Nota: Al9unos au-ores (e;inen (esa*ilar co'o sacar el ele'en-o (el -o*e (e la *ila 8 re-ornarlo0 +,2, A!quitectu!a <sica de una #ila Una *ila -A*ica es un ,rea (e la 'e'oria (e los co'*u-a(ores con un ori9en ;i4o 8 un -a'aBo )aria+le0 Al *rinci*io6 el -a'aBo (e la *ila es cero0 Un *un-ero (e *ila6 *or lo 9eneral en ;or'a (e un re9is-ro (e har(Jare6 a*un-a a la ',s recien-e locali@aci/n en la *ilaC cuan(o la *ila -iene un -a'aBo (e cero6 el *un-ero (e *ila (e *un-os en el ori9en (e la *ila0 !as (os o*eraciones a*lica+les a -o(as las *ilas son:

Una o#e!aci9n a#ila!6 en el que un ele'en-o (e (a-os se coloca en el lu9ar a*un-a(o *or el *un-ero (e *ila6 8 la (irecci/n en el *un-ero (e *ila se a4us-a *or el -a'aBo (e los (a-os (e *ar-i(a0 Una o#e!aci9n desa#ila!: un ele'en-o (e (a-os en la u+icaci/n ac-ual a*un-a(o *or el *un-ero (e *ila es eli'ina(o6 8 el *un-ero (e *ila se a4us-a *or el -a'aBo (e los (a-os (e *ar-i(a0

Ha8 'uchas )ariaciones en el *rinci*io +,sico (e las o*eraciones (e *ila0 Ca(a *ila -iene un lu9ar ;i4o en la 'e'oria en la que co'ien@a0 Co'o los (a-os se aBa(ir,n a la *ila6 el *un-ero (e *ila es (es*la@a(o *ara in(icar el es-a(o ac-ual (e la *ila6 que se e"*an(e le4os (el ori9en G8a sea hacia arri+a o hacia a+a4o6 (e*en(ien(o (e la a*licaci/n concre-aH0

+,-, )M'*EMENTAC)=N Para *o(er i'*le'en-ar nues-ro *ro9ra'a6 hare'os uso (e un so;-JareC en nues-ro caso usare'os Ne-Keans .DE L0%0

lash!inu" # $%%&

Pgina | 10

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Ta'+i7n se *ue(e u-ili@ar o-ro so;-Jare co'o JCrea-or que -a'+i7n nos *er'i-e i'*le'en-ar c/(i9o 4a)a6 *ero lo que real'en-e nos in-eresa es la i'*le'en-aci/n (el c/(i9o 8 no el so;-Jare0 Kueno lo que hare'os ser, crear la clase *ila e i'*le'en-ar las o*eraciones +,sica que reali@a6 co'o 8a sa+e'os en una *ila se *ue(e inser-ar ele'en-os al que noso-ros lo lla'a'os a#ila!1 *o(e'os desa#ila!6 o+-ener el )alor (e la ci0a1 anula! o +orrar -o(a la *ila6 8 sa+er si la *ila es-, )acAa o llena0 En-onces ahA )a'os6 es*ero que no se *ier(an0 EJEM'*O 0+" .'*le'en-ar un *ro9ra'a que al'acene n:'eros en-eros *osi-i)os6 el *ro9ra'a (e+e reali@ar las o*eraciones +,sicas (e una *ila Ganula!6 a#ila!6 desa#ila!6 'os-rar la ci0a6 )eri;icar si la *ila est< &ac>a6 'os-rar el contenidoH0 E4e'*lo: si in9resa'os los n:'eros 56 $6 3 8 1 (e+e que(ar (e la si9uien-e 'anera0

Figura ,(3 .'*le'en-aci/n (e la clase *ila:


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M in- no'+reC NN *ara el )alor que )a al'acenar No(o s9-eC NN a*un-a(or al si9uien-e No(o O No(o inicio P nullC No(o ;in P nullC NNeli'ina -o(o los ele'en-os (e la *ila0 *u+lic )oi( anulaGH M inicio P ;in P nullC O

lash!inu" # $%%&

Pgina | 11

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NN.'*le'en-acion (el 'e-o(o a*ilar que nos *er'i-e inser-ar un ele'en-o en la *ila6 en es-e caso co'o se -ra-a (e una *ila inser-a'os en el inicio o ci'a (e la *ila0 *u+lic )oi( a*ilarGin- "H M NN crea'os un No(o -e'*oral *ara al'acenar el )alor que )a'os a inser-ar0 No(o -e'* P neJ No(oGHC -e'*0no'+re P "C i; Ginicio PP nullH M ;in P inicioC O -e'*0s9-e P inicioC inicio P -e'*C O

NN .'*le'en-acion (el 'e-o(o (esa*ilar6 que nos *er'i-e qui-ar un ele'en-o (e la *ila6 en es-e caso qui-a'os el ele'en-o que es-a en la ci'a *u+lic )oi( (esa*ilarGH M i; Ginicio PP nullHM JO*-ionPane0shoJ?essa9eDialo9Gnull6 QPila )acAa000QHC O else M inicio P inicio0s9-eC O O NN.'*le'en-acion (el 'e-o(o C.?A6 que nos re-orna el )alor (e la ci'a co'o un nu'ero en-ero0 *u+lic in- ci'aGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-urn G#5HC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0no'+reC O O

NN.'*le'en-acion (el 'e-o(o es-aVacio0 *u+lic +oolean es-aVacioGH M i; Ginicio PP nullHM NN si la *ila es-, )acio re-ornar )er(a(ero0
lash!inu" # $%%&
Pgina | 12

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

re-urn -rueC O else M NN si no re-ornar ;also0 re-urn ;alseC O O NN.'*le'en-acion (el 'e-o(o con-eni(o6 que nos *er'i-e )isuali@ar el con-eni(o (e la *ila0 *u+lic )oi( con-eni(oGH M No(o -e'* P inicioC S-rin9 ca( P QEl con-eni(o (e la *ila es:RnQC Jhile G-e'* SP nullH M ca( IP -e'*0no'+re I QRn QC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O O

.'*le'en-aci/n (e la Clase Prue+aPila que u-ili@a la clase *ila:


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aPila M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sHM *ila * P neJ *ilaGHC in- no'+reC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP 1C iIIH M no'+re P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9G Q.n9rese )alor a a*ilar: QHHC *0a*ilarGno'+reHC O

NN?os-ra'os el con-eni(o (e la *ila0 *0con-eni(oGHC


lash!inu" # $%%&
Pgina | 13

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NNO+-ene'os el )alor (e la ci'a0 JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q!a ci'a es: Q I *0ci'aGHHC NNDesa*ila'os un ele'en-o (e la *ila6 en es-e caso se (esa*ila la ci'a0 *0(esa*ilarGHC *0con-eni(oGHC NN )eri;ica'os si la *ila es-, )acio000 JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q<!a *ila es-, )acio>: Q I *0es-aVacioGHHC NNU-ili@a'os el 'e-o(o anula *ara eli'inar -o(o el con-eni(o (e la *ila0 *0anulaGHC NN o-ra )e@ )eri;ica'os si la *ila es-, )acio G(e+eria re-ornar )er(a(ero 8a que el con-eni(o (e la *ila ;ue eli'ina(aH JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q<!a *ila es-, )acio>: Q I *0es-aVacioGHHC O O

lash!inu" # $%%&

Pgina | 14

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

CA')TU*O ))" CO*AS

CO*AS
2, CO*A El no'+re ',s co':n (e 7s-a es-ruc-ura (e (a-os es cola aunque 8o la *re;erirAa lla'ar ;ila *or ra@ones o+)ias0 Es-a es-ruc-ura (e (a-os ;unciona co'o una ;ila (e -urnos6 al *ri'ero que lle9a se le a-ien(e *ri'ero 8 al :l-i'o que lle9a se le a-ien(e al :l-i'o0 Tal 8 c/'o en la -aquilla (el cine0 De es-a 'anera6 al acce(er a una cola6 se acce(e al *ri'er ele'en-o que se in-ro(u4o6 lue9o al se9un(o6 lue9o al -ercero 8 asA sucesi)a'en-e0

Las colas se utilizan en sistemas informticos, transportes, operaciones de investigacin entre otros!, dnde los ob"etos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. #ste tipo de estructura de datos abstracta se implementa en lengua"es orientados a ob"etos mediante clases, en forma
de listas enlazadas.

Ta'+i7n se conoce a las colas co'o lis-as 2)2O G .RST .N # .RST OUT: el #!i0e!o que ent!a es el #!i0e!o que sale;, A;or-una(a'en-e en un sis-e'a in;or',-ico no se cuela na(ie sal)o que el *ro9ra'a(or lo (i9a0 Es-o se en-ien(e (e la si9uien-e 'anera: El *ri'er ele'en-o en en-rar es el *ri'ero en salir0 -Figura .(,/

lash!inu" # $%%&

Pgina | 15

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Figura .(, Para aclararlo6 se 'ues-ran una serie (e 9r,;icos e"*lica-i)os6 *ar-ien(o (e un cola &ac>a6 es (ecir6 una cola nulo0

!ola 4aca

Se encola un 0(

Se encolan el 2 y el 6( Se obtiene una cola contenida(

Se desencola el 05 a%ora se tiene una cola 4aca(

Si se desencola se obtiene el 2(

2,+, Usos conc!etos de la cola !a *ar-iculari(a( (e una es-ruc-ura (e (a-os (e cola es el hecho (e que s/lo *o(e'os acce(er al *ri'er 8 al :l-i'o ele'en-o (e la es-ruc-ura0 AsA 'is'o6 los ele'en-os s/lo se *ue(en eli'inar *or el *rinci*io 8 s/lo se *ue(en aBa(ir *or el ;inal (e la cola0 E4e'*los (e colas en la )i(a real serAan: *ersonas co'*ran(o en un su*er'erca(o6 es*eran(o *ara en-rar a )er un *ar-i(o (e +7is+ol6 es*eran(o en el cine *ara )er una *elAcula6 una *equeBa *eluquerAa6 e-c0 !a i(ea esencial es que son -o(as lAneas (e es*era0 En es-os casos6 el *ri'er ele'en-o (e la lis-a reali@a su ;unci/n G*a9ar co'i(a6 *a9ar en-ra(a *ara el *ar-i(o o *ara el cineH 8 (e4a la cola0 Es-e 'o)i'ien-o es-, re*resen-a(o en la cola *or la ;unci/n *o* o (esencolar0

lash!inu" # $%%&

Pgina | 16

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Ca(a )e@ que o-ro ele'en-o se aBa(e a la lis-a (e es*era se aBa(en al ;inal (e la cola re*resen-an(o la ;unci/n *ush o encolar0 Ha8 o-ras ;unciones au"iliares *ara )er el -a'aBo (e la cola Gsi@eH6 *ara )er si es-, )acAa en el caso (e que no ha8a na(ie es*eran(o Ge'*-8H o *ara )er el *ri'er ele'en-o (e la cola G;ren-eH0 'a!a que este conce#to quede cla!o a continuaci9n de #!esento un caso" Su*o9a'os que so'os clien-e (e un +anco0 Weneral'en-e6 cuan(o uno )a a reali@ar cualquier o*eraci/n +ancaria6 nos encon-ra'os a 'uchas *ersonas es*eran(o ser a-en(i(as6 7s-as *ersonas es*eran or(ena(a'en-e se9:n la or(en (e lle9a(a (e ca(a clien-eC es (ecir6 si un clien-e lle9/ *ri'ero al +anco ser, el *ri'ero en ser a-en(i(a6 'ien-ras que los (e',s (e+en es*erar su -urno0 Al9o si'ilar ocurre en la i'*le'en-aci/n (e colas1 los ele'en-os que se inser-an se reali@an al ;inal (e la cola6 'ien-ras que los ele'en-os que se )an a eli'inar se reali@an al inicio o al ;ren-e (e (icha cola0 Kueno si9a'os con nues-ro caso6 su*on9a'os que el clien-e Cesar lle9a al +anco6 se9ui(a'en-e lle9a el si9uien-e clien-e Juan6 si or(ena'os se9:n la or(en (e lle9a(a se o+ser)a la si9uien-e ;i9ura0

Figura .(.

Si lo re*resen-a'os en una cola6 la ;i9ura serAa el si9uien-e:

Figura .(0

78u pasa con la cola si llega el tercer cliente marcos9 7:onde se inserta el elemento9

lash!inu" # $%%&

Pgina | 17

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Co'o 8a 'enciona'os lAneas arri+a6 en una cola los ele'en-os se inser-an al ;inal6 *or lo que la cola que(arAa (e la si9uien-e 'anera:

Figura .(1

2,2, O'ERAC)ONES .(S)CAS !as colas *oseen las si9uien-es o*eraciones +,sicas: encola!45; desencola!4; ?!ente4; anula4; estaVacia4; )nse!ta el ele0ento 5 al ?inal de la cola Eli'ina el ele'en-o que se encuen-ra al ;ren-e (e la cola0 re-orna el ele'en-o que se encuen-re en el ;ren-e (e la cola6 *ero sin eli'inarlo (e 7s-a G-o* en in9l7sH0 Korra -o(os los ele'en-os (e la *ila0 Re-orna )er(a(ero si la *ila no con-iene ele'en-os6 ;also en caso con-rario0

2,-, VAR)A.*ES DE )NSTANC)A EN *A )M'*EMENTAC)=N )nicio" in(ica el An(ice (e la *osici/n (el *ri'er ele'en-o (e la cola6 es (ecir6 la *osici/n el ele'en-o a re-ornar cuan(o se in)oque sacar0

2in" in(ica el An(ice (e la *osici/n (e :l-i'o ele'en-o (e la cola0 Si se in)oca encolar6 el ele'en-o (e+e ser inser-a(o en el casillero si9uien-e al que in(ica la )aria+le0

2,/, )M'*EMENTAC)=N Ahora i'*le'en-are'os la clase cola 8 sus *rinci*ales o*eraciones que reali@a: De la 'is'a 'anera que reali@a'os la i'*le'en-acion (e *ilas6 ahora reali@a'os en colas0 Co'o en el caso an-erior6 nues-ra cola -a'+ien al'acenar, nu'eros en-eros0

lash!inu" # $%%&

Pgina | 18

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

EJEM'*O 0+" )0#le0entaci9n de la clase cola"


NN.'*le'en-acion 8 (e'os-racion +asica (e Colas0 i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Cola M NNCreacion (e la clase No(o class No(o M in- no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN.'*le'en-acion (el 'e-o(o anula6 que li'*ia -o(a la cola0 *u+lic )oi( anulaGH M inicio P ;in P nullC O NN'e-o(o que inser-a un ele'en-o al ;inal (e la cola0 *u+lic )oi( encola!Gin- "H M No(o -e'* P neJ No(oGHC NN crea'os un nue)o No(o -e'*oral0 i; G-e'* PP nullH M JO*-ionPane0shoJ?essa9eDialo9Gnull6 QError (e asi9nacion000QHC O else M -e'*0no'+re P "C NN Poner al ;inal (e la cola i; G;in SP nullH M ;in0s9-e P -e'*C O ;in P -e'*C -e'*0s9-e P nullC i; Ginicio PP nullHM inicio P ;inC O O O
lash!inu" # $%%&
Pgina | 19

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NN'e-o(o que eli'ina el )alor que es-a al ;ren-e0 *u+lic )oi( desencola!GH M i; Ginicio PP nullH M JO*-ionPane0shoJ?essa9eDialo9Gnull6 QCola )acAa000QHC O else M NN =ui-ar (el *rinci*io (e la cola inicio P inicio0s9-eC O O NN 'e-o(o que re-orna el )alor (e la cola (el ;ren-e0 *u+lic in- ?!enteGH M i; Ginicio PP nullH M NN si la cola es )acAa re-orna #5 JO*-ionPane0shoJ?essa9eDialo9Gnull6 QCola )acAa000QHC re-urn G#5HC O else M NN re-orna el )alor que es-a al ;ren-e000 re-urn inicio0no'+reC O O NN'e-o(o que nos *er'i-e )eri;icar si la *ila es-a )acia o con-eni(o *u+lic +oolean estaVacioGHM i; Ginicio PP nullHM NN si al *ila se encuen-ra )acion re-ornar )er(a(ero0 re-urn -rueC Oelse M re-urn ;alseC O O

NN'ues-ra el con-eni(o (e la cola *u+lic )oi( contenidoGH M No(o -e'* P inicioC S-rin9 ca( P Q.'*resi/n (e la cola:RnQC Jhile G-e'* SP nullH M ca( IP -e'*0no'+re I Q ##X QC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O O

lash!inu" # $%%&

Pgina | 20

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

.'*le'en-aci/n (e la clase '!ue aCola6 que u-ili@a la clase cola: i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aCola M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M Cola C P neJ ColaGHC in- no'+reC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP 1C iIIH M no'+re P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9G Q.n9rese )alor a encolar: QHHC C0encolarGno'+reHC O NN?os-ra'os el con-eni(o (e la *ila0 C0con-eni(oGHC NNO+-ene'os el )alor (e la ci'a0 JO*-ionPane0shoJ?essa9eDialo9Gnull6QEl )alor que es-a al ;ren-e es: Q I C0;ren-eGHHC NNDesa*ila'os un ele'en-o (e la *ila6 en es-e caso se (esa*ila la ci'a0 C0(esencolarGHC C0con-eni(oGHC NN )eri;ica'os si la *ila es-, )acio000 JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q<!a cola es-, )acio>: Q I C0es-aVacioGHHC

NNU-ili@a'os el 'e-o(o anula *ara eli'inar -o(o el con-eni(o (e la *ila0 C0anulaGHC NN o-ra )e@ )eri;ica'os si la *ila es-, )acio G(e+eria re-ornar )er(a(ero 8a que el con-eni(o (e la *ila ;ue eli'ina(aH JO*-ionPane0shoJ?essa9eDialo9Gnull6 QAhora6 <!a cola es-, )acio>: Q I C0es-aVacioGHHC O O

lash!inu" # $%%&

Pgina | 21

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

CA')TU*O )))" (R.O*ES

-, AR.O* Kueno6 )a'os a)an@an(o: Un ,r+ol es una es-ruc-ura (e (a-os 4er,rquica6 en que ca(a ele'en-o es-, uni(o a o-ro n:'ero ;ini-o (e ele'en-os u o+4e-os lla'a(os Nodos6 es i'*or-an-e 'encionar que en los ,r+oles6 al i9ual que en las lis-as6 nin9:n ele'en-o a*un-a a al9uno (e sus *re(ecesores0 ((('no de los ;odos "ue conforman el *rbol es conocido como ra&( Adem*s se crea una relaci$n o parentesco entre los nodos dando lugar a trminos como padre, %ijo, %ermano, antecesor, sucesor, ancestro, etc( , Si lo que quere'os el )erlo (e ;or'a 9r,;ica6 en-onces *o(e'os re*resen-arlo 'e(ian-e 9ra;os6 que es la 'as u-ili@a(a 8 que a su )e@ se *ue(e en-en(er 'e4or la es-ruc-ura (e un ,r+ol0
Nodo Ra>@ C E I F k G

A B D H

Figura 0(, <=>AF?@

1 Estructura de datos en Java - Abraham Gamarra moreno pg. 107

lash!inu" # $%%&

Pgina | 22

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

-,+,

No0enclatu!a de los <! oles AquA )a la no'encla-ura (e los ,r+oles:

A un con4un-o (e ,r+oles se le lla'a +osque0 A ca(a ele'en-o (el ,r+ol se le lla'a no(o0 A ca(a a*un-a(or en-re (os no(os se le lla'a ra'a0 Un no(o A es *a(re (e no(o K (escen(ien(o *or una ra'a (e A se *ue(e lle9ar a K0 Un no(o A es hi4o (e K si (escen(ien(o *or la ra'a (e K se *ue(e lle9ar a A0 Una ho4a es un no(o que no -iene hi4os0 Un no(o es raA@ si no -iene *a(res0 To(os los no(os que son (escen(ien-es (irec-os Ghi4osH (e un 'is'o no(o G*a(reH6 son her'anos0 To(o no(o que no es raA@6 ni -er'inal u ho4a se conoce con el no'+re (e inte!io!0 A!ado es el n:'ero (e (escen(ien-es (irec-os (e un (e-er'ina(o no(o0 Wra(o (el ,r+ol es el ',"i'o 9ra(o (e -o(os los no(os (el ,r+ol0

Para que (escien(an (e las nu+es6 )a'os a e"*licarlo con un e4e'*lo: To'e'os el si9uien-e 9ra;o co'o nues-ro ,r+ol 8 (e;ina'os la no'encla-ura (e (icho ,r+ol0

Co'o 8a sa+e'os6 el ele'en-o A es la raA@ (el ,r+ol0 K es hi4o (e A6 C es hi4o (e A6 D es hi4o (e K6 E es hi4o (e K6 e-c000 K 8 C son her'anos6 D 8 E son her'anos6 Y 8 H son her'anos6 e-c000 A es *a(re (e K 8 C6 K es *a(re (e D 8 E6 e-c000 Y6 H6 E6 .6 J 8 W son no(os -er'inales u Ho4as0 El 9ra(o (el no(o K es $0 El 9ra(o (el ,r+ol es 30

lash!inu" # $%%&

Pgina | 23

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

-,2,

(! ol ina!io, Es un con4un-o ;ini-o (e ele'en-os que es-, )acAo o (i)i(o en -res su+con4un-os se*ara(os0 El *ri'er su+con4un-o con-iene un ele'en-o :nico lla'a(o raA@ (el ,r+ol0 !os o-ros $ su+con4un-os son *or sA 'is'o ,r+oles +inarios 8 se les conoce co'o su+,r+oles i@quier(o 8 (erecho (el ,r+ol ori9inal0

No(o raA@

Su+ar+ol i@quier(o

Su+ar+ol Derecho

Figura 0(0( <:efinici$n de un *rbol binario@ Si lo re*resen-a'os co'o un No(o6 el 9r,;ico serAa (e la si9uien-e 'anera:
No(o raA@

A
.@quier(o Derecho

B
.@quier(a Derecho .@quier(o

C
Derecho

null

null

null

null

Figura 0(1( <Arbol representado como un ;odo@

-,-,

Con&i!tiendo a un <! ol ina!io Para i'*le'en-ar ar+oles en 4a)a 8 en cualquier o-ro len9ua4e (e *ro9ra'aci/n6 es *re;eri+le que nues-ro ,r+ol -en9a la es-ruc-ura (e un ,r+ol +inario6 *ara la ;,cil 'ani*ulaci/n (e los No(osC 8a que un ,r+ol +inario *resen-a solo (os su+ar+olesGi@quier(a 8 (erechaH a (i;erencia (e los ar+oles 9enerales que son 'as co'*le4os0

lash!inu" # $%%&

Pgina | 24

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

!os *asos que se (e+en a*licar *ara lo9rar la con)ersi/n (el ,r+ol 9eneral al ,r+ol +inario son los si9uien-es: To'e'os el ar+ol 9eneral (e la ;i9ura 30Z *ara con)er-irlo en un ar+ol +inario0

Figura 0(2

Cuan(o ha8 una relacion (e *a(re a hi4o6 (e+e enla@arse en ;or'a )er-ical el no(o *a(re con el hi4o que se encuen-ra ',s a la i@quier(a0 A(e',s (e es-o6 (e+e eli'inarse el )Anculo (e ese *a(re con el res-o (e sus hi4os0 To(o los No(os que (escien(an (el no(o *a(re6 es (ecir6 los no(os her'anos (e+en enla@arse en ;or'a hori@on-al0

inal'en-e nues-ro ar+ol 9eneral que(ar, (e la si9uien-e 'anera:


A B E K F C G L O M P D H N I J

Figura 0(3

lash!inu" # $%%&

Pgina | 25

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Ahora (e+e ro-arse el (ia9ra'a resul-an-e6 a*ro"i'a(a'en-e 1Z 9ra(os hacAa la A@quier(a6 8 asA se o+-en(r, el ,r+ol +AnarAo corres*on(ien-e0

Figura 0(6 <Arbol binario luego de girar 12B@ 3.4. Reco!!idos de un <! ol El recorri(o (e un ,r+ol es al9o ;un(a'en-al en la ra'a (e los al9ori-'os6 se9ura'en-e el lec-or es-ar, *ensan(o en sal-arse es-a *ar-e6 *orque <=u7 -an-a ciencia *ue(e -ener recorrer un ,r+ol> <No +as-a con *oner que recorra -o(os los no(os 8 8a>0 Pues la )er(a( es que no6 8a que al9unos al9ori-'os (e or(ena'ien-o u-ili@an el recorri(o en or(en6 'ien-ras que *ara +uscar soluciones e;icien-es se u-ili@a el recorri(o en *reor(en 8 *ara o-ro -i*o (e al9ori-'os que requiere cier-a li+eraci/n (e 'e'oria es necesario el recorri(o en *os-or(en0 -,/,+, Reco!!ido en O!den 4)no!den; !la'a(o -a'+i7n recorri(o en or(en si'7-ricoC en es-e caso se )isi-a *ri'ero el no(o i@quier(o6 lue9o el ac-ual 8 ;inal'en-e el (erecho6 se i'*le'en-arAa al9o asA co'o '7-o(o (el ,r+ol: AquA encon-ra'os una nue)a ins-rucci/n6 la cual es )isi-ar6 *ue(e reali@ar la o*eraci/n que el usuario (esee0 -,/,2, Reco!!ido en '!eo!den Se )isi-a *ri'ero el no(o ac-ual6 lue9o el i@quier(o 8 ;inal'en-e el (erecho Es-e recorri(o es 'u8 i'*or-an-e6 8a que -a'+i7n e"is-e una )ersi/n su8a en 9ra;os6 la cual es lla'a(a +:sque(a en *ro;un(i(a(6 8 su )arian-e es lla'a(a +acF-racFin96 con la cual se *ue(en solucionar la 'a8or *ar-e (e los *ro+le'as que se re;ieren a +uscar una *er'u-aci/n0
lash!inu" # $%%&
Pgina | 26

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

-,/,-, Reco!!ido en 'osto!den Visi-a *ri'ero los no(os hi4os 8 lue9o el ac-ual0 Es (ecirC Recorre *ri'ero el su+,r+ol i@quier(o6 lue9o recorre el su+,r+ol (erecho0 Para ;inal'en-e )isi-ar la raA@0 Es-e recorri(o es :-il cuan(o se necesi-an ir +orran(o los no(os que se )isi-an6 8a que 9aran-i@a que nunca que(ar,n no(os suel-os0 O.SERVAC)=N" 2 CDiste un mtodo Emec*nicoE para listar los nodos de un *rbol en cada uno de los recorridos descritos( Cs el siguiente Cmpe&ando por la ra&, y a4an&ando en sentido contrario a las agujas de un reloj, tra&ar una trayectoria "ue se mantenga lo m*s cerca posible del *rbol( Entonces" En Preor(en un no(o se lis-a la *ri'era )e@ que se *asa *or 7l0 El .nor(en6 una ho4a se lis-a la *ri'era )e@ que se *asa *or ella 8 un no(o in-erior se lis-a la se9un(a )e@ que se *asa *or 7l0 En Pos-or(en6 un no(o se lis-a la :l-i'a )e@ que se *asa *or 7l0

Figura 0(F

Has-a aquA -o(a la -eorAa6 ahora )ea'os la i'*le'en-aci/n en JAVA0

2 Tomado de: Estructura de datos en java Abraham Gamarra

oreno Pgina | 27

lash!inu" # $%%&

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

2,/, )M'*EMENTAC)=N Ahora i'*le'en-are'os la clase No(oAr+ol6 la clase ar+ol 8 sus *rinci*ales o*eraciones que reali@a0 Co'o en -o(os los casos6 nues-ro ar+ol ala'cenar, nu'eros en-eros0

EJEM'*O 0+" )0#le0entaci9n de la clase NodoA! ol"


*u+lic class No(oAr+ol M

NN*ara el -i*o (e (a-o que )a a al'acenar el ar+ol6 en es-e caso al'acenar, nu'eros en-eros0 in- no'+reC NNa*un-a(ores *ara el su+ar+ol i@quier(a 8 (erecha0 No(oAr+ol i@quier(a P nullC No(oAr+ol (erecha P nullC
*u+lic No(oAr+olGin- no'+reH M -his0no'+re P no'+reC i@quier(a P nullC (erecha P nullC O

NN'7-o(o que nos *er'i-e crear un nue)o ele'en-o e inser-arlo en el ar+ol *u+lic )oi( inser-ar[ele'en-oGin- no'+reH M i; Gno'+re V -his0no'+reH M i; Gi@quier(a PP nullH M i@quier(a P neJ No(oAr+olGno'+reHC O else M i@quier(a0inser-ar[ele'en-oGno'+reHC O O
i; Gno'+re X -his0no'+reH M i; G(erecha PP nullH M (erecha P neJ No(oAr+olGno'+reHC O else M (erecha0inser-ar[ele'en-oGno'+reHC O O O O

lash!inu" # $%%&

Pgina | 28

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0entaci9n de la clase a! ol"


*u+lic class ar+ol M No(oAr+ol rai@C *u+lic ar+olGH M rai@ P nullC O *u+lic )oi( .nser-arNo(oGin- no'+reH M i; Grai@ PP nullH M rai@ P neJ No(oAr+olGno'+reHC O else M rai@0inser-ar[ele'en-oGno'+reHC O O *u+lic S-rin9 *reor(enGH M S-rin9 resul-a(o P *reor(enGrai@HC re-urn resul-a(oC O *u+lic S-rin9 in[or(enGH M S-rin9 resul-a(o P inor(enGrai@HC re-urn resul-a(oC O *u+lic S-rin9 *os-[or(enGH M S-rin9 resul-a(o P *os-or(enGrai@HC re-urn resul-a(oC O

NNRecorri(o en *reOr(en *u+lic S-rin9 *reor(enGNo(oAr+ol no(oH M S-rin9 ca(ena P neJ S-rin9GHC i; Gno(o SP nullH M ca(ena IP Q Q I S-rin90)alueO;Gno(o0no'+reHC ca(ena IP *reor(enGno(o0i@quier(aHC ca(ena IP *reor(enGno(o0(erechaHC O else M ca(ena P QQC O re-urn ca(enaC O NNRecorri(o en .nOr(en *u+lic S-rin9 inor(enGNo(oAr+ol no(oH M S-rin9 ca(ena P neJ S-rin9GHC i; Gno(o SP nullH M ca(ena IP *reor(enGno(o0i@quier(aHC ca(ena IP Q Q I S-rin90)alueO;Gno(o0no'+reHC
lash!inu" # $%%&
Pgina | 29

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

ca(ena IP *reor(enGno(o0(erechaHC O else M ca(ena P QQC O re-urn ca(enaC O

NNRecorri(o en Pos-Or(en *u+lic S-rin9 *os-or(enGNo(oAr+ol no(oH M S-rin9 ca(ena P neJ S-rin9GHC i; Gno(o SP nullH M ca(ena IP *reor(enGno(o0i@quier(aHC ca(ena IP *reor(enGno(o0(erechaHC ca(ena IP Q Q I S-rin90)alueO;Gno(o0no'+reHC O else M ca(ena P QQC O re-urn ca(enaC O
O

)0#le0entaci9n de la clase '!ue aBNodoA! ol" U-ili@a la clase ar+ol0


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *rue+a[No(oAr+ol M *u+lic s-a-ic )oi( 'ainGS-rin9 ar9sTUHM

NNCrea'os un nue)o ar+ol6 lla'a(o a0 ar+ol aPneJ ar+olGHC NN .nser-a'os los No(os en el ar+ol a a0.nser-arNo(oGZHC a0.nser-arNo(oG%HC a0.nser-arNo(oG5$HC a0.nser-arNo(oG3HC NN?os-ra'os las (i;eren-es ;or'as (e recorrer un ar+ol 8 los i'*ri'i'os en *an-alla JO*-ionPane0shoJ?essa9eDialo9Gnull6QRnQIa0*reor(enGHHC JO*-ionPane0shoJ?essa9eDialo9Gnull6QRnQIa0in[or(enGHHC JO*-ionPane0shoJ?essa9eDialo9Gnull6QRnQIa0*os-[or(enGHHC
O O

lash!inu" # $%%&

Pgina | 30

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

CA')TU*O )V"
EJEM'*OS

EJEMPLO DE PROGRAMAS: PILAS

C )M'ORTANTE D" En en ca*i-ulo . o+ser)a'os la i'*le'en-acion en co(i9o 4a)a so+re P.!ASC *ues +ien6 8a sa+e'os las o*eraciones +,sicas que reali@a0 Si 8a sa+e'os las o*eraciones +,sicas que reali@a una *ila 8 es-o a su )e@ 8a es-, i'*le'en-a(o6 en los e4e'*los *os-eriores que )a'os a reali@ar solo 'e cen-rar7 en i'*le'en-ar los '7-o(os que son necesarios *ara solucionar (e-er'ina(os e4ercicios0

Eue lindo,,,D1 'e!o deseo que 0e lo e5#liques 0e%o!, !os '7-o(os -ales co'o a*ilar6 (esa*ilar6 ci'a6 con-eni(o6 e-c6 que son *ro*ios (e la clase *ila6 no los 'o(i;icar7 en a+solu-oC A con-inuacion se *ue(e o+ser)ar la clase a#ila! -al co'o es-, i'*le'en-a(o en el ca*i-ulo .:
*u+lic )oi( a*ilarGin- no'+reH M NN crea'os un No(o -e'*oral *ara al'acenar el )alor que )a'os a inser-ar0 No(o -e'* P neJ No(oGHC -e'*0no'+re P no'+reC i; Ginicio PP nullH M ;in P inicioC O -e'*0s9-e P inicioC inicio P -e'*C O

lash!inu" # $%%&

Pgina | 31

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

To(o el c/(i9o an-erior lo ree'*la@ar7 *or el si9uien-e6 8 *rac-ica'en-e ser, lo 'is'o0 Si en caso sea necesario su 'o(i;icaci/n6 lo 'encionar7 8 reali@ar7 los ca'+ios necesarios0
*u+lic )oi( a*ilarG000HM NN '7-o(o a*ilar6 i'*le'en-a(o000 O

E%e0#lo 0+" Se -iene una *ila que al'acena no'+res (e unos a'i9os6 se *i(e i'*le'en-ar un '7-o(o que in)ier-a el con-eni(o (e es-a *ila0 SO*UC)ON" )0#le0entacion de la clase #ila"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M S-rin9 no'+reC NN ca(ena (e -e"-o que al'acena los no'+res0 No(o s9-eC O No(o inicio P nullC No(o ;in P nullC *u+lic )oi( a*ilarGS-rin9 no'+reH M NN '7-o(o a*ilar6 i'*le'en-a(o000 O *u+lic )oi( (esa*ilarGH M NN '7-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic S-rin9 ci'aGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-ornar re-urn GQQHC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0no'+reC O O

lash!inu" # $%%&

Pgina | 32

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NN.'*le'en-acion (el 'e-o(o con-eni(o6 que nos *er'i-e )isuali@ar el con-eni(o (e la *ila0 *u+lic )oi( con-eni(oGH M No(o -e'* P inicioC S-rin9 ca( P Q!a lis-a (e no'+res es: QC Jhile G-e'* SP nullH M ca( IP QRn# Q I -e'*0no'+reC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O *u+lic )oi( in)er-irPilaGHM No(o -e'* P inicioC NN crea'os una *ila -e'*oral *ara al'acenar la *ila in)er-i(a000 *ila *ila.n)er-i(a P neJ *ilaGHC JhileG-e'*SPnullHM *ila.n)er-i(a0a*ilarG-e'*0no'+reHC -e'*P-e'*0s9-eC O *ila.n)er-i(a0con-eni(oGHC O O

)0#le0entacion de la clase #!ue a)n&e!ti!"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+a.n)er-ir M *u+lic s-a-ic )oi( 'ainGS-rin9T U ar9sH M *ila * P neJ *ilaGHC S-rin9 no'+reC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP 1C iIIH M no'+re P JO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese no'+re: QHC *0a*ilarGno'+reHC O NN?os-ra'os el con-eni(o (e la *ila0 *0con-eni(oGHC NN!a *ila in)er-i(a es: *0in)er-irPilaGHC O O
lash!inu" # $%%&
Pgina | 33

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 02" Se -iene una *ila que al'acena nu'eros en-eros *osi-i)os6 se *i(e eli'inar los QnQ *ri'eros ele'en-os que ;ueron in9resa(os0 Es (ecir6 si los ele'en-os in9resa(os ;ueron: +21 F1 +/1 91 G1 H, cuan(o: nP36 Gsa+e'os que los nu'ero Z6 L 8 & son los *ri'eros ele'en-os in9resa(osH0 En-onces el con-eni(o (e la *ila ser,: +21 F1 +/ SO*UC)ON" )0#le0entaci9n de la clase #ila"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M in- no'+reC NN *ara el )alor que )a al'acenar No(o s9-eC O No(o inicio P nullC No(o ;in P nullC *u+lic )oi( a*ilarGin- "H M NN '7-o(o a*ilar6 i'*le'en-a(o000 O *u+lic )oi( (esa*ilarGH M NN '7-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic in- ci'aGH M NN '7-o(o ci'a6 i'*le'en-a(o000 O NN.'*le'en-acion (el 'e-o(o con-eni(o6 que nos *er'i-e )isuali@ar el con-eni(o (e la *ila0 *u+lic )oi( con-eni(oGH M No(o -e'* P inicioC S-rin9 ca( P QEl con-eni(o (e la *ila es:QC Jhile G-e'* SP nullH M ca( IP QRn PPX Q I -e'*0no'+reC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O

lash!inu" # $%%&

Pgina | 34

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

*u+lic )oi( eli'inarGin- nH M No(o -e'* P inicioC *ila -e'*Pila P neJ *ilaGHC NN *ara al'acenar el nu'ero (e ele'en-os que con-iene la *ila0 in- can-i(a( P %C Jhile G-e'* SP nullH M -e'*Pila0a*ilarG-e'*0no'+reHC NN a*ila los ele'en-os en -e'*Pila000 (esa*ilarGHC can-i(a(IIC -e'* P -e'*0s9-eC O ;or Gin- i P 5C i VP can-i(a(C iIIH M i; Gi VP nH M -e'*Pila0(esa*ilarGHC O else M a*ilarG-e'*Pila0ci'aGHHC -e'*Pila0(esa*ilarGHC O O O O

)0#le0entaci9n de la clase '!ue aEli0ina!"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aEli'inarM *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M *ila * P neJ *ilaGHC in- no'+reC in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os ele'en-os (esea al'acenar en la *ila>: QHHC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP can-C iIIH M no'+re P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese )alor a a*ilar: QHHC *0a*ilarGno'+reHC O

lash!inu" # $%%&

Pgina | 35

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NN?os-ra'os el con-eni(o (e la *ila0 *0con-eni(oGHC NN'7-o(o que eli'ina los n *ri'eros nu'eros in9resa(os00 in- n P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os nu'eros (eseas eli'inar>: QHHC *0eli'inarGnHC NNDes*ues (e eli'inar los n *ri'eros )alores in9resa(os6 'os-ra'os el nue)o con-eni(o (e la *ila0 *0con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 36

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 0-" Se -iene un *olino'io (e la ;or'a: f-D/ P aD G c, !os )alores (e los coe;ecien-es 8 e"*onen-es se al'acenan en una *ila0 se *i(e i'*le'en-ar un '7-o(o que halle la (eri)a(a (e f-D/(
b

SO*UC)=N" )0#le0entaci9n de la clase #ila"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M in- coe;ecien-eC NN *ara al'acenar el coe;ecien-e (el *olino'io in- e"*onen-eC NN *ara al'acenar el e"*onen-e (el *olino'io No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN.'*le'en-acion (el 'e-o(o a*ilar que nos *er'i-e inser-ar un ele'en-o en la *ila6 en es-e caso co'o se -ra-a (e una *ila inser-a'os en el inicio o ci'a (e la *ila0 *u+lic )oi( a*ilarGin- coe;6 in- e"*oH M NN crea'os un No(o -e'*oral *ara al'acenar el )alor que )a'os a inser-ar0 No(o -e'* P neJ No(oGHC -e'*0coe;ecien-e P coe;C -e'*0e"*onen-e P e"*oC i; Ginicio PP nullH M ;in P inicioC O -e'*0s9-e P inicioC inicio P -e'*C O *u+lic )oi( (esa*ilarGH M NN '7-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic in- ci'a[coe;ecien-eGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-urn G#5%%HC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0coe;ecien-eC O O
lash!inu" # $%%&
Pgina | 37

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

*u+lic in- ci'a[e"*onen-eGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-urn G#5%%HC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0e"*onen-eC O O NN.'*le'en-acion (el 'e-o(o con-eni(o6 que nos *er'i-e )isuali@ar el con-eni(o (e la *ila0 *u+lic )oi( con-eni(oGH M No(o -e'* P inicioC S-rin9 ca( P QEl *olino'io es:RnQC Jhile G-e'* SP nullH M ca( IP -e'*0coe;ecien-e I Q \]Q I -e'*0e"*onen-e I Q I QC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O NN .'*le'en-acion (el 'e-o(o (eri)ar000 *u+lic )oi( (eri)arGH M No(o -e'* P inicioC NN crea'os un nue)o a*un-a(or000 NN crea'os una *ila -e'*oral *ara al'acenar los )alores (el *olino'io (eri)a(a *ila -e'*Pila P neJ *ilaGHC Jhile G-e'* SP nullH M -e'*Pila0a*ilarG-e'*0coe;ecien-e ^ -e'*0e"*onen-e6 -e'*0e"*onen-e # 5HC (esa*ilarGHC -e'* P -e'*0s9-eC O NN al'acena'os en la *ila ac-ual los )alores que 8a he'os (eri)a(o000 Jhile G-e'*Pila0ci'a[coe;ecien-eGH SP #5%%H M NNa*ila'os los )alores (el coe;ecien-e 8 el e"*onen-e en la *ila ac-ual6 al 'is'o -ie'*o que )a'os (esa*ilan(o00 a*ilarG-e'*Pila0ci'a[coe;ecien-eGH6 -e'*Pila0ci'a[e"*onen-eGHHC -e'*Pila0(esa*ilarGHC O O O

lash!inu" # $%%&

Pgina | 38

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0entaci9n de la clase #!ue aDe!i&ada"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aDeri)a(a M *u+lic s-a-ic )oi( 'ainGS-rin9T U ar9sH M *ila * P neJ *ilaGHC in- e"*onen-e P %C in- coe;ecien-e P %C in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os )alores (esea al'acenar en la *ila>: QHHC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP can-C iIIH M coe;ecien-e P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese coe;ecien-e: QHHC e"*onen-e P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese e"*onen-e: QHHC *0a*ilarGcoe;ecien-e6 e"*onen-eHC O NN?os-ra'os el con-eni(o (e la *ila0 *0con-eni(oGHC NN Hace'os uso (el 'e-o(o Q(eri)arQ00 *0(eri)arGHC NN?os-ra'os el nue)o con-eni(o (el *olino'io6 *ero ahora 8a es-a (eri)a(o000 con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 39

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 0/" Se -iene un *olino'io (e la ;or'a: f-D/ P aD G c, !os )alores (e los coe;ecien-es 8 e"*onen-es se al'acenan en una *ila0 se *i(e i'*le'en-ar un '7-o(o que halle la in-e9ral (e f-D/(
b

SO*UC)=N" )0#le0entaci9n de la clase #ila"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M (ou+le coe;ecien-eC NN *ara al'acenar el coe;ecien-e (el *olino'io (ou+le e"*onen-eC NN *ara al'acenar el e"*onen-e (el *olino'io No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN.'*le'en-acion (el 'e-o(o a*ilar que nos *er'i-e inser-ar un ele'en-o en la *ila6 en es-e caso co'o se -ra-a (e una *ila inser-a'os en el inicio o ci'a (e la *ila0 *u+lic )oi( a*ilarG(ou+le coe;6 (ou+le e"*oH M NN crea'os un No(o -e'*oral *ara al'acenar el )alor que )a'os a inser-ar0 No(o -e'* P neJ No(oGHC -e'*0coe;ecien-e P coe;C -e'*0e"*onen-e P e"*oC i; Ginicio PP nullH M ;in P inicioC O -e'*0s9-e P inicioC inicio P -e'*C O *u+lic )oi( (esa*ilarGH M NN '7-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic (ou+le ci'a[coe;ecien-eGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-urn G#5%%HC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0coe;ecien-eC O O
lash!inu" # $%%&
Pgina | 40

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

*u+lic (ou+le ci'a[e"*onen-eGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-urn G#5%%HC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0e"*onen-eC O O NN.'*le'en-acion (el 'e-o(o con-eni(o6 que nos *er'i-e )isuali@ar el con-eni(o (e la *ila0 *u+lic )oi( con-eni(oGH M No(o -e'* P inicioC S-rin9 ca( P QEl *olino'io es:RnQC Jhile G-e'* SP nullH M ca( IP -e'*0coe;ecien-e I Q \]Q I -e'*0e"*onen-e I Q I QC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O NN .'*le'en-acion (el 'e-o(o in-e9rar000 *u+lic )oi( in-e9rarGH M No(o -e'* P inicioC NN crea'os un nue)o a*un-a(or000 NN crea'os una *ila -e'*oral *ara al'acenar los )alores (el *olino'io in-e9ra(o *ila -e'*Pila P neJ *ilaGHC Jhile G-e'* SP nullH M -e'*Pila0a*ilarG-e'*0coe;ecien-e N G-e'*0e"*onen-e I 5H6 -e'*0e"*onen-e I 5HC (esa*ilarGHC -e'* P -e'*0s9-eC O NN al'acena'os en la *ila ac-ual los )alores que 8a he'os in-e9ra(o000 Jhile G-e'*Pila0ci'a[coe;ecien-eGH SP #5%%H M NNa*ila'os los )alores (el coe;ecien-e 8 el e"*onen-e en la *ila ac-ual6 al 'is'o -ie'*o que )a'os (esa*ilan(o00 a*ilarG-e'*Pila0ci'a[coe;ecien-eGH6 -e'*Pila0ci'a[e"*onen-eGHHC -e'*Pila0(esa*ilarGHC O O O

lash!inu" # $%%&

Pgina | 41

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0enta!ci9n de la clase '!ue a)nte6!al" i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+a.n-e9ral M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M *ila * P neJ *ilaGHC (ou+le e"*onen-e P %C (ou+le coe;ecien-e P %C in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os )alores (esea al'acenar en la *ila>: QHHC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP can-C iIIH M coe;ecien-e P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese coe;ecien-e: QHHC e"*onen-e P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese e"*onen-e: QHHC *0a*ilarGcoe;ecien-e6 e"*onen-eHC O NN?os-ra'os el con-eni(o (e la *ila0 *0con-eni(oGHC NN Hace'os uso (el 'e-o(o Qin-e9rarQ00 *0in-e9rarGHC NN?os-ra'os el nue)o con-eni(o (el *olino'io6 *ero ahora 8a es-a in-e9ra(o con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 42

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 0H" Se -iene una *ila que al'acena n )alores en-eros *osi-i)os0 Se *i(e i'*le'en-ar un '7-o(o *ara ree'*la@ar un ele'en-o (e la *ila *or un nue)o )alorC a'+os nu'eros (e+en ser in9resa(os *or -ecla(o0 GHomado de Cstructura de datos en ja4a I J=( Abra%am =amarra JorenoH E4e'*lo: Si 5 I J ] K I +20
/ +F J +H / +F +2 +H

SO*UC)=N" )0#le0entaci9n de la clase #ila"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M in- no'+reC NN *ara el )alor que )a al'acenar No(o s9-eC O No(o inicio P nullC No(o ;in P nullC *u+lic )oi( a*ilarGin- "H M NN 'e-o(o a*ilar6 i'*le'en-a(o000 O *u+lic )oi( (esa*ilarGH M NN 'e-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic in- ci'aGH M NN 'e-o(o ci'a6 i'*le'en-a(o000 O *u+lic )oi( con-eni(oGH M NN 'e-o(o con-eni(o6 i'*le'en-a(o000 O

lash!inu" # $%%&

Pgina | 43

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NN.'*le'en-acion (el 'e-o(o ree'*la@ar6 que ree'*la@a el )alor (e " *or 80 *u+lic )oi( ree'*la@arGin- "6 in- 8H M No(o -e'* P inicioC *ila -e'*Pila P neJ *ilaGHC NNa*ila los )alores a -e'*Pila Jhile G-e'* SP nullH M -e'*Pila0a*ilarG-e'*0no'+reHC (esa*ilarGHC -e'* P -e'*0s9-eC O NNDe)uel)e los ele'en-os (e -e'*Pila6 *ero ree'*la@an(o " *or el )alor (e 80 Jhile G-e'*Pila0ci'aGH SP #5H M i; G-e'*Pila0ci'aGH PP "H M a*ilarG8HC O else M a*ilarG-e'*Pila0ci'aGHHC O -e'*Pila0(esa*ilarGHC O O O

)0#le0entaci9n de la clase '!ue aRee0#la@a!"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aRee'*la@ar M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M *ila * P neJ *ilaGHC in- no'+reC in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os )alores (esea al'acenar en la *ila>: QHHC NN.n9resa'os los )alores a la *ila 'e(ian-e el 'e-o(o a*ilar0 ;or Gin- i P 5C i VP can-C iIIH M no'+re P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese Q I i I Q_ )alor a a*ilar: QHHC *0a*ilarGno'+reHC O NN?os-ra'os el con-eni(o (e la *ila0 *0con-eni(oGHC in- " P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<=ue nu'ero (esea ree'*la@ar>: QHHC
lash!inu" # $%%&
Pgina | 44

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

in- 8 P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<Por que )alor (esea ree'*la@arlo>: QHHC NNreali@a'os el ree'*la@o (el )alor (e " *or el nue)o )alor que es 8 *0ree'*la@arG"6 8HC NNDes*ues (e reali@ar el ree'*la@o6 'os-ra'os el nue)o con-eni(o (e la *ila *0con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 45

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 0G" Deci'os que una ;rase o un nu'ero es ca*ic:a si se lee i9ual (e i@quier(a a (erecha que (e (erecha a i@quier(a (es(eBan(o los es*acios en +lanco que ha8a0 Por e4e'*lo6 la ;rase: Q(a+ale arro@ a la @orra el a+a(Q G(e (u(osas consecuenciasH es ca*ic:a0 Se *i(e i'*le'en-ar un 'e-o(o6 hacien(o uso (e *ilas6 *ara e)aluar si un nu'ero o una ;rase en ca*icua0 SO*UC)=N" )0#le0entaci9n de la clase #ila"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e un No(o0 class No(o M char no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN.'*le'en-acion (el 'e-o(o a*ilar que nos *er'i-e inser-ar un ele'en-o en la *ila6 en es-e caso a*ila'os un carac-er0 *u+lic )oi( a*ilarGchar "H M NN crea'os un No(o -e'*oral *ara al'acenar el )alor que )a'os a inser-ar0 No(o -e'* P neJ No(oGHC -e'*0no'+re P "C i; Ginicio PP nullH M ;in P inicioC O -e'*0s9-e P inicioC inicio P -e'*C O *u+lic )oi( (esa*ilarGH M NN'e-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic char ci'aGH M i; Ginicio SP nullH M NN si la *ila no se encuen-ra )acia re-ornar el ul-i'o carac-er (e la *ila0 re-urn inicio0no'+reC O else M NN si es-a )acia (e)ol)er `a` re-urn `a`C O O

lash!inu" # $%%&

Pgina | 46

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NNi'*le'en-acion (el 'e-o(o e)alua[e"*resion0 *u+lic )oi( ca*icuaGS-rin9 e"*resionH M *ila -e'*Pila P neJ *ilaGHC *ila -e'*Pila$ P neJ *ilaGHC in- i P %C +oolean )ali(a'e P -rueC char carac-er P `R%`C NNa*ila'os los )alores6 al 'is'o -ie'*o que )a'os a*ilan(o a -e'*Pila *ara lue9o co'*arar0 Jhile Ge"*resion0len9-hGH X i bb )ali(a'e PP -rueH M carac-er P e"*resion0charA-GiHC NNchar-A-GiH: -o'a un carac-er (e la ca(ena en la *osicion QiQ0 NNsolo a*ila'os si el carac-er no es el )acio000 i; Gcarac-er SP ` `H M NNa*ila'os en las (os *ilas6 al 'is'o -ie'*o000 a*ilarGcarac-erHC -e'*Pila0a*ilarGcarac-erHC O iIIC O NNa*ila'os los carac-eres en -e'*Pila$6 sa+e'os que se a*ilaran en ;or'a in)ersa que la *ila ac-ual00 Jhile Gci'aGH SP `a`H M -e'*Pila$0a*ilarGci'aGHHC (esa*ilarGHC O NNUna )e@ que 8a -ene'os -e'*Pila 8 -e'*Pila$6 es-e ul-i'o in)ersa al *ri'ero6 *roce(e'os a co'*arar0 Jhile G-e'*Pila0ci'aGH SP `a`H M i; G-e'*Pila0ci'aGH PP -e'*Pila$0ci'aGHH M )ali(a'e P -rueC -e'*Pila0(esa*ilarGHC -e'*Pila$0(esa*ilarGHC O else M )ali(a'e P ;alseC +reaFC O O

NNco'*ro+ar )ali(a'e000 8 'os-rar el 'ensa4e0 i; G)ali(a'e PP -rueH M JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q!a e"*resion in9resa(o S. es ca*Acua000QHC
lash!inu" # $%%&
Pgina | 47

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

O else M JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q!a e"*resion in9resa(o NO es ca*Acua000 QHC O O O

)0#le0entaci9n de la clase '!ue aCa#icua"


i'*or- 4a)a"0sJin90JO*-ionPaneC

*u+lic class Prue+aCa*icua M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M *ila * P neJ *ilaGHC NN.n9rese e"*resion S-rin9 no'+re P JO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese un nu'ero o una *ala+ra: QHC NNU-ili@acion (el 'e-o(o ca*icua6 *ara e)aluar si al e"*resion in9resa(a es un ca*icua o no0 *0ca*icuaGno'+reHC O O

lash!inu" # $%%&

Pgina | 48

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 0J" Pro9ra'a que )ali(a un e"*resion 'a-e'a-ica 'e(ian-e la u-ili@acion (e P.!AS6 el *ro9ra'a -e *er'i-e in9resar una e"*resion 'a-e'a-ica cualquiera6 *or e4e'*lo: si in9resa'os MG$IcH #TZ^cUO6*ue(e ser )ali(a(o co'o )e(a(ero o ;aso0 GHomado de Cstructura de datos en ja4a I J=( Abra%am =amarra JorenoH

SO*UC)=N" )0#le0entaci9n de la clase #ila"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e un No(o0 class No(o M char no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC *u+lic )oi( anulaGH M inicio P ;in P nullC O NN.'*le'en-acion (el 'e-o(o a*ilar que nos *er'i-e inser-ar un ele'en-o en la *ila6 en es-e caso co'o se -ra-a (e una *ila inser-a'os en el inicio o ci'a (e la *ila0 *u+lic )oi( a*ilarGchar "H M NN crea'os un No(o -e'*oral *ara al'acenar el )alor que )a'os a inser-ar0 No(o -e'* P neJ No(oGHC -e'*0no'+re P "C i; Ginicio PP nullH M ;in P inicioC O -e'*0s9-e P inicioC inicio P -e'*C O *u+lic )oi( (esa*ilarGH M NN 'e-o(o (esa*ilar6 i'*le'en-a(o000 O *u+lic char ci'aGH M i; Ginicio SP nullH M NN si la *ila no se encuen-ra )acia re-ornar el ul-i'o carac-er (e la *ila0
lash!inu" # $%%&
Pgina | 49

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

re-urn inicio0no'+reC O else M NN si es-a )acia (e)ol)er `a` re-urn `a`C O O NNi'*le'en-acion (el 'e-o(o e)alua[e"*resion0 *u+lic )oi( e)alua[e"*resionGS-rin9 e"*resionH M in- i P %C +oolean )ali(a'e P -rueC char carac-er6 carac-er56 carac-er$C NNcarac-eres *ara *aren-esis6 lla)es6corche-es6 e-c000 anulaGHC NN !i'*ia -o(a la *ila carac-er P carac-er5 P carac-er$ P `R%`C Jhile Ge"*resion0len9-hGH X i bb )ali(a'e PP -rueH M carac-er P e"*resion0charA-GiHC NNchar-A-GiH: -o'a un carac-er (e la ca(ena en la *osicion QiQ0 i; Gcarac-er PP `G` dd carac-er PP `T` dd carac-er PP `M`H M NN si el carac-er es `G`6 `T` o `M` u-ili@a'os el 'e-o(o a*ila *ara inser-ar el ele'en-o en la P.!A0 a*ilarGcarac-erHC O i; Gcarac-er PP `H` dd carac-er PP `U` dd carac-er PP `O`H M i; Ginicio PP nullH M )ali(a'e P ;alseC O else M sJi-ch Gcarac-erH M case `H`: carac-er5 P `G`C +reaFC case `U`: carac-er5 P `T`C +reaFC case `O`: carac-er5 P `M`C +reaFC O NN carac-er$ -o'a el ul-i'o )alor (e la Pila000 carac-er$ P ci'aGHC (esa*ilarGHC NN (esa*ila'os la ci'a6 es (ecir lo qui-a'os (e la *ila0 i; Gcarac-er5 SP carac-er$H M )ali(a'e P ;alseC O O O iIIC O
lash!inu" # $%%&
Pgina | 50

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NN Si al ;inal -e que(a al9un carac-er6 8a sea un *aren-esis6 un corche-e o una lla)e6 eso quiere (ecir que la e"*resion no es ),li(a0 i; Ginicio SP nullH M )ali(a'e P ;alseC O NN)ali(a'e es i9ual que (ecir: )ali(a'eP-rue i; G)ali(a'e PP -rueH M JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q!a e"*resion es )ali(a0 QHC O else M JO*-ionPane0shoJ?essa9eDialo9Gnull6 Q!a e"*resion no es )ali(a0 QHC O O O

)0#le0entaci9n de la clase E&aluaE5#!esion"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class E)aluaE"*resion M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M *ila * P neJ *ilaGHC NN.n9resa'os la e"*resion a e)aluar000 S-rin9 no'+re P JO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese e"*resi/n: QHC NNU-ili@acion (el 'e-o(o e)alua[e"*resion0 *0e)alua[e"*resionGno'+reHC O O

lash!inu" # $%%&

Pgina | 51

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

EJEMPLO DE PROGRAMAS: COLAS


E%e0#lo 0F" Kueno ac, les (e4o un *ro9ra'i-a *ara calen-ar6 es sencillo 8 hace uso (e colas0 Se -iene una cola que al'acena nu'eros en-eros *osi-i)os6 reli@ar un 'e-o(o que nos 'ues-re el (o+le (e los n:'eros al'acena(os en (icha cola0 SO*UC)=N" )0#le0entaci9n de la clase Cola"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Cola M NNCreacion (e la clase No(o class No(o M in- no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC *u+lic )oi( encolarGin- "H M NN'e-o(o encolar6 i'*le'en-a(o000 O *u+lic )oi( (esencolarGH M NN'e-o(o (esencolar6 i'*le'en-a(o000 O *u+lic in- ;ren-eGH M NN'e-o(o ;ren-e6 i'*le'en-a(o000 O *u+lic )oi( con-eni(oGH M NN'e-o(o con-eni(o6 i'*le'en-a(o000 O *u+lic )oi( Do+leGH M NNcrea'os una nue)a Cola *ara al'acenar los nu'eros (u*lica(os000 Cola -e'*Cola P neJ ColaGHC NNal'acena'os los ele'en-os en -e'*Cola000 Jhile G;ren-eGH SP #5H M -e'*Cola0encolarG;ren-eGHHC (esencolarGHC O
lash!inu" # $%%&
Pgina | 52

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NNencola'os en la cola ac-ual los )alores (e -e'*Cola6 *ero 'ul-i*lica(o *or $00 Jhile G-e'*Cola0;ren-eGH SP #5H M encolarG$ ^ -e'*Cola0;ren-eGHHC -e'*Cola0(esencolarGHC O O O

)0#le0entaci9n de la clase '!ue aDo le"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aDo+le M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M Cola c P neJ ColaGHC NNDeclara'os las )aria+les que )a a al'acenar la cola6 en es-e caso al'acenar, nu'eros en-eros0 in- nC NN.n9resa'os los )alores a la cola 'e(ian-e el 'e-o(o encolar0 in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os ele'en-os (esea al'acenar en la cola>: QHHC ;or Gin- i P 5C i VP can-C iIIH M n P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese Q I i I Q_ )alor a encolar: QHHC NNencola'os el )alor (e n c0encolarGnHC O NN'os-ra'os el con-eni(o (e la cola000 c0con-eni(oGHC NNu-ili@a'os el 'e-o(o Do+le000 c0Do+leGHC NN'os-ra'os el nue)o con-eni(o (e la cola6 *ero es-a )e@ nos 'os-rar, el (o+le (e los nu'eros000 c0con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 53

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo 09" Se -iene una cola que al'acena nu'eros en-eros *osi-i)os6 se *i(e i'*le'en-ar un '7-o(o que nos *e'i-a o+-ener el 'enor (e los nu'eros al'acena(os en la cola0 SO*UC)=N" )0#le0entaci9n de la clase Cola"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Cola M NNCreacion (e la clase No(o class No(o M in- no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN'e-o(o que inser-a un ele'en-o al ;inal (e la cola0 *u+lic )oi( encolarGin- "H M NN'e-o(o encolar6 i'*le'en-a(o000 O NN'e-o(o que eli'ina el )alor que es-a al ;ren-e0 *u+lic )oi( (esencolarGH M NN'e-o(o (esencolar6 i'*le'en-a(o000 O NN 'e-o(o que re-orna el )alor (e la cola (el ;ren-e0 *u+lic in- ;ren-eGH M NN'e-o(o ;ren-e6 i'*le'en-a(o000 O NN'ues-ra el con-eni(o (e la cola *u+lic )oi( con-eni(oGH M NN'e-o(o con-eni(o6 i'*le'en-a(o000 O NN'e-o(o *ara calcular el 'enor (e los nu'eros00 *u+lic in- calcular?enorGH M Cola -e'*Cola P neJ ColaGHC in- -e'*C NNencola'os los ele'en-os en una cola -e'*oral000 Jhile G;ren-eGH SP #5H M -e'*Cola0encolarG;ren-eGHHC (esencolarGHC O
lash!inu" # $%%&
Pgina | 54

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NNo+-ene'os el 'enor (e los nu'eros (e -e'*Cola6 al 'is'o -ie'*o que )a'os (e)ol)ien(o los ele'en-os (e la cola -e'*oral000 -e'* P -e'*Cola0;ren-eGHC Jhile G-e'*Cola0;ren-eGH SP #5H M i; G-e'*Cola0;ren-eGH V -e'*H M -e'* P -e'*Cola0;ren-eGHC O encolarG-e'*Cola0;ren-eGHHC -e'*Cola0(esencolarGHC O re-urn -e'*C O O

)0#le0entaci9n de la clase '!ue aMeno!"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+a?enor M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M Cola c P neJ ColaGHC NNDeclara'os las )aria+les que )a a al'acenar la cola6 en es-e caso al'acenar, nu'eros en-eros0 in- nC NN.n9resa'os los )alores a la cola 'e(ian-e el 'e-o(o encolar0 in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os ele'en-os (esea al'acenar en la cola>: QHHC ;or Gin- i P 5C i VP can-C iIIH M n P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese Q I i I Q_ )alor a encolar: QHHC c0encolarGnHC O NN?os-ra'os el con-eni(o (e la cola0 c0con-eni(oGHC NNO+-ener el 'enor )alor (e la cola000 JO*-ionPane0shoJ?essa9eDialo9Gnull6 QEl 'enor )alor (e la cola es: Q I c0calcular?enorGHHC O O

lash!inu" # $%%&

Pgina | 55

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo +0" Se -iene una cola que al'acena nu'eros en-eros *osi-i)os6 u-ili@an(o el '7-o(o crea(o en el e4e'*lo an-eriorG'7-o(o que nos *er'i-e o+-ener el nu'ero 'enorH6 i'*le'en-ar un 'e-o(o que nos *er'i-e or(enar los ele'en-os (e la cola (e 'enor a 'a8or0 SO*UC)=N" )0#le0entaci9n de la clase Cola"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Cola M NNCreacion (e la clase No(o class No(o M in- no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN'e-o(o que inser-a un ele'en-o al ;inal (e la cola0 *u+lic )oi( encolarGin- "H M NN'e-o(o encolar6 i'*le'en-a(o000 O NN'e-o(o que eli'ina el )alor que es-a al ;ren-e0 *u+lic )oi( (esencolarGH M NN'e-o(o (esencolar6 i'*le'en-a(o000 O NN 'e-o(o que re-orna el )alor (e la cola (el ;ren-e0 *u+lic in- ;ren-eGH M NN'e-o(o ;ren-e6 i'*le'en-a(o000 O NN'ues-ra el con-eni(o (e la cola *u+lic )oi( con-eni(oGH M NN'e-o(o con-eni(o6 i'*le'en-a(o000 O NN'e-o(o *ara calcular el 'enor (e los nu'eros00 *u+lic in- calcular?enorGH M Cola -e'*Cola P neJ ColaGHC in- -e'*C NNencola'os los ele'en-os en una cola -e'*oral000 Jhile G;ren-eGH SP #5H M
lash!inu" # $%%&
Pgina | 56

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

-e'*Cola0encolarG;ren-eGHHC (esencolarGHC O NNo+-ene'os el 'enor (e los nu'eros (e -e'*Cola6 al 'is'o -ie'*o que )a'os (e)ol)ien(o los ele'en-os (e la cola -e'*oral000 -e'* P -e'*Cola0;ren-eGHC Jhile G-e'*Cola0;ren-eGH SP #5H M i; G-e'*Cola0;ren-eGH V -e'*H M -e'* P -e'*Cola0;ren-eGHC O encolarG-e'*Cola0;ren-eGHHC -e'*Cola0(esencolarGHC O re-urn -e'*C O NN'e-o(o que nos *er'i-e or(enar la cola en ;or'a ascen(en-e *u+lic )oi( Or(enarColaGH M Cola -e'*Cola P neJ ColaGHC in- 'enorC NNal'acena'os los )alores (e la cola en una nue)a cola -e'*oral000 Jhile G;ren-eGH SP #5H M -e'*Cola0encolarG;ren-eGHHC (esencolarGHC O Jhile G-e'*Cola0;ren-eGH SP #5H M NNo+-ene'os el 'enor )alor (e la cola -e'*oral000 'enorP-e'*Cola0calcular?enorGHC NN si el nu'ero es i9ual al 'enor nu'ero (e la cola -e'*oral6 en-onces encola'os en la cola ac-ual i; G-e'*Cola0;ren-eGH PP 'enorH M encolarG-e'*Cola0;ren-eGHHC O else MNN (e lo con-rario encola'os en la 'is'a cola -e'*oral6 sa+e'os que )a ir (es(e el ;ren-e has-a el ;inal (e la cola -e'*oral0000 -e'*Cola0encolarG-e'*Cola0;ren-eGHHC O NN(esencola'os000 -e'*Cola0(esencolarGHC O O O

lash!inu" # $%%&

Pgina | 57

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0entaci9n de la clase '!ue aO!dena!"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aOr(enar M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M Cola c P neJ ColaGHC NNDeclara'os las )aria+les que )a a al'acenar la cola6 en es-e caso al'acenar, nu'eros en-eros0 in- nC NN.n9resa'os los )alores a la cola 'e(ian-e el 'e-o(o encolar0 in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os ele'en-os (esea al'acenar en la cola>: QHHC ;or Gin- i P 5C i VP can-C iIIH M n P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese Q I i I Q_ )alor a encolar: QHHC c0encolarGnHC O NN?os-ra'os el con-eni(o (e la cola0 c0con-eni(oGHC NNu-ili@a'os el 'e-o(o or(enarCola *ara *o(er or(enar los nu'eros ascen(en-e'en-e c0Or(enarColaGHC NN'os-ra'os el nue)o con-eni(o (e la cola6 *ero es-a )e@ nos 'os-rar, or(ena(o000 c0con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 58

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo ++" Se -iene una cola que al'acena en-eros *osi-i)os 8 ne9a-i)os0 Se *i(e i'*le'en-ar una ;unci/n que u-ilice es-a cola 8 al'acene los *osi-i)os en una *ila 8 los ne9a-i)os en o-ra *ila0 !ue9o (es(e las *ilas (esa*ile los ele'en-os 8 al'acene los ele'en-os en o-ras (os colas0 GHomado de Cstructura de datos en ja4a I J=( Abra%am =amarra JorenoH En es-e e4e'*lo solo i'*le'en-ar7'os los co(i9os en la clase Prue+aPosiNe9a0 SO*UC)=N" )0#le0entaci9n de la clase 'ila"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *ila M NN creacion (e la clase No(o0 class No(o M in- no'+reC NN *ara el )alor que )a al'acenar No(o s9-eC O No(o inicio P nullC No(o ;in P nullC *u+lic )oi( a*ilarGin- "H M NN 'e-o(o a*ilar6 i'*le'en-a(o0000 O *u+lic )oi( (esa*ilarGH M NN 'e-o(o (esa*ilar6 i'*le'en-a(o0000 O NNre-orna el )alor (e la ci'a co'o un nu'ero en-ero0 *u+lic in- ci'aGH M i; Ginicio PP nullH M NN si la *ila es-a )acAa re-urn G#5%%%HC O else M NN si la *ila no se encuen-ra )acia6 re-ornar el )alor (e la ci'a0 re-urn inicio0no'+reC O O *u+lic )oi( con-eni(oGH M NN 'e-o(o con-eni(o6 i'*le'en-a(o0000 O

lash!inu" # $%%&

Pgina | 59

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0entaci9n de la clase Cola"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Cola M NNCreacion (e la clase No(o class No(o M in- no'+reC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN'e-o(o que inser-a un ele'en-o al ;inal (e la cola0 *u+lic )oi( encolarGin- "H M NN'e-o(o encolar6 i'*le'en-a(o000 O NN'e-o(o que eli'ina el )alor que es-a al ;ren-e0 *u+lic )oi( (esencolarGH M NN'e-o(o (esencolar6 i'*le'en-a(o000 O NN 'e-o(o que re-orna el )alor (e la cola (el ;ren-e0 *u+lic in- ;ren-eGH M i; Ginicio PP nullH M NN si la cola es )acAa re-orna #5%%% re-urn G#5%%%HC O else M NN re-orna el )alor que es-a al ;ren-e000 re-urn inicio0no'+reC O O *u+lic )oi( con-eni(oGH M NN 'e-o(o con-eni(o6 i'*le'en-a(o0000 O

)0#le0entaci9n de la clase '!ue a'osiNe6a"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aPosiNe9a M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M Cola c P neJ ColaGHC *ila Pila[*osi-i)os P neJ *ilaGHC *ila Pila[ne9a-i)os P neJ *ilaGHC Cola Cola[*osi-i)os P neJ ColaGHC
lash!inu" # $%%&
Pgina | 60

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Cola Cola[ne9a-i)os P neJ ColaGHC NNDeclara'os las )aria+les que )a a al'acenar la cola6 en es-e caso al'acenar, nu'eros en-eros0 in- nC NN.n9resa'os los )alores a la cola 'e(ian-e el 'e-o(o encolar0 in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os ele'en-os (esea al'acenar en la cola>: QHHC ;or Gin- i P 5C i VP can-C iIIH M n P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese Q I i I Q_ )alor a encolar: QHHC NNencola'os el )alor (e n c0encolarGnHC O NN'os-ra'os el con-eni(o (e la cola000 c0con-eni(oGHC NNa*ila'os los nu'eros (e la cola a las *ilas000 Jhile Gc0;ren-eGH SP #5%%%H M i; Gc0;ren-eGH XP %H M Pila[*osi-i)os0a*ilarGc0;ren-eGHHC O else M Pila[ne9a-i)os0a*ilarGc0;ren-eGHHC O c0(esencolarGHC O NN'os-ra'os los con-eni(os (e las *ilas000 Pila[*osi-i)os0con-eni(oGHC Pila[ne9a-i)os0con-eni(oGHC NN!le)a'os los )alores (e la *ila a la cola000 NNPARA !A P.!A POS.T.VO Jhile GPila[*osi-i)os0ci'aGH SP #5%%%H M Cola[*osi-i)os0encolarGPila[*osi-i)os0ci'aGHHC Pila[*osi-i)os0(esa*ilarGHC O NNPARA !A P.!A NEWAT.VO Jhile GPila[ne9a-i)os0ci'aGH SP #5%%%H M Cola[ne9a-i)os0encolarGPila[ne9a-i)os0ci'aGHHC Pila[ne9a-i)os0(esa*ilarGHC O NN'os-ra'os los con-eni(os (e las colas000 Cola[*osi-i)os0con-eni(oGHC Cola[ne9a-i)os0con-eni(oGHC O O
lash!inu" # $%%&
Pgina | 61

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo +2" !os (a-os (e los co'*e-i(ores (e una carrera au-o'o)ilis-ica son al'acena(os en una cola6 asi co'o -a'+ien el resul-a(o ;inal (e la carrera6 los (a-os que se al'acenan son: el no'+re (el *ilo-o6 8 el -ie'*o (e recorri(o Gen 'inu-osH0 Se *i(e i'*le'en-ar una ;unci/n que calcule el *ro'e(io (e -ie'*o (e carrera0 A(e',s (e ello 'o(i;icar la cola *ara que nos 'ues-re los no'+res (e los *ilo-os 8 la (i;erencia (e -ie'*o Ges-os (e+en que(ar or(ena'os (e acuer(o a la (i;erencia (e -ie'*o con el 'enor -ie'*o (e recorri(oH0 SO*UC)=N" )0#le0entaci9n de la clase Cola"
i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Cola M NNCreacion (e la clase No(o class No(o M S-rin9 *ilo-oC (ou+le -ie'*oC No(o s9-eC O No(o inicio P nullC No(o ;in P nullC NN'e-o(o que inser-a un ele'en-o al ;inal (e la cola0 *u+lic )oi( encolarGin- "H M NN'e-o(o encolar6 i'*le'en-a(o000 O NN'e-o(o que eli'ina el )alor que es-a al ;ren-e0 *u+lic )oi( (esencolarGH M NN'e-o(o (esencolar6 i'*le'en-a(o000 O NN 'e-o(o que re-orna el )alor (e la cola (el ;ren-e: *ilo-o0 *u+lic S-rin9 ;ren-e[*ilo-oGH M i; Ginicio PP nullH M NN si la cola es )acAa re-orna #5 re-urn GQQHC O else M NN re-orna el )alor que es-a al ;ren-e000 re-urn inicio0*ilo-oC O O NN 'e-o(o que re-orna el )alor (e la cola (el ;ren-e: -ie'*o0 *u+lic (ou+le ;ren-e[-ie'*oGH M i; Ginicio PP nullH M NN si la cola es )acAa re-orna #5 re-urn G#5HC
lash!inu" # $%%&
Pgina | 62

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

O else M NN re-orna el )alor que es-a al ;ren-e000 re-urn inicio0-ie'*oC O O NN'ues-ra el con-eni(o (e la cola *u+lic )oi( con-eni(oGH M No(o -e'* P inicioC S-rin9 ca( P Q.'*resi/n (e la cola:RnQC Jhile G-e'* SP nullH M ca( IP -e'*0*ilo-o I Q NN Q I -e'*0-ie'*o I Q PPX QC -e'* P -e'*0s9-eC O JO*-ionPane0shoJ?essa9eDialo9Gnull6 ca(HC O NN'e-o(o *ara calcular el 'enor (e los nu'eros00 *u+lic (ou+le calcular?enorGH M Cola -e'*Cola P neJ ColaGHC (ou+le -e'*C NNencola'os los ele'en-os en una cola -e'*oral000 Jhile G;ren-e[-ie'*oGH SP #5H M -e'*Cola0encolarG;ren-e[*ilo-oGH6 ;ren-e[-ie'*oGHHC (esencolarGHC O NNo+-ene'os el 'enor (e los nu'eros (e -e'*Cola6 al 'is'o -ie'*o que )a'os (e)ol)ien(o los ele'en-os (e la cola -e'*oral000 -e'* P -e'*Cola0;ren-e[-ie'*oGHC Jhile G-e'*Cola0;ren-e[-ie'*oGH SP #5H M i; G-e'*Cola0;ren-e[-ie'*oGH V -e'*H M -e'* P -e'*Cola0;ren-e[-ie'*oGHC O encolarG-e'*Cola0;ren-e[*ilo-oGH6 -e'*Cola0;ren-e[-ie'*oGHHC -e'*Cola0(esencolarGHC O re-urn -e'*C O NN'e-o(o que calcular el *ro'e(io (e -ie'*o000 *u+lic (ou+le *ro'e(ioGH M Cola -e'*Cola P neJ ColaGHC (ou+le acu'ula(or P %C NN*ara acu'ular el -ie'*o (ou+le can-i(a( P %CNN*ara o+-ener la con-i(a( (e ele'en-os que con-iene la cola000

lash!inu" # $%%&

Pgina | 63

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

NNencola'os los ele'en-os en una cola -e'*oral000 Jhile G;ren-e[-ie'*oGH SP #5H M -e'*Cola0encolarG;ren-e[*ilo-oGH6 ;ren-e[-ie'*oGHHC (esencolarGHC O NNo+-ene'os el 'enor (e los nu'eros (e -e'*Cola6 al 'is'o -ie'*o que )a'os (e)ol)ien(o los ele'en-os (e la cola -e'*oral000 Jhile G-e'*Cola0;ren-e[-ie'*oGH SP #5H M encolarG-e'*Cola0;ren-e[*ilo-oGH6 -e'*Cola0;ren-e[-ie'*oGHHC NNsu'a'os el -ie'*o6 a(e'as a9re9a'os el con-a(or *ara o+-ener la can-i(a( (e ele'en-os (e la cola000 acu'ula(or IP -e'*Cola0;ren-e[-ie'*oGHC can-i(a(IIC -e'*Cola0(esencolarGHC O re-urn acu'ula(or N can-i(a(C O NN'e-o(o que nos *er'i-e al'acenar en una nue)a cola los *ilo-os 8 la (i;erencia (e -ie'*o00 *u+lic )oi( Or(enarDTGH M Cola -e'*Cola P neJ ColaGHC (ou+le -' P calcular?enorGHC NN'enor -ie'*o (ou+le -e'*C NNal'acena'os los )alores (e la cola en una nue)a cola -e'*oral000 Jhile G;ren-e[-ie'*oGH SP #5H M -e'*Cola0encolarG;ren-e[*ilo-oGH6 ;ren-e[-ie'*oGH # -'HC (esencolarGHC O Jhile G-e'*Cola0;ren-e[-ie'*oGH SP #5H M NNo+-ene'os el 'enor -ie'*o (e la cola -e'*oral 8 lo al'acena'os en la )aria+le -e'* -e'* P -e'*Cola0calcular?enorGHC NN si el -ie'*o es i9ual al 'enor -ie'*o (e la cola -e'*oral6 en-onces encola'os en la cola ac-ual000 i; G-e'*Cola0;ren-e[-ie'*oGH PP -e'*H M encolarG-e'*Cola0;ren-e[*ilo-oGH6 -e'*Cola0;ren-e[-ie'*oGHHC O else MNN (e lo con-rario encola'os en la 'is'a cola -e'*oral6 sa+e'os que )a ir (es(e el ;ren-e has-a el ;inal (e la cola0000 -e'*Cola0encolarG-e'*Cola0;ren-e[*ilo-oGH6 -e'*Cola0;ren-e[-ie'*oGHHC O NN(esencola'os000 -e'*Cola0(esencolarGHC O O O
lash!inu" # $%%&
Pgina | 64

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0entaci9n de la clase '!ue aCa!!e!a"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class Prue+aCarrera M *u+lic s-a-ic )oi( 'ainGS-rin9TU ar9sH M Cola c P neJ ColaGHC NNDeclara'os las )aria+les que )a a al'acenar la cola6 en es-e caso al'acenar, el no'+re (el *ilo-o 8 el -ie'*o (e carrera0 S-rin9 *ilo-oC (ou+le -ie'*oC NN.n9resa'os los )alores a la cola 'e(ian-e el 'e-o(o encolar0 in- can- P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ<cuan-os ele'en-os (esea al'acenar en la cola>: QHHC ;or Gin- i P 5C i VP can-C iIIH M *ilo-o P JO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese no'+re (el Q I i I Q_ *ilo-o a encolar: QHC -ie'*o P Dou+le0*arseDou+leGJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese Q I i I Q_ -ie'*o a encolar: QHHC NN*roce(e'os a encolar: *ilo-o 8 -ie'*o c0encolarG*ilo-o6 -ie'*oHC O NN?os-ra'os el con-eni(o (e la cola0 c0con-eni(oGHC NNO+-ener el 'enor )alor (e la cola000 JO*-ionPane0shoJ?essa9eDialo9Gnull6 QEl 'enor )alor (e la cola es: Q I c0calcular?enorGHHC NNO+-ener el *ro'e(io (e la cola000 JO*-ionPane0shoJ?essa9eDialo9Gnull6 QEl *ro'e(io es: Q I c0*ro'e(ioGHHC NNu-ili@acion (el '7-o(o que nos *er'i-e or(enar (e acuer(o a la (i;erencia (e -ie'*o000 c0Or(enarDTGHC NN'os-ra'os el con-eni(o (e la cola6 *ero es-a )e@ nos 'os-rar, or(ena(o000 c0con-eni(oGHC O O

lash!inu" # $%%&

Pgina | 65

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

EJEMPLO DE PROGRAMAS: ARBOL


E%e0#lo +-" Se -iene un ar+ol que ala'cena nu'eros en-eros6 se *ie(e i'*le'en-ar una ;unci/n que nos *er'i-a +uscar un nu'ero cualquiera en el ar+ol0 El nu'ero que se (esea +uscar (e+e ser in9resa(o *or -ecla(o0 SO*UC)=N" )0#le0entaci9n de la clase NodoA! ol"
*u+lic class No(oAr+ol M

NN*ara el -i*o (e (a-o que )a a al'acenar el ar+ol6 en es-e caso al'acenar, nu'eros en-eros0 in- no'+reC NNa*un-a(ores *ara el su+ar+ol i@quier(a 8 (erecha0 No(oAr+ol i@quier(a P nullC No(oAr+ol (erecha P nullC
*u+lic No(oAr+olGin- no'+reH M -his0no'+re P no'+reC i@quier(a P nullC (erecha P nullC O

NN'7-o(o que nos *er'i-e crear un nue)o ele'en-o e inser-arlo en el ar+ol *u+lic )oi( inser-ar[ele'en-oGin- no'+reH M i; Gno'+re V -his0no'+reH M i; Gi@quier(a PP nullH M i@quier(a P neJ No(oAr+olGno'+reHC O else M i@quier(a0inser-ar[ele'en-oGno'+reHC O O
i; Gno'+re X -his0no'+reH M i; G(erecha PP nullH M (erecha P neJ No(oAr+olGno'+reHC O else M (erecha0inser-ar[ele'en-oGno'+reHC O O O O

lash!inu" # $%%&

Pgina | 66

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

)0#le0entaci9n de la clase a! ol"


*u+lic class ar+ol M No(oAr+ol rai@C *u+lic ar+olGH M rai@ P nullC O *u+lic )oi( inser-ar[no(oGin- no'+reH M i; Grai@ PP nullH M rai@ P neJ No(oAr+olGno'+reHC O else M rai@0.nser-arEle'en-oGno'+reHC O O NNPara 'os-rar el con-eni(o (el ar+ol u-ili@are'os el recorri(o en *reor(en0 *u+lic S-rin9 *reor(enGH M S-rin9 resul-a(o P *reor(enGrai@HC re-urn resul-a(oC O *u+lic S-rin9 *reor(enGNo(oAr+ol no(oH M S-rin9 ca(ena P neJ S-rin9GHC i; Gno(o SP nullH M ca(ena IP Q Q I S-rin90)alueO;Gno(o0no'+reHC ca(ena IP *reor(enGno(o0i@quier(aHC ca(ena IP *reor(enGno(o0(erechaHC O else M ca(ena P QQC O re-urn ca(enaC O NNKusca un ele'en-o en el ar+ol *u+lic in- +uscarGin- -e'*H M in- " P %C i; G-e'* V rai@0no'+reH M rai@ P rai@0i@quier(aC " P +uscarG-e'*HC O i; G-e'* X rai@0no'+reH M rai@ P rai@0(erechaC " P +uscarG-e'*HC O
lash!inu" # $%%&
Pgina | 67

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

i; G-e'* PP rai@0no'+reH M " P rai@0no'+reC O re-urn "C O O

)0#le0entaci9n de la clase #!ue aBNodoA! ol"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class *rue+a[No(oAr+ol M *u+lic s-a-ic )oi( 'ainGS-rin9 ar9sTUHM NNcrea'os un nue)o ar+ol0000 ar+ol aPneJ ar+olGHC NN.nser-a'os No(os en el ar+ol000 a0inser-ar[no(oGZHC a0inser-ar[no(oG%HC a0inser-ar[no(oG5$HC a0inser-ar[no(oG3HC NN'os-ra'os el con-eni(o (el ar+ol en PreOr(en0 JO*-ionPane0shoJ?essa9eDialo9Gnull6 a0*reor(enGHHC NN.n9resa'os el nu'ero que (esea'os +uscar en el ar+ol00 in- n P .n-e9er0*arse.n-GJO*-ionPane0shoJ.n*u-Dialo9GQ.n9rese n:'ero a +uscar: QHHC NNu-ili@a'os el 'e-o(o +uscar *ara *o(er reali@ar la +usque(a en el ar+ol0 JO*-ionPane0shoJ?essa9eDialo9Gnull6QEl (a-o que se +usco es: Q I a0+uscarGnHHC O O

lash!inu" # $%%&

Pgina | 68

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

E%e0#lo +/" !a i(ea (e crear un sis-e'a e"*er-o *ro)iene (e la in-enci/n (e e'ular el conoci'ien-o hu'ano0 Para ello se in-en-a in-ro(ucir en un sis-e'a el conoci'ien-o (e un e"*er-o hu'ano en un ,rea (e-er'ina(a0 Es-os sis-e'as -ra+a4an con in-eli9encia ar-i;icial si'+/lica6 es (ecir6 a ni)el (e sA'+olosC co'o *ue(en ser i(eas6 i',9enes6 conce*-os6 e-c0 El sis-e'a e"*er-o ',s sencillo se -ra-a (e un ,r+ol (e (ecisiones cu8as ho4as ;inales son el resul-a(o a nues-ro *ro+le'a0 En el si9uien-e 9r,;ico se 'ues-ra una es-ruc-ura en ar+oles (e un sis-e'a e"*er-o real'en-e sencillo6 se *i(e i'*le'en-ar una ;uncion que nos *er'i-a e'ular es-e sis-e'a e"*er-o hacien(o uso (e ar+oles0

SO*UC)=N" )0#le0entaci9n de la clase NodoA! ol"


*u+lic class No(oAr+ol M

NN*ara el -i*o (e (a-o que )a a al'acenar el ar+ol6 en es-e caso al'acenar, nu'eros en-eros0 in- no'+reC NNa*un-a(ores *ara el su+ar+ol i@quier(a 8 (erecha0 No(oAr+ol i@quier(a P nullC No(oAr+ol (erecha P nullC
lash!inu" # $%%&
Pgina | 69

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

*u+lic No(oAr+olGin- no'+reH M -his0no'+re P no'+reC i@quier(a P nullC (erecha P nullC O

NN'7-o(o que nos *er'i-e crear un nue)o ele'en-o e inser-arlo en el ar+ol *u+lic )oi( inser-ar[ele'en-oGin- no'+reH M i; Gno'+re V -his0no'+reH M i; Gi@quier(a PP nullH M i@quier(a P neJ No(oAr+olGno'+reHC O else M i@quier(a0inser-ar[ele'en-oGno'+reHC O O
i; Gno'+re X -his0no'+reH M i; G(erecha PP nullH M (erecha P neJ No(oAr+olGno'+reHC O else M (erecha0inser-ar[ele'en-oGno'+reHC O O O O

)0#le0entaci9n de la clase a! ol"


i'*or- 4a)a"0sJin90JO*-ionPaneC *u+lic class ar+ol M No(oAr+ol rai@C *u+lic ar+olGH M rai@ P nullC O NN'e-o(o que nos *er'i-e inser-ar un No(o en al ar+ol0 *u+lic )oi( inser-ar[no(oGin- no'+re6 S-rin9 *re9H M i; Grai@ PP nullH M rai@ P neJ No(oAr+olGno'+re6 *re9HC O else M rai@0inser-ar[ele'en-oGno'+re6 *re9HC O O NN*ara reali@ar la o*eraci/n6 en es-e caso6 u-ili@a'os el recorri(o en *reor(en6 us-e(es *ue(en u-ili@ar cualquier -i*o (e recorri(o0
lash!inu" # $%%&
Pgina | 70

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

*u+lic S-rin9 reali@ar[o*eracionGH M S-rin9 resul-a(o P *reor(enGrai@HC re-urn resul-a(oC O *ri)a-e S-rin9 *reor(enGNo(oAr+ol no(oH M S-rin9 ca(ena P neJ S-rin9GHC S-rin9 eli9e'e P QQC i; Gno(o SP nullH M NNreali@a'os la *re9un-a6 si 8 solo si6 e"is-a un su+ar+ol i@quier(o 8No (erecho0 i; Gno(o0(erecha SP null dd no(o0i@quier(a SP nullH M eli9e'e P JO*-ionPane0shoJ.n*u-Dialo9Gno(o0*re9un-a I QRn.n9rese: si N noQHC O NNsi la res*ues-a in9resa(a es QNOQ6 en-onces recorrer el suar+ol (erecho0 i; Geli9e'e0co'*areToGQnoQH PP %H M ca(ena P *reor(enGno(o0(erechaHC O NNsi la res*ues-a in9resa(a es QS.Q6 en-onces recorrer el suar+ol i@quier(o0 else i; Geli9e'e0co'*areToGQsiQH PP %H M ca(ena P *reor(enGno(o0i@quier(aHC O else M NNcaso con-rario 'os-rar la res*ues-a ;inal000 ca(ena P QEn-onces es un: Q I no(o0*re9un-aC O O else M ca(ena P QQC O re-urn ca(enaC O O

)0#le0entaci9n de la clase '!ue aAni0ales"


i'*or- 4a)a"0sJin90^C *u+lic class Prue+aAni'ales M *u+lic s-a-ic )oi( 'ainGS-rin9 ar9sTUH M ar+ol a P neJ ar+olGHC NNinser-a'os los No(os en el ar+ol00 a0inser-ar[no(oG16 Q<Pue(e Volar>QHC a0inser-ar[no(oG$6 Q<Es un 'a'i;ero>QHC a0inser-ar[no(oG56 Q?URC.E!AWOQHC a0inser-ar[no(oG36 QCUERVOQHC a0inser-ar[no(oGc6 Q<Tiene cuernos>QHC
lash!inu" # $%%&
Pgina | 71

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

a0inser-ar[no(oGL6 Q<Tiene Joro+a>QHC a0inser-ar[no(oGZ6 QCA?E!!OQHC a0inser-ar[no(oGe6 QKAKU.NOQHC a0inser-ar[no(oG&6 QC.ERVOQHC JO*-ionPane0shoJ?essa9eDialo9Gnull6 QRnQ I a0reali@ar[o*eracionGHHC O O

lash!inu" # $%%&

Pgina | 72

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

BIBLIOGRAFA

Al6o!it0o K est!ucutu!a de datos ) # J=( Abra%am Ctseban =amarra Joreno

LiMi#edia Enciclo#edia *i !e" ')*AS EN JAVA

h--*:NNes0JiFi*e(ia0or9NJiFiNPila[Ges-ruc-ura[(e[(a-osH CO*AS EN JAVA

h--*:NNes0JiFi*e(ia0or9NJiFiNCola[Ges-ruc-ura[(e[(a-osH CO*A DE 'R)OR)DADES

h--*:NNes0JiFi*e(ia0or9NJiFiNCola[(e[*riori(a(es[Ges-ruc-ura[(e[(a-osH AR.O* .

h--*:NNes0JiFi*e(ia0or9NJiFiNK#-ree AR.O* .)NAR)O EN JAVA

h--*:NNes0JiFi*e(ia0or9NJiFiNfC3fc5r+ol[+inario

'!o6!a0aci9n en castellano" ')*AS N CO*AS

h--*:NNJJJ0*ro9ra'acion0co'N-u-orialN4a*[(a-a[al9NZN

lash!inu" # $%%&

Pgina | 73

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

"#$% &'P#($%"$E)

Hodas las notas, casos yKcomentarios eDpresados en el presente manualKsonKpropiasKdeKsuKautor(

LosKcontenidosK"ueKseKofrecen %an sidoKrecopilados de diferentes fuentes de informaci$n, algunos c$digos "ue se muestran en este manual fueron desarrollados en clase, por el docente Abra%am =amarra Joreno, periodo -.LLFMII/

Cl autor noKseKresponsabili&aKporKlosKdaNosKoKprdidaKde Informaci$nK"ueKlle4eKlaKreali&aci$nKde estasKinstrucciones(

lash!inu" # $%%&

Pgina | 74

Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only. ESTRUCTURA DE DATOS EN JAVA Facultad de Ingeniera de Sistemas

CO'N*E2T

?ar@o g $%%& BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB Dudas1 su6e!encias K/o co0enta!ios" sn8(er0H?Lh9'ail0co' 'a8er[Fin(er5$hho-'ail0co'

Se los a9ra(ecer7000 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

lash!inu" # $%%&

Pgina | 75

ESTRUCTURA DE DATOS EN JAVA

Facultad de Ingeniera de Sistemas

Libres para pensar; Libres para decidir; Libres para crear...

lash!inu" # $%%&

Pgina | 76

You might also like