Estructura de Datos
 9701059085, 9789701059081

Table of contents :
Estructuras de datos
Contenido
Presentación
Capítulo 1 Estructuras fundamentales de datos
Capítulo 2 Arreglos multidimensionales representados en arreglos unidimensionales
Capítulo 3 Pilas y colas
Capítulo 4 Recursión
Capítulo 5 Listas
Capítulo 6 Árboles
Capítulo 7 Gráficas
Capítulo 8 Métodos de ordenación
Capítulo 9 Métodos de búsqueda
Bibliografía
Glosario
Índice Analítico

Citation preview

%3425#452!3 $%$!4/3

%3425#452!3 $%$!4/3 4ERCERAEDICIØN

$2/36!,$/#!)2¼ 0ROFESOR )NVESTIGADORDEL )NSTITUTO4ECNOLØGICO!UTØNOMODE-ÏXICO)4!- -IEMBRODEL3ISTEMA.ACIONAL DE)NVESTIGADORES3.) .IVEL

-#3),6)!'5!2$!4) 0ROFESOR.UMERARIODEL )NSTITUTO4ECNOLØGICO!UTØNOMODE-ÏXICO)4!-

-²8)#/s!5#+,!.$s"/'/4«s"5%./3!)2%3s#!2!#!3s'5!4%-!,! ,)3"/!s,/.$2%3s-!$2)$s-),«.s-/.42%!,s.5%6!$%,()s.5%6!9/2+ 3!.&2!.#)3#/s3!.*5!.s3!.,5)3s3!.4)!'/ 3°/0!5,/s3)$.%9s3).'!052s4/2/.4/

$IRECTOR(IGHER%DUCATION-IGUEL«NGEL4OLEDO#ASTELLANOS $IRECTOREDITORIAL2ICARDO!DEL"OSQUE!LAYØN %DITORSPONSOR0ABLO%2OIG6ÈZQUEZ %DITORADEDESARROLLO$IANA+AREN-ONTA×O'ONZÈLEZ 3UPERVISORDEPRODUCCIØN:EFERINO'ARCÓA'ARCÓA %3425#452!3$%$!4/3 4ERCERAEDICIØN

0ROHIBIDALAREPRODUCCIØNTOTALOPARCIALDEESTAOBRA PORCUALQUIERMEDIO SINLAAUTORIZACIØNESCRITADELEDITOR

$%2%#(/32%3%26!$/3© RESPECTOALATERCERAEDICIØNPOR -C'2!7 (),,).4%2!-%2)#!.!%$)4/2%3 3!$%#6 !3UBSIDIARYOF4HE-C'RAW (ILL#OMPANIES )NC

0ROLONGACIØN0ASEODELA2EFORMA 4ORRE!

0ISO #OLONIA$ESARROLLO3ANTA&E

$ELEGACIØN«LVARO/BREGØN

#0 -ÏXICO $&

-IEMBRODELA#ÈMARA.ACIONALDELA)NDUSTRIA%DITORIAL-EXICANA 2EG.ÞM )3".    )3".   SEGUNDAEDICIØN )3".   8PRIMERAEDICIØN



)MPRESOEN-ÏXICO











0RINTEDIN-EXICO

!NUESTROHIJO&ACUNDO

#/.4%.)$/ 02%3%.4!#)». XIII

#!0¶45,/ %STRUCTURASFUNDAMENTALESDEDATOS   )NTRODUCCIØN   !RREGLOS  $ECLARACIØNDEARREGLOSUNIDIMENSIONALES  /PERACIONESCONARREGLOSUNIDIMENSIONALES   !RREGLOSBIDIMENSIONALES  $ECLARACIØNDEARREGLOSBIDIMENSIONALES  /PERACIONESCONARREGLOSBIDIMENSIONALES   !RREGLOSDEMÈSDEDOSDIMENSIONES   ,ACLASE!RREGLO   2EGISTROS  $ECLARACIØNDEREGISTROS  !CCESOALOSCAMPOSDEUNREGISTRO  $IFERENCIASENTREREGISTROSYARREGLOS  #OMBINACIONESENTREARREGLOSYREGISTROS  !RREGLOSPARALELOS   2EGISTROSYCLASES  %JERCICIOS 

#!0¶45,/ !RREGLOSMULTIDIMENSIONALESREPRESENTADOS

ENARREGLOSUNIDIMENSIONALES   )NTRODUCCIØN   !RREGLOSBIDIMENSIONALES   !RREGLOSDEMÈSDEDOSDIMENSIONES   -ATRICESPOCODENSAS  -ATRICESCUADRADASPOCODENSAS  -ATRIZTRIANGULARINFERIOR  -ATRIZTRIANGULARSUPERIOR 

viii

œ˜Ìi˜ˆ`œ  -ATRIZTRIDIAGONAL   -ATRICESSIMÏTRICASYANTISIMÏTRICAS  %JERCICIOS 

#!0¶45,/ 0ILASYCOLAS   )NTRODUCCIØN   0ILAS   2EPRESENTACIØNDEPILAS   /PERACIONESCONPILAS   !PLICACIONESDEPILAS   ,ACLASE0ILA   #OLAS   2EPRESENTACIØNDECOLAS   /PERACIONESCONCOLAS   #OLASCIRCULARES   $OBLECOLA   !PLICACIONESDECOLAS   ,ACLASE#OLA  %JERCICIOS 

#!0¶45,/ 2ECURSIØN   )NTRODUCCIØN   %LPROBLEMADELAS4ORRESDE(ANOI   2ECURSIVIDADENÈRBOLES   2ECURSIVIDADENORDENACIØNYBÞSQUEDA  %JERCICIOS 

#!0¶45,/ ,ISTAS   )NTRODUCCIØN   ,ISTASSIMPLEMENTELIGADAS   /PERACIONESCONLISTASSIMPLEMENTELIGADAS   2ECORRIDODEUNALISTASIMPLEMENTELIGADA   )NSERCIØNENLISTASSIMPLEMENTELIGADAS   %LIMINACIØNENLISTASSIMPLEMENTELIGADAS   "ÞSQUEDAENLISTASSIMPLEMENTELIGADAS   ,ISTASCIRCULARES   ,ISTASDOBLEMENTELIGADAS   /PERACIONESCONLISTASDOBLEMENTELIGADAS   2ECORRIDODEUNALISTADOBLEMENTELIGADA   )NSERCIØNENLISTASDOBLEMENTELIGADAS   %LIMINACIØNENLISTASDOBLEMENTELIGADAS   ,ISTASDOBLEMENTELIGADASCIRCULARES   !PLICACIONESDELISTAS 

$0/5&/*%0  2EPRESENTACIØNDEPOLINOMIOS   3OLUCIØNDECOLISIONESHASH   ,ACLASE,ISTA  %JERCICIOS 

#!0¶45,/ «RBOLES   )NTRODUCCIØN   «RBOLESENGENERAL   #ARACTERÓSTICASYPROPIEDADESDELOSÈRBOLES   ,ONGITUDDECAMINOINTERNOYEXTERNO   «RBOLESBINARIOS   «RBOLESBINARIOSDISTINTOS SIMILARESYEQUIVALENTES   «RBOLESBINARIOSCOMPLETOS   2EPRESENTACIØNDEÈRBOLESGENERALESCOMOBINARIOS   2EPRESENTACIØNDEUNBOSQUECOMOÈRBOLBINARIO   2EPRESENTACIØNDEÈRBOLESBINARIOSENMEMORIA   /PERACIONESENÈRBOLESBINARIOS   «RBOLESBINARIOSDEBÞSQUEDA   «RBOLESBALANCEADOS   )NSERCIØNENÈRBOLESBALANCEADOS   2EESTRUCTURACIØNDELÈRBOLBALANCEADO   «RBOLESMULTICAMINOS   «RBOLES "   «RBOLES "   «RBOLES    ,ACLASE«RBOL  %JERCICIOS 

#!0¶45,/ 'RÈlCAS   )NTRODUCCIØN   $ElNICIØNDEGRÈlCAS   #ONCEPTOSBÈSICOSDEGRÈlCAS   'RÈlCASDIRIGIDAS   2EPRESENTACIØNDEGRÈlCASDIRIGIDAS   /BTENCIØNDECAMINOSDENTRODEUNADIGRÈlCA   !LGORITMODE$IJKSTRA   !LGORITMODE&LOYD   !LGORITMODE-ARSHALL   'RÈlCASNODIRIGIDAS   2EPRESENTACIØNDEGRÈlCASNODIRIGIDAS   #ONSTRUCCIØNDELÈRBOLABARCADORDECOSTOMÓNIMO   !LGORITMODE0RIM   !LGORITMODE+RUSKAL   2ESOLUCIØNDEPROBLEMAS 

ix

x

œ˜Ìi˜ˆ`œ  %SPACIO ESTADO   -ÏTODOSDEBÞSQUEDAENESPACIO ESTADO   -ÏTODOSDEBÞSQUEDABREADTH lRST   -ÏTODODEBÞSQUEDADEPTH lRST   ,ACLASEGRÈlCA  %JERCICIOS 

#!0¶45,/ -ÏTODOSDEORDENACIØN   )NTRODUCCIØN   /RDENACIØNINTERNA   /RDENACIØNPORINTERCAMBIODIRECTOBURBUJA   /RDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOCONSE×AL   /RDENACIØNPORELMÏTODODELASACUDIDASHAKERSORT   /RDENACIØNPORINSERCIØNDIRECTA   /RDENACIØNPORELMÏTODODEINSERCIØNBINARIA   /RDENACIØNPORSELECCIØNDIRECTA   !NÈLISISDEElCIENCIADELOSMÏTODOSDIRECTOS   /RDENACIØNPORELMÏTODODE3HELL   /RDENACIØNPORELMÏTODOQUICKSORT   /RDENACIØNPORELMÏTODOHEAPSORTMONTÓCULO   /RDENACIØNEXTERNA   )NTERCALACIØNDEARCHIVOS   /RDENACIØNDEARCHIVOS   /RDENACIØNPORMEZCLADIRECTA   /RDENACIØNPORELMÏTODODEMEZCLAEQUILIBRADA  %JERCICIOS 

#!0¶45,/ -ÏTODOSDEBÞSQUEDA   )NTRODUCCIØN   "ÞSQUEDAINTERNA   "ÞSQUEDASECUENCIAL   "ÞSQUEDABINARIA   "ÞSQUEDAPORTRANSFORMACIØNDECLAVES   &UNCIØNHASHPORMØDULODIVISIØN   &UNCIØNHASHCUADRADO   &UNCIØNHASHPORPLEGAMIENTO   &UNCIØNHASHPORTRUNCAMIENTO   3OLUCIØNDECOLISIONES   2EASIGNACIØN   !RREGLOSANIDADOS   %NCADENAMIENTO   «RBOLESDEBÞSQUEDA   "ÞSQUEDAEXTERNA   "ÞSQUEDAENARCHIVOSSECUENCIALES 

$0/5&/*%0  "ÞSQUEDASECUENCIAL   "ÞSQUEDASECUENCIALMEDIANTEBLOQUES   "ÞSQUEDASECUENCIALCONÓNDICES   "ÞSQUEDABINARIA   "ÞSQUEDAPORTRANSFORMACIØNDECLAVESHASH   3OLUCIØNDECOLISIONES   (ASHINGDINÈMICOBÞSQUEDADINÈMICAPORTRANSFORMACIØN

DECLAVES   -ÏTODODELASEXPANSIONESTOTALES   -ÏTODODELASEXPANSIONESPARCIALES   ,ISTASINVERTIDAS   -ULTILISTAS  %JERCICIOS 

")",)/'2!&¶!  ',/3!2)/  ¶.$)#%!.!,¶4)#/ 

xi

02%3%.4!#)¼. /"*%4)6/ %STELIBROTIENECOMOOBJETIVOPRESENTARLASESTRUCTURASDEDATOS ASÓCOMOLOSALGO RITMOSNECESARIOSPARATRATARLAS%LLENGUAJEUTILIZADOESALGORÓTMICO ESCRITOENSEUDO CØDIGO INDEPENDIENTEDECUALQUIERLENGUAJECOMERCIALDEPROGRAMACIØN%STACARACTE RÓSTICAESMUYIMPORTANTE YAQUEPERMITEALLECTORCOMPRENDERLASESTRUCTURASDEDA TOSYLOSALGORITMOSASOCIADOSAELLASSINRELACIONARLOSCONLENGUAJESDEPROGRAMACIØN PARTICULARES3ECONSIDERAQUEUNAVEZQUEELLECTORDOMINEESTOSCONCEPTOS LOSPODRÈ IMPLEMENTARFÈCILMENTEENCUALQUIERLENGUAJE 3I BIEN CADA UNO DE LOS TEMAS SON DESARROLLADOS DESDE NIVELES BÈSICOS A NIVELES COMPLEJOS SESUPONEQUEELLECTORYACONOCECIERTOSCONCEPTOS POREJEMPLOELDEDATOS SIMPLESˆENTEROS REALES BOOLEANOS CARÈCTERˆELDEINSTRUCCIØNˆDECLARATIVA ASIG NACIØN ENTRADASALIDAˆ Y EL DE OPERADORES ˆARITMÏTICOS RELACIONALES Y LØGICOSˆ !SIMISMOSEUTILIZA PERONOSEEXPLICA ELCONCEPTODEVARIABLESYCONSTANTES%NLOS ALGORITMOSSEESCRIBENLOSNOMBRESDEVARIABLESCONMAYÞSCULASˆ35-! . ETCˆ LO MISMOPARALASCONSTANTESBOOLEANASˆ6%2$!$%2/Y&!,3/ˆ #ABEACLARARQUEENESTELIBRONOSEABORDANLOSTIPOSABSTRACTOSDEDATOSDEMANERA EXPLÓCITA3INEMBARGO SETRATANALGUNOSDEELLOSSINPRESENTARLOSCOMOTALESPOREJEM PLO LASPILASYCOLASENELCAPÓTULOTRES #ADACAPÓTULOCUENTACONUNNÞMEROIMPORTANTEDEEJERCICIOS#ONÏSTOSSESIGUE ELMISMOCRITERIOAPLICADOENELDESARROLLODELOSDISTINTOSTEMAS ESDECIR SEPROPONEN EJERCICIOSENLOSQUESEAUMENTAGRADUALMENTEELNIVELDECOMPLEJIDAD

,%.'5!*%54),):!$/ %LLENGUAJEUTILIZADOPARADESCRIBIRLOSALGORITMOSESESTRUCTURADO,ASESTRUCTURASAL GORÓTMICASSELECTIVASYREPETITIVASSEENUMERANYLASINSTRUCCIONESQUEFORMANPARTEDE ELLASSEESCRIBENDEJANDOSANGRÓASPARAPROPORCIONARMAYORCLARIDAD!DEMÈS CONEL OBJETODEAYUDARALENTENDIMIENTODELOSMISMOS SEESCRIBENCOMENTARIOSENCERRADOS ENTRE[]!CONTINUACIØNSEPRESENTANLASESTRUCTURASALGORÓTMICASEMPLEADASENLOSAL GORITMOS

xiv

*ÀiÃi˜Ì>Vˆ˜ 3ELECTIVASIMPLE PI3ICONDICIØN ENTONCES ACCIØN PI  [&INDELCONDICIONALDELPASOPI] $ONDECONDICIØNESCUALQUIEREXPRESIØNRELACIONALYOLØGICA YACCIØNESCUALQUIER OPERACIØNOCONJUNTODEOPERACIONESˆLECTURA ESCRITURA ASIGNACIØNUOTRASˆ %STAESTRUCTURAPERMITESELECCIONARUNAALTERNATIVADEPENDIENDODEQUELACONDICIØN SEAVERDADERA%SDECIR ALSEREVALUADALACONDICIØN SIÏSTARESULTACONUNVALORIGUAL A6%2$!$%2/ ENTONCESSEEJECUTARÈLAACCIØNINDICADA%NCASOCONTRARIOSESIGUE CONELmUJOESTABLECIDO





3ELECTIVADOBLE PI3ICONDICIØN

ENTONCES

ACCIØN

SINO

ACCIØN PI  [&INDELCONDICIONALDELPASOPI]

$ONDECONDICIØNESUNAEXPRESIØNRELACIONALYOLØGICA YACCIØNYACCIØNSONCUAL QUIEROPERACIØNOCONJUNTODEOPERACIONESˆLECTURA ESCRITURA ASIGNACIØNUOTRASˆ %STAESTRUCTURAPERMITESELECCIONARUNADEDOSALTERNATIVAS SEGÞNLACONDICIØNSEA VERDADERAOFALSA3ILACONDICIØNESVERDADERASEEJECUTARÈLAACCIØN ENCASOCONTRARIO SEEJECUTARÈLAACCIØN 3ELECTIVAMÞLTIPLE PI3IVARIABLE

VALORACCIØN

VALORACCIØN







VALORNACCIØNN PI  [&INDELCONDICIONALDELPASOPI] $ONDEVALORJ ≤J≤N SONLOSPOSIBLESVALORESQUEPUEDETOMARLAVARIABLEAC CIØNJ ≤J≤N ESCUALQUIEROPERACIØNOCONJUNTODEOPERACIONESˆLECTURA ESCRITURA ASIGNACIØNUOTRASˆ %STE TIPO DE ESTRUCTURA SE UTILIZA PARA UNA SELECCIØN SOBRE MÞLTIPLES ALTERNATIVAS 3EGÞNELVALORDELAVARIABLESEEJECUTARÈLAACCIØNCORRESPONDIENTE$EESTAMANERA SI VARIABLEESIGUALAVALORSEEJECUTARÈLAACCIØN SIVARIABLEESIGUALAVALORSEEJECUTARÈ LAACCIØN YASÓENLOSDEMÈSCASOS

13&4&/5"$*Î/

xv

2EPETITIVACONDICIONADA

PI-IENTRASCONDICIØN 2EPETIR

ACCIØN PI  [&INDELCICLODELPASOPI] $ONDECONDICIØNESCUALQUIEREXPRESIØNRELACIONALYOLØGICA YACCIØNESCUALQUIER OPERACIØNOCONJUNTODEOPERACIONESˆLECTURA ESCRITURA ASIGNACIØNUOTRASˆ %STA ESTRUCTURA PERMITE REPETIR UNA O MÈS OPERACIONES MIENTRAS LA CONDICIØN SEA VERDADERA 2EPETITIVAPREDElNIDA

PI2EPETIRCONVARIABLEDESDE6)HASTA6&

ACCIØN PI  [&INDELCICLODELPASOPI] $ONDEVARIABLEESCUALQUIERVARIABLE 6)ESUNVALORINICIALQUESELEASIGNAAVA RIABLE 6&ESELVALORlNALQUEVAATOMARVARIABLEYACCIØNESCUALQUIEROPERACIØNO CONJUNTO DE OPERACIONES ˆLECTURA ESCRITURA ASIGNACIØN U OTRASˆ 3E ASUME QUE EL VALORDELAVARIABLESEINCREMENTADEUNOENUNO %STAESTRUCTURAPERMITEREPETIRUNAOMÈSOPERACIONESUNNÞMEROlJODEVECES%L NÞMERODEREPETICIONESQUEDADETERMINADOPORLADIFERENCIAENTRE6&Y6)MÈSUNO

/2'!.):!#)¼. %LLIBROESTÈORGANIZADOENNUEVECAPÓTULOS CADAUNODEELLOSCUENTACONNUMEROSOS EJEMPLOSYEJERCICIOSQUEILUSTRANYAYUDANAENTENDERLOSCONCEPTOSVERTIDOSENELLOS 3EUTILIZANTABLASCONSEGUIMIENTOSDELOSALGORITMOSPARAPRESENTARCØMOFUNCIONANY DEQUÏMANERAAFECTANALASESTRUCTURASDEDATOSINVOLUCRADAS !LGUNOSLECTORESQUIZÈSEPANQUEESTAOBRATIENEDOSEDICIONESANTERIORES PUBLICADA PORPRIMERAVEZPORLAMISMACASAEDITORIALEN CONMÞLTIPLESREIMPRESIONES4RECE A×OSESUNTIEMPOEXTENSOENCOMPUTACIØN UNÈREADONDELOSCAMBIOSSEPRESENTANVE LOZMENTE%STAEDICIØNOFRECEUNACUIDADOSAREVISIØNDELOSTEMASTRATADOS ALGORITMOS MEJORADOSYEJERCICIOSADICIONALES ENlN MUCHOSCAMBIOSPARA ALCANZARELOBJETIVO PROPUESTODEESTANUEVAEDICIØN!DEMÈS ENLOSCAPÓTULOS   YSEINCLUYØUNA BREVEINTRODUCCIØNALAPROGRAMACIØNORIENTADAAOBJETOS PRESENTANDOALASESTRUCTURAS DEDATOSˆOBJETOSDEESTUDIOENDICHOSCAPÓTULOSˆCONESTEENFOQUE %LLENGUAJEUTILIZADOENLOSPROGRAMASESPSEUDOCØDIGO ESDECIR INDEPENDIENTEDE CUALQUIEROTROLENGUAJEDEPROGRAMACIØNCOMERCIAL%STACARACTERÓSTICAPERMITEALESTU DIANTECONCENTRARSEENLASESTRUCTURASDEDATOSYENLOSALGORITMOSASOCIADOSAELLASSIN TENERQUEATENDERLOSDETALLESDEIMPLEMENTACIØN5NAVEZQUEDOMINELOSCONCEPTOS LOSPODRÈLLEVARALAPRÈCTICACONLAAYUDADECUALQUIERLENGUAJEDEPROGRAMACIØNCOMER CIAL,AGENERALIDADCONLAQUESEEXPLICANLOSCONCEPTOSYPOSIBLESAPLICACIONESDELOS MISMOSFACILITAN INCLUSO LAIMPLEMENTACIØNENLENGUAJESESTRUCTURADOSOENLENGUAJES ORIENTADOSAOBJETOS

xvi

*ÀiÃi˜Ì>Vˆ˜

#APÓTULO %STRUCTURASFUNDAMENTALES %NESTECAPÓTULOSEPRESENTANLASESTRUCTURASFUNDAMENTALESDEDATOS3EESTUDIANLOS ARREGLOSUNIDIMENSIONALES BIDIMENSIONALESYMULTIDIMENSIONALES!DEMÈS SEEXPLICAN LOSREGISTROS0ORÞLTIMO SEINCLUYEUNABREVEINTRODUCCIØNALAPROGRAMACIØNORIENTADA AOBJETOSCONELlNDEQUESIRVACOMOBASEPARAENTENDERLASPRINCIPALESESTRUCTURASDE DATOSDESDEESTEENFOQUE4AMBIÏNSEDESCRIBELACLASEARREGLO

#APÓTULO !RREGLOSMULTIDIMENSIONALESREPRESENTADOS

ENARREGLOSUNIDIMENSIONALES ,AMAYORÓADELOSLENGUAJESDEPROGRAMACIØNDEALTONIVELPROPORCIONANMEDIOSElCA CESPARAALMACENARYRECUPERARELEMENTOSDEARREGLOSBIDIMENSIONALESYMULTIDIMENSIO NALES0ORELLO ELUSUARIONOSEPREOCUPAPORLOSDETALLESDELALMACENAMIENTOYELTRA TAMIENTOFÓSICODELDATO SINOPORELTRATAMIENTOLØGICODELMISMO%STOREPRESENTAUNA VENTAJA3INEMBARGO SILASESTRUCTURASSONMUYGRANDESYNOTODOSLOSCAMPOSESTÈN LLENOS SEPRESENTAENTONCESUNADESVENTAJAGRANDESPERDICIODEESPACIO0UEDEOCURRIR TAMBIÏNQUEELUSUARIONECESITEREPRESENTARDICHASESTRUCTURASDEFORMALINEAL0ORESTA RAZØN ENESTECAPÓTULOSEESTUDIARÈLAREPRESENTACIØNLINEALDEARREGLOSBIDIMENSIONALES YMULTIDIMENSIONALES3EANALIZARÈN ADEMÈS LASMATRICESPOCODENSAS LASTRIANGULARES YTRIDIAGONALES LASSIMÏTRICASYANTISIMÏTRICAS

#APÓTULO 0ILASYCOLAS %STECAPÓTULOSEDEDICARÈALASPILASYCOLAS LASCUALESSONESTRUCTURASDEDATOSLINEALES ESTÈTICASODINÈMICAS⎯DEPENDIENDODESIÏSTASSEIMPLEMENTANCONARREGLOSOLISTAS⎯ 4ALESESTRUCTURASDEDATOSTIENENLAPARTICULARIDADDEQUELAINSERCIØNYELIMINACIØNDE LOSELEMENTOSSEHACESOLAMENTEPORALGUNODELOSEXTREMOSSEGÞNSUESTRUCTURA4AM BIÏNSEPRESENTANESTASESTRUCTURASCONUNENFOQUEORIENTADOAOBJETOS

#APÓTULO 2ECURSIØN ,ARECURSIØNPERMITEDElNIRUNOBJETOENTÏRMINOSDESÓMISMO!PARECEENNUMEROSAS ACTIVIDADESDELAVIDADIARIAPOREJEMPLO ENLAFOTOGRAFÓADEUNAFOTOGRAFÓA#ASOSTÓPI COSDEESTRUCTURASDEDATOSDElNIDASDEMANERARECURSIVASONLASLISTASYLOSÈRBOLES QUE SEESTUDIARÈNENLOSDOSSIGUIENTESCAPÓTULOS,ARECURSIVIDADESUNAPROPIEDADESENCIAL ENELDESARROLLODESOFTWAREPORESTARAZØN SEANALIZANAQUÓLADESCRIPCIØNDELARECUR SIVIDAD ASÓCOMOELUSODEALGORITMOSRECURSIVOSCLÈSICOSYCOMPLEJOS

13&4&/5"$*Î/

xvii

#APÓTULO ,ISTAS ,ASLISTASSONESTRUCTURASLINEALESYDINÈMICASDEDATOS,APRINCIPALVENTAJADELDINA MISMO LO REPRESENTA EL HECHO DE QUE SE ADQUIEREN POSICIONES DE MEMORIA A MEDIDA QUESENECESITANYSELIBERANCUANDOYANOSEREQUIEREN%SDECIR SELLEGANAEXPANDIR OCONTRAER DEPENDIENDODELAAPLICACIØN%LDINAMISMODEESTASESTRUCTURASSOLUCIONA ELPROBLEMADEDECIDIRCUÈNTOESPACIOSENECESITAAPRIORI POREJEMPLO ENUNAESTRUC TURADEDATOSESTÈTICACOMOELARREGLO%NESTECAPÓTULOESTUDIAREMOSLASLISTASLINEALES CIRCULARESYDOBLEMENTELIGADAS4AMBIÏNSEPRESENTANESTASESTRUCTURASCONUNENFOQUE ORIENTADOAOBJETOS

#APÓTULO ­RBOLES ,OSÈRBOLESREPRESENTANLASESTRUCTURASDEDATOSNO LINEALESYLASDINÈMICASMÈSRELEVAN TESENCOMPUTACIØN.OLINEALES PUESTOQUEACADAELEMENTODELÈRBOLPUEDENSEGUIRLE VARIOS ELEMENTOS $INÈMICAS DADO QUE LA ESTRUCTURA DEL ÈRBOL SUELE CAMBIAR DURAN TELAEJECUCIØNDELPROGRAMA,OSÈRBOLESBALANCEADOSSONLAESTRUCTURADEDATOSMÈS IMPORTANTEPARATRABAJARENLAMEMORIAINTERNADELACOMPUTADORA0OROTRAPARTE LOS ÈRBOLES " CONSTITUYENLAESTRUCTURADEDATOSMÈSÞTILPARATRABAJARCONALMACENAMIENTO SECUNDARIO4AMBIÏNSEPRESENTAESTAESTRUCTURACONUNENFOQUEORIENTADOAOBJETOS

#APÓTULO 'RÉlCAS %STECAPÓTULOSEDEDICAALASESTRUCTURASDEDATOSQUEPERMITENREPRESENTARDIFERENTESTI POSDERELACIONESENTRELOSOBJETOSLASGRÈlCAS%STUDIAREMOSLASGRÈlCASDIRIGIDASYNO DIRIGIDAS LOSCONCEPTOSMÈSIMPORTANTESYLOSALGORITMOSMÈSDESTACADOSPARATRABAJAR CONELLAS TALESCOMO$IJKSTRA &LOYD 7ARSHALL 0RIMY+RUSKAL!DEMÈS SEINCLUYEUNA INTRODUCCIØNALASOLUCIØNDEPROBLEMASˆTEMAMUYRELACIONADOCONLASGRÈlCASˆYSE ESTUDIANLOSALGORITMOS"READTH &IRSTY$EPTH &IRST4AMBIÏNSEPRESENTAESTAESTRUCTURA CONUNENFOQUEORIENTADOAOBJETOS

#APÓTULO -ÏTODOSDEORDENACIØN /RDENARSIGNIlCACOLOCAROREORGANIZARUNCONJUNTODEDATOSUOBJETOSENUNASECUENCIA ESPECÓlCA ,OS PROCESOS TANTO DE ORDENACIØN COMO DE BÞSQUEDA SON FRECUENTES EN NUESTRAVIDA%NESTECAPÓTULOESTUDIAREMOSLOSMÏTODOSDEORDENACIØNINTERNAYEXTERNA MÈSIMPORTANTESDELAACTUALIDAD3EPRESENTA ADEMÈS ELANÈLISISDEElCIENCIADECADA UNODELOSMÏTODOS

#APÓTULO -ÏTODOSDEBÞSQUEDA %STECAPÓTULOSEDEDICØAUNADELASOPERACIONESMÈSIMPORTANTESENELPROCESAMIENTO DELAINFORMACIØNLABÞSQUEDA4ALOPERACIØNPERMITERECUPERARDATOSALMACENADOS,A

xviii

*ÀiÃi˜Ì>Vˆ˜ BÞSQUEDAPUEDESERINTERNA CUANDOTODOSLOSELEMENTOSSEENCUENTRANENLAMEMORIA PRINCIPAL OEXTERNA CUANDOESTÈNENLAMEMORIASECUNDARIA3EESTUDIANLOSMÏTODOSDE BÞSQUEDAMÈSIMPORTANTESQUEEXISTEN3EPRESENTATAMBIÏNELANÈLISISDEElCIENCIADE CADAUNODEESTOSMÏTODOS

!'2!$%#)-)%.4/3 %STAOBRAESFRUTODELACOLABORACIØNDEAMIGOS ESTUDIANTESYCOLEGASQUE DEALGUNAU OTRAFORMA PARTICIPARONPARAQUEESTEPROYECTOSEAUNAREALIDAD%SPECIALMENTEQUERE MOSAGRADECERALDOCTOR!RTURO&ERNÈNDEZ0ÏREZ RECTORDEL)4!- YALOSFUNCIONARIOS DELA$IVISIØN!CADÏMICADE)NGENIERÓADEL)4!- QUIENESNOSAPOYARONPARALAREALI ZACIØNDEESTELIBRO

/36!,$/#!)2» 3),6)!'5!2$!4)

#APÓTULO

£

%3425#452!3 &5.$!-%.4!,%3 $%$!4/3  ).42/$5##)¼. ,A IMPORTANCIA DE LAS COMPUTADORAS RADICA FUNDAMENTALMENTE EN SU CAPACIDAD PARA PROCESARINFORMACIØN%STACARACTERÓSTICALESPERMITEREALIZARACTIVIDADESQUEANTESSØLO LASREALIZABANLOSHUMANOS #ONELPROPØSITODEQUELAINFORMACIØNSEAPROCESADA SEREQUIEREQUEÏSTASEAL MACENEENLAMEMORIADELACOMPUTADORA$EACUERDOCONLAFORMAENQUELOSDATOSSE ORGANIZAN SECLASIlCANEN ◗ ◗

4IPOSDEDATOSSIMPLES 4IPOSDEDATOSESTRUCTURADOS

,APRINCIPALCARACTERÓSTICADELOSTIPOSDEDATOSSIMPLESCONSISTEENQUEOCUPANSØLO UNACASILLADEMEMORIAlGA PORTANTO UNAVARIABLESIMPLEHACEREFERENCIAAUN ÞNICOVALORALAVEZ%NESTEGRUPODEDATOSSEENCUENTRANNÞMEROSENTEROSYREALES CARACTERES BOOLEANOS ENUMERADOSYSUBRANGOS#ABESE×ALARQUELOSDOSÞLTIMOSNO EXISTENENALGUNOSLENGUAJESDEPROGRAMACIØN 0OROTRAPARTE LOSTIPOSDEDATOSESTRUCTURADOSSECARACTERIZANPORELHECHODEQUE CONUNNOMBREˆIDENTIlCADORDEVARIABLEESTRUCTURADAˆSEHACEREFERENCIAAUNGRUPO DECASILLASDEMEMORIAlGB %SDECIR UNTIPODEDATOESTRUCTURADOTIENEVARIOS COMPONENTES#ADAUNODEÏSTOSPUEDESERUNTIPODEDATOSIMPLEOESTRUCTURADO3IN EMBARGO LOSCOMPONENTESBÈSICOS LOSDELNIVELMÈSBAJO DECUALQUIERTIPODEDATOS ESTRUCTURADOSONSIEMPRETIPOSDEDATOSSIMPLES %LESTUDIODELASESTRUCTURASDEDATOSCONSTITUYEUNADELASPRINCIPALESACTIVIDADES PARALLEGARALDESARROLLODEGRANDESSISTEMASDESOFTWARE%NESTECAPÓTULOSETRATARÈNLAS ESTRUCTURASDEDATOSBÈSICOSQUESONÞTILESPARALAMAYORÓADELOSLENGUAJESDEPROGRA MACIØN²STASSONARREGLOSYREGISTROS

2

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52!Ê 4IPOSDEDATOSSIMPLES YESTRUCTURADOS B $ATOSIMPLE C $ATOESTRUCTURADO

 !22%',/3 #ONFRECUENCIASEPRESENTANENLAPRÈCTICAPROBLEMASCUYASOLUCIØNNORESULTAFÈCILˆA VECESESIMPOSIBLEˆSISEUTILIZANTIPOSDEDATOSSIMPLES #ONELPROPØSITODEILUSTRARESTADIlCULTAD ACONTINUACIØNSEPRESENTARÈNUNPRO BLEMAYDOSDESUSPOSIBLESSOLUCIONESMEDIANTETIPOSSIMPLESDEDATOS%LOBJETIVODE ESTEEJEMPLOESDEMOSTRARLOCOMPLEJOQUERESULTAUNALGORITMODESOLUCIØNPARACIERTOS PROBLEMAS SINOSEUTILIZANTIPOSDEDATOSESTRUCTURADOS&INALMENTE YLUEGODEPRE SENTARLOSARREGLOS SEOFRECERÈUNASOLUCIØNALPROBLEMAMENCIONADOENPRIMERTÏRMINO USANDOARREGLOS

%JEMPLO

#ONSIDEREMOSQUEENUNAUNIVERSIDADSECONOCENLASCALIlCACIONESDEUNGRUPODE ALUMNOS3ENECESITASABERCUÈNTOSDEÏSTOSTIENENCALIlCACIØNSUPERIORALPROMEDIODEL GRUPO z#ØMORESOLVERESTEPROBLEMA 0RIMERASOLUCIØN !LGORITMO $OBLE?LECTURA $OBLE?LECTURA [%STE ALGORITMO RESUELVE EL PROBLEMA PLANTEADO EN EL EJEMPLO  REALIZANDO DOS VECES LA LECTURADELOSDATOS] [)Y#/.4SONVARIABLESDETIPOENTERO!# 02/-Y#SONVARIABLESDETIPOREAL]  (ACER!#←E)←  -IENTRAS)≤ 2EPETIR %SCRIBIRh)NGRESELACALIlCACIØNv ) ,EER# (ACER!#←!# #E)←)  [&INDELCICLODELPASO]  (ACER02/-←!# [#OMOSENECESITAINDICARCUÈNTOSALUMNOSOBTUVIERONCALIlCACIØNSUPERIORALPROMEDIO SE RELEERÈNLASCALIlCACIONESPARACOMPARARCADAUNADEELLASCONELPROMEDIOCALCULADOEN ELPASO]

 "33&(-04

3

(ACER#/.4←E)←  -IENTRAS)≤ 2EPETIR

%SCRIBIRh)NGRESELACALIlCACIØNv )

,EER#  3I#>02/-ENTONCES

(ACER#/.4←#/.4  [&INDELCONDICIONALDELPASO]  (ACER)←)  [&INDELCICLODELPASO]  %SCRIBIR#/.4

3EGUNDASOLUCIØN !LGORITMO -UCHAS?VARIABLES -UCHAS?VARIABLES [%STE ALGORITMO RESUELVE EL PROBLEMA PLANTEADO EN EL EJEMPLO  PERO AHORA MEDIANTE MUCHASVARIABLES] [#/.4ESUNAVARIABLEDETIPOENTERO02/- !#Y#ISONVARIABLESDETIPOREAL]  ,EER# # #  #

[,ASCALIlCACIONESCORRESPONDENALOSALUMNOS]  (ACER!#←####

02/-←!#Y#/.4←  3I#02/-ENTONCES (ACER#/.4←#/.4 Ê  [&INDELCONDICIONALDELPASO]  3I#02/-ENTONCES (ACER#/.4← #/.4  [&INDELCONDICIONALDELPASO]

  3I#02/-ENTONCES (ACER#/.4←#/.4  [&INDELCONDICIONALDELPASO]  %SCRIBIR#/.4

%STASDOSSOLUCIONESSONMUYREPRESENTATIVASDELOSINCONVENIENTESALOSQUEUNO SEPUEDEENFRENTAR ALPLANTEARUNASOLUCIØNALGORÓTMICAAUNPROBLEMAALUSARSØLOTIPOS DEDATOSSIMPLES

4

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 %NLASOLUCIØNPLANTEADAENELALGORITMOELUSUARIODEBEINGRESARDOSVECESEL CONJUNTODEDATOS%STOÞLTIMOTIENEVARIASDESVENTAJASESTOTALMENTEMOLESTOˆCON SIDEREQUEELNÞMERODEDATOSPUEDESERMAYORAˆ INElCIENTEˆLAOPERACIØNDE LECTURA YASEADEMANERAINTERACTIVACONELUSUARIOODESDEUNARCHIVO SEDEBEREPETIR LOQUEOCASIONAPÏRDIDADETIEMPOˆYCAUSADEERRORESˆENLOSCASOSDONDELAENTRADA DEDATOSSEHAGADEFORMAMANUALˆ 0OROTRAPARTE ENLASOLUCIØNPLANTEADAENELALGORITMOSEMANEJANVARIABLES ENMEMORIA%STASOLUCIØNPRESENTAELINCONVENIENTEDEQUEELMANEJODELASVARIABLESSE PUEDETORNARINCONTROLABLE SOBRETODOSISUNÞMEROCRECEENFORMACONSIDERABLE!DEMÈS ALGUNOSPASOSESPECIlCADOSENELALGORITMO QUEPOSTERIORMENTESERÈNINSTRUCCIONESDE ALGÞNLENGUAJEDEPROGRAMACIØN SEREPITEN YAQUENOSEPUEDENGENERALIZAR%STACARACTE RÓSTICANOSØLOPROVOCAMÈSTRABAJO SINOTAMBIÏNPOSIBLESERRORES%SSABIDOQUEEJECUTAR UNATAREAENFORMAREPETIDA ENESTECASOESCRIBIRUNMISMOPASOVARIASVECES RESTAINTERÏS ENLAACCIØNQUESEESTÈLLEVANDOACABO YPUEDEPROPICIARMÈSERRORES 3EOBSERVA ENTONCES QUENINGUNADELASDOSSOLUCIONESRESULTAPRÈCTICANIElCIEN TE%SNECESARIOUNTIPODEDATOQUEPERMITAMANEJARMUCHAINFORMACIØN GENERALIZAN DOSUSOPERACIONES,OSTIPOSDEDATOSESTRUCTURADOSQUEAYUDANARESOLVERPROBLEMAS COMOÏSTESONLOSARREGLOS 5N ARREGLO UNIDIMENSIONAL SE DElNE COMO UNA COLECCIØN lNITA HOMOGÏNEA Y ORDENADADEELEMENTOS ◗ ◗ ◗

&INITATODOARREGLOTIENEUNLÓMITEESDECIR SEDEBEDETERMINARCUÈLSERÈELNÞMERO MÈXIMODEELEMENTOSQUEFORMARÈNPARTEDELARREGLO (OMOGÏNEATODOSLOSELEMENTOSDEUNARREGLOSONDELMISMOTIPO%SDECIR TODOS ENTEROS TODOSBOOLEANOS ETCÏTERA PERONUNCAUNACOMBINACIØNDEDISTINTOSTIPOS /RDENADASEPUEDEDETERMINARCUÈLESSONELPRIMERO ELSEGUNDO ELTERCERO Y ELENÏSIMOELEMENTOS

5NARREGLOUNIDIMENSIONALSEPUEDEREPRESENTARGRÈlCAMENTECOMOSEMUESTRAEN LAlGURA 3I UN ARREGLO TIENE LA CARACTERÓSTICA DE QUE PUEDE ALMACENAR A . ELEMENTOS DEL MISMOTIPO ENTONCESDEBERÈPERMITIRLARECUPERACIØNDECADAUNODEELLOS#OMOCON SECUENCIA SEDISTINGUENDOSPARTESFUNDAMENTALESENLOSARREGLOS ◗ ◗

,OSCOMPONENTES ,OSÓNDICES

,OSPRIMEROSHACENREFERENCIAALOSELEMENTOSQUEFORMANELARREGLOESDECIR A LOS VALORES QUE SE ALMACENAN EN CADA UNA DE SUS CASILLAS lG   #ONSIDERANDO EL &)'52! 2EPRESENTACIØN DEARREGLOS

 "33&(-04

5

&)'52! ·NDICESYCOMPONENTES DEUNARREGLO

EJEMPLOANTERIOR CADAUNADELASCALIlCACIONESSERÈUNCOMPONENTEDEUNARREGLO hCALIlCACIONESv%NESTECONTEXTO LOSÓNDICESESPECIlCANCUÈNTOSELEMENTOSTENDRÈEL ARREGLOYADEMÈSDEQUÏMODOPODRÈNRECUPERARSEESOSCOMPONENTES,OSÓNDICESTAM BIÏNPERMITENHACERREFERENCIAALOSCOMPONENTESDELARREGLOENFORMAINDIVIDUALES DECIR DISTINGUIRÈNENTRESUSELEMENTOS0ORTANTO PARAHACERREFERENCIAAUNELEMENTO DEUNARREGLOSEDEBEUTILIZAR ◗ ◗

%LNOMBREDELARREGLO %LÓNDICEDELELEMENTO

%NLAlGURASEREPRESENTAUNARREGLOUNIDIMENSIONALYSEINDICANTANTOSUSCOM PONENTESCOMOSUSÓNDICES

 $ECLARACIØNDEARREGLOSUNIDIMENSIONALES .OESELPROPØSITODEESTELIBROSEGUIRLASINTAXISDEALGÞNLENGUAJEDEPROGRAMACIØNEN PARTICULARUNARREGLOUNIDIMENSIONALSEDElNEDELASIGUIENTEMANERA IDENT?ARREGLO!22%',/;LÓMINFLÓMSUP=$%TIPO #ONLOSVALORESLÓMINFYLÓMSUPSEDECLARAELTIPODELOSÓNDICES ASÓCOMOELNÞ MERODEELEMENTOSQUETENDRÈELARREGLO%LNÞMEROTOTALDECOMPONENTES.4# QUE TENDRÈELARREGLOUNIDIMENSIONALSECALCULACON

.4#LÓMSUPLÓMINF

▼ &ØRMULA

#ONTIPOSEDECLARAELTIPODEDATOSPARATODOSLOSCOMPONENTESDELARREGLOUNIDI MENSIONAL%LTIPODELOSCOMPONENTESNOTIENEQUESERELMISMOQUEELDELOSÓNDICES %NGENERAL LOSLENGUAJESDEPROGRAMACIØNESTABLECENRESTRICCIONESALRESPECTO /BSERVACIONES A %LTIPODELÓNDICEPUEDESERCUALQUIERTIPOORDINALCARÈCTER ENTERO ENUMERADO%N LAMAYORÓADELOSLENGUAJESUSADOSACTUALMENTESEPERMITESØLONÞMEROSENTEROS

6

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 B %LTIPODELOSCOMPONENTESPUEDESERCUALQUIERTIPODEDATOSˆENTERO REAL CADENA DECARACTERES REGISTRO ARREGLO ETCÏTERAˆ C 3EUTILIZANLOSCORCHETESh;=vPARAINDICARELÓNDICEDEUNARREGLO%NTRE;=SEDEBE ESCRIBIRUNVALORORDINALPUEDESERUNAVARIABLE UNACONSTANTEOUNAEXPRESIØNTAN COMPLEJACOMOSEQUIERA PEROQUEDÏCOMORESULTADOUNVALORORDINAL %NSEGUIDASEVERÈNALGUNOSEJEMPLOSDEARREGLOSUNIDIMENSIONALES

%JEMPLO

3EA6UNARREGLOUNIDIMENSIONALDEELEMENTOSENTEROSCONÓNDICESENTEROS3UREPRE SENTACIØNSEINDICAENLAlGURA 6!22%',/;=$%ENTEROS ◗ ◗

.4#n   #ADACOMPONENTEDELARREGLOUNIDIMENSIONAL6SERÈUNNÞMEROENTERO ALCUALSE TENDRÈACCESOPORMEDIODEUNÓNDICEQUESERÈUNVALORCOMPRENDIDOENTREY 0OREJEMPLO 6;L=HACEREFERENCIAALELEMENTODELAPOSICIØN 6;=HACEREFERENCIAALELEMENTODELAPOSICIØN  6;=HACEREFERENCIAALELEMENTODELAPOSICIØN

,OSÓNDICESDETIPOENTERONONECESARIAMENTEDEBENTENERUNLÓMITEINFERIORIGUALACERO OAUNO0ODRÓANUSARSEVALORESNEGATIVOS;=OVALORESMAYORESAUNO;=

%JEMPLO

3EA!UNARREGLODEELEMENTOSBOOLEANOSCONÓNDICESDETIPOCARÈCTER3UREPRESENTA CIØNSEMUESTRAENLAlGURA !!22%',/;@A@Z=$%BOOLEANOS ◗ ◗

.4#ORD@Z ORD@A    #ADACOMPONENTEDELARREGLOUNIDIMENSIONAL!SERÈUNODELOSDOSPOSIBLESVALORES LØGICOS6%2$!$%2/O&!,3/ ALCUALSETENDRÈACCESOPORMEDIODEUNÓNDICE QUESERÈ[email protected][email protected] 0OREJEMPLO !;@A=HACEREFERENCIAALELEMENTODELAPOSICIØ[email protected]ERA !;@B=HACEREFERENCIAALELEMENTODELAPOSICIØ[email protected]DA

&)'52!



 







 "33&(-04

7

&)'52!

 !;@Z=HACEREFERENCIAALELEMENTODELAPOSICIØ[email protected]

%JEMPLO

3EA#)#,/UNARREGLODEELEMENTOSREALESCONÓNDICESDETIPOESCALAROENUMERADOS 3UREPRESENTACIØNSEMUESTRAENLAlGURA MESESENE FEB MAR ABR MAY JUN JUL AGO SEPT OCT NOV DIC #)#,/!22%',/;MESES=$%REALES ◗ ◗

.4#ORDDIC ORDENE L n  #ADACOMPONENTEDELARREGLOUNIDIMENSIONAL#)#,/SERÈUNNÞMEROREAL ALCUAL SETENDRÈACCESOPORMEDIODEUNÓNDICE QUESERÈUNVALORCOMPRENDIDOENTREENE YDIC 0OREJEMPLO #)#,/;ENE=HACEREFERENCIAALELEMENTODELAPOSICIØNENEERA #)#,/;FEB=HACEREFERENCIAALELEMENTODELAPOSICIØNFEBDA  #)#,/;DIC=HACEREFERENCIAALELEMENTODELAPOSICIØNDICAVA

 /PERACIONESCONARREGLOSUNIDIMENSIONALES #OMOYASEMENCIONØ LOSARREGLOSSEUTILIZANPARAALMACENARDATOS0ORTANTO RESULTA NECESARIOLEER ESCRIBIR ASIGNAROSIMPLEMENTEMODIlCARDATOSENUNARREGLO!SIMISMO ALCONSIDERARQUEESUNAESTRUCTURA AUNACOLECCIØNDEELEMENTOSSEDEBENINCORPORAR NUEVOSELEMENTOS ASÓCOMOELIMINARALGUNOSDELOSYAALMACENADOS,ASOPERACIONES VÈLIDASENARREGLOSSONLASSIGUIENTES ◗ ◗ &)'52!

,ECTURA%SCRITURA !SIGNACIØN

8

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 ◗

◗ ◗

!CTUALIZACIØN)NSERCIØN %LIMINACIØN -ODIlCACIØN /RDENACIØN "ÞSQUEDA

#OMOLOSARREGLOSSONTIPOSDEDATOSESTRUCTURADOS MUCHASDEESTASOPERACIONES NOSEPUEDENLLEVARACABODEMANERAGLOBALESDECIR TRATANDOALARREGLOCOMOUNTODO SINOQUESEDEBETRABAJARSOBRECADACOMPONENTE !CONTINUACIØNSEANALIZARÈCADAUNADEESTASOPERACIONES#ABEDESTACARQUELAS DOSÞLTIMAS ORDENACIØNYBÞSQUEDA SERÈNTEMADEESTUDIOENPRØXIMOSCAPÓTULOS0ARA ILUSTRARLASSEUTILIZARÈNLOSEJEMPLOSPRESENTADOSANTERIORMENTE

,ECTURA %LPROCESODELECTURADEUNARREGLOCONSISTEENLEERYASIGNARUNVALORACADAUNODESUS COMPONENTES3UPONGAQUESEDESEALEERTODOSLOSELEMENTOSDELARREGLOUNIDIMENSIO NAL6ENFORMACONSECUTIVA3EPODRÓAHACERDELASIGUIENTEMANERA ,EER6;= ,EER6;=  ,EER6;= 0EROESIMPORTANTEQUEELLECTOROBSERVEQUEDEESTAFORMANORESULTAPRÈCTICO0OR TANTO SEUSARÈUNCICLOPARALEERTODOSLOSELEMENTOSDELARREGLOUNIDIMENSIONAL 2EPETIRCON)DESDEHASTA ,EER6;)= !LVARIARELVALORDE) CADAELEMENTOLEÓDOSEASIGNAALCORRESPONDIENTECOMPONEN TEDELARREGLOSEGÞNLAPOSICIØNINDICADAPOR) 0ARA) SELEE6;=

) SELEE6;=



). SELEE6;.= !LlNALIZARELCICLODELECTURASETENDRÈASIGNADOUNVALORACADAUNODELOSCOMPO NENTESDELARREGLOUNIDIMENSIONAL6%LARREGLOSEMUESTRAENLAlGURA

&)'52! ,ECTURADEARREGLOS

 "33&(-04

9

&)'52! ,ECTURADEARREGLOS

0UEDE SUCEDER QUE NO SE NECESITEN LEER TODOS LOS COMPONENTES DEL ARREGLO SINO SOLAMENTEALGUNODEELLOS3UPONGAMOSQUESEDEBENLEERLOSELEMENTOSCONÓNDICES COMPRENDIDOSENTREELYEL!CONTINUACIØNSEMUESTRAELCICLOQUESENECESITAPARA REALIZARESTAOPERACIØN 2EPETIRCON)DESDEHASTA ,EER6;)= %LARREGLOSEMUESTRAENLAlGURA

%SCRITURA %LCASODELAOPERACIØNDEESCRITURAESSIMILARALDELECTURA3EDEBEESCRIBIRELVALORDE CADAUNODELOSCOMPONENTES3UPONGAMOSQUESEDESEAESCRIBIRLOSPRIMEROS.COMPO NENTESDELARREGLOUNIDIMENSIONAL6ENFORMACONSECUTIVA,OSPASOSASEGUIRSON 2EPETIRCON)DESDEHASTA. %SCRIBIR6;)= !LVARIARELVALORDE)SEESCRIBEELELEMENTODELARREGLOUNIDIMENSIONAL6 CORRES PONDIENTEALAPOSICIØNINDICADAPOR) 0ARA) SEESCRIBEELVALORDE6;=

) SEESCRIBEELVALORDE6;=



). SEESCRIBEELVALORDE6;.=

!SIGNACIØN %NGENERAL NOESPOSIBLEASIGNARDIRECTAMENTEUNVALORATODOELARREGLO SINOQUESE DEBEASIGNARELVALORDESEADOACADACOMPONENTE%NSEGUIDASEANALIZANALGUNOSEJEM PLOSDEASIGNACIØN /BSERVEQUEENLOSDOSPRIMEROSCASOSSEASIGNAUNVALORAUNADETERMINADACASILLA DELARREGLO ENELPRIMEROALASE×ALADAPORELÓNDICEENE YENELSEGUNDOALAINDICADA PORELÓNDICEMAR #)#,/;ENE=← #)#,/;MAR=←#)#,/;ENE= %NELTERCERCASOSEASIGNAELATODASLASCASILLASDELARREGLO CONLOQUEÏSTEQUEDA COMOSEMUESTRAENLAlGURA

10

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52! !SIGNACIØNDEARREGLOS

2EPETIRCON-%3DESDEENEHASTADIC (ACER#)#,/;-%3=← #ABEDESTACARQUEENALGUNOSLENGUAJESDEPROGRAMACIØNESPOSIBLEASIGNARUNA VARIABLETIPOARREGLOAOTRADELMISMOTIPO 6←6 ,AEXPRESIØNANTERIORESEQUIVALENTEAREALIZARLOSIGUIENTE 2EPETIRCON)DESDEHASTA (ACER6;)=←6;)=

!CTUALIZACIØN ,AACTUALIZACIØNESUNAOPERACIØNQUESEREALIZAENFORMAFRECUENTEENLOSARREGLOS,A CANTIDADDEACTUALIZACIONESESTÈRELACIONADACONELTIPODEPROBLEMAQUESEINTENTERE SOLVER!DIFERENCIADELASOTRASOPERACIONESESTUDIADAS LAACTUALIZACIØNLLEVAIMPLÓCITA OTROSTIPOSDEOPERACIONES COMOINSERCIØNYELIMINACIØNDEELEMENTOS #ONELPROPØSITODEREALIZARUNAACTUALIZACIØNDEMANERAElCIENTE ESIMPORTANTE CONOCERSIELARREGLOESTÈONOORDENADOESDECIR SISUSCOMPONENTESRESPETANALGÞN ORDEN YASEACRECIENTEODECRECIENTE#ABEDESTACARQUELASOPERACIONESDEINSERCIØN ELIMINACIØNYMODIlCACIØNSERÈNTRATADASENFORMASEPARADAPARAARREGLOSORDENADOSY DESORDENADOS &INALMENTE ES IMPORTANTE SE×ALAR QUE LA OPERACIØN DE BÞSQUEDA SE UTILIZA COMO AUXILIARENLASOPERACIONESDEINSERCIØN ELIMINACIØNYMODIlCACIØN%STAESLAPRINCI PALRAZØNPORLACUALACONTINUACIØNSEPRESENTAELALGORITMODEBÞSQUEDASECUENCIALEN ARREGLOSDESORDENADOS%NELCAPÓTULOCORRESPONDIENTEAMÏTODOSDEBÞSQUEDASETRATARÈ CONMAYORDETALLEESTETEMA !LGORITMO "USCA?SECUENCIAL?DESORDENADO "USCA?SECUENCIAL?DESORDENADO [%LALGORITMOBUSCAENFORMASECUENCIALUNELEMENTOENUNARREGLOUNIDIMENSIONALQUESE ENCUENTRADESORDENADO6ESUNARREGLODEELEMENTOS .ELNÞMEROACTUALDEELEMENTOSY 8ELVALORABUSCAR] [)ESUNAVARIABLEAUXILIARDETIPOENTERO]  (ACER)←

 "33&(-04

11

 -IENTRAS)≤. Y8≠6;)= 2EPETIR

(ACER)←)

 [&INDELCICLODELPASO]  3I).[.OSEENCONTRØELVALORBUSCADO]

ENTONCES

%SCRIBIRh%LVALOR8NOESTÈENELARREGLOv SINO%SCRIBIRh%LVALOR8ESTÈENLAPOSICIØN)v

 [&INDELCONDICIONALDELPASO]

%STEMÏTODODEBÞSQUEDAESSENCILLO AUNQUENOMUYElCIENTE#ONSISTEENRECORRER ELARREGLO COMPARANDOCADAELEMENTODELMISMOCONELVALORABUSCAR%LPROCESOSE REPITEHASTAQUEELVALORSEENCUENTREˆÏXITOˆOHASTAQUESEHAYASUPERADOELTAMA×O DELARREGLOˆFRACASOˆ

>®Ê ÀÀi}œÃÊ`iÜÀ`i˜>`œÃÊ #ONSIDEREUNARREGLOUNIDIMENSIONAL6DEELE MENTOS COMOELQUESEPRESENTAENLAlGURA/BSERVEQUELOSPRIMEROS.COMPO NENTESTIENENASIGNADOUNVALOR A

)NSERCIØN0ARAINSERTARUNELEMENTO9ENUNARREGLOUNIDIMENSIONAL6DESORDE NADO SEDEBEVERIlCARQUEEXISTAESPACIO3ISECUMPLEESTACONDICIØN ENTONCES SEASIGNARÈENLAPOSICIØN.ELNUEVOELEMENTOYSEINCREMENTARÈEN.EL TOTALDEELEMENTOSDELARREGLO !CONTINUACIØNSEPRESENTAELALGORITMODEINSERCIØNENARREGLOSUNIDIMEN SIONALESDESORDENADOS

!LGORITMO )NSERTA?DESORDENADO )NSERTA?DESORDENADO6 . 9 [%LALGORITMOINSERTAUNELEMENTOENUNARREGLOUNIDIMENSIONALDESORDENADO6ESUNARREGLO DE MÈXIMO  ELEMENTOS . ES EL NÞMERO ACTUAL DE ELEMENTOS 9 REPRESENTA EL VALOR A INSERTAR]  3I. ENTONCES (ACER.←. Y6;.=←9 SINO[.OHAYESPACIOENELARREGLO] %SCRIBIRh%LVALOR9NOSEPUEDEINSERTAR.OHAYESPACIOv  [&INDELCONDICIONALDELPASO]

,UEGODELAINSERCIØNELARREGLOUNIDIMENSIONAL6QUEDACOMOSEMUESTRAENLA lGURAA

12

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52! !CTUALIZACIØNDEARREGLOS DESORDENADOS

A

%LIMINACIØN0ARAELIMINARUNELEMENTO8DEUNARREGLOUNIDIMENSIONAL6DES ORDENADO SEDEBEVERIlCARQUE8SEENCUENTREENELARREGLO3ISECUMPLEESTA CONDICIØN ENTONCESSEPROCEDERÈARECORRERTODOSLOSELEMENTOSQUEESTÈNASU DERECHAUNAPOSICIØNALAIZQUIERDA DISMINUYENDOENUNOELNÞMERODECOMPO NENTESDELARREGLO !CONTINUACIØNSEPRESENTAELALGORITMODEELIMINACIØNENARREGLOSDESORDE NADOS#ABEDESTACARQUELAOPERACIØNDEBÞSQUEDAPRESENTADAENELALGORITMO SEUSAPARADETERMINARSIELELEMENTO8SEENCUENTRAENELARREGLO0ARAEL CASODEQUELARESPUESTASEAPOSITIVA SEOBTIENETAMBIÏNLAPOSICIØNENQUESE ENCUENTRA#ONELPROPØSITODEOFRECERMAYORCLARIDADENLASOLUCIØNDEESTEPRO BLEMA SEINCLUYEDENTRODELALGORITMODEELIMINACIØNELALGORITMODEBÞSQUEDA SECUENCIALENARREGLOSDESORDENADOS

!LGORITMO %LIMINA?DESORDENADO %LIMINA?DESORDENADO6 . 8 [%L ALGORITMO ELIMINA UN ELEMENTO EN UN ARREGLO UNIDIMENSIONAL DESORDENADO 6 ES UN ARREGLODEELEMENTOS.ESELNÞMEROACTUALDEELEMENTOS8ESELVALORAELIMINAR] [)Y+SONVARIABLESDETIPOENTERO]  (ACER)←  -IENTRAS)≤. Y8≠6;)= 2EPETIR (ACER)←)  [&INDELCICLODELPASO]  3I). [.OSEENCONTRØELVALORBUSCADO] ENTONCES %SCRIBIRh%LVALOR8NOSEENCUENTRAENELARREGLOv SINO  2EPETIRCON+DESDE)HASTA. (ACER6;+=←6;+ =  [&INDELCICLODELPASO] (ACER.←.  [&INDELCONDICIONALDELPASO]

,UEGODELAELIMINACIØN ELARREGLOUNIDIMENSIONAL6QUEDACOMOSEMUESTRAEN LAlGURAB

 "33&(-04

13

&)'52!A )NSERCIØNENARREGLOS DESORDENADOS

A

-ODIlCACIØN 0ARA MODIlCAR UN ELEMENTO 8 DE UN ARREGLO UNIDIMENSIONAL 6 DESORDENADOSEDEBEVERIlCARQUE8SEENCUENTREENELARREGLO3ISECUMPLEESTA CONDICIØN ENTONCESSEPROCEDERÈASUACTUALIZACIØN !CONTINUACIØNSEPRESENTAELALGORITMODEMODIlCACIØNENARREGLOSDESOR DENADOS ENELCUALSEINCLUYELABÞSQUEDASECUENCIAL

!LGORITMO -ODIlCA?DESORDENADO -ODIlCA?DESORDENADO6 . 8 9 [%L ALGORITMO MODIlCA UN ELEMENTO DE UN ARREGLO UNIDIMENSIONAL DESORDENADO 6 ES UN ARREGLODEMÈXIMOELEMENTOS.ESELNÞMEROACTUALDEELEMENTOS8ESELELEMENTOA MODIlCARPORELELEMENTO9] [)ESUNAVARIABLEDETIPOENTERO]  (ACER)←  -IENTRAS)≤. Y8≠6;)= 2EPETIR (ACER)←)   [&INDELCICLODELPASO]  3I). [.OSEENCONTRØELVALORBUSCADO] ENTONCES %SCRIBIRh%LVALOR8NOSEENCUENTRAENELARREGLOv SINO (ACER6;)=←9  [&INDELCONDICIONALDELPASO]

,UEGO DE LA MODIlCACIØN EL ARREGLO UNIDIMENSIONAL 6 QUEDA COMO SE MUESTRAENLAlGURAC &)'52!B %LIMINACIØNENARREGLOS DESORDENADOS

14

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52!C -ODIlCACIØNENARREGLOS DESORDENADOS

L®Ê ÀÀi}œÃʜÀ`i˜>`œÃ #ONSIDEREELARREGLOUNIDIMENSIONALORDENADO6DE ELEMENTOSDELAlGURA,OSPRIMEROS.COMPONENTESDELMISMOTIENENASIGNADOUN VALOR%NESTECASOSETRABAJARÈCONUNARREGLOORDENADODEMANERACRECIENTE ESDECIR 6;=≤6;=≤6;=≤≤6;.= #UANDOSETRABAJACONARREGLOSORDENADOSSEDEBEEVITARALTERARELORDENALINSERTAR NUEVOSELEMENTOSOALMODIlCARLOSEXISTENTES B

)NSERCIØN0ARAINSERTARUNELEMENTO8ENUNARREGLOUNIDIMENSIONAL6ORDENADO PRIMEROSEDEBEVERIlCARQUEEXISTAESPACIO,UEGOSEENCONTRARÈLAPOSICIØNEN LAQUEDEBERÓAESTARELNUEVOVALORPARANOALTERARELORDENDELARREGLO#UANDOSE DETECTELAPOSICIØN SEPROCEDERÈARECORRERTODOSLOSELEMENTOSDESDEAHÓHASTA LA. ÏSIMAPOSICIØN UNLUGARALADERECHA&INALMENTESEASIGNARÈELVALORDE 8ENLAPOSICIØNENCONTRADA#ABEDESTACARQUEELDESPLAZAMIENTONOSELLEVAA CABOCUANDOELVALORAINSERTARESMAYORQUEELÞLTIMOELEMENTODELARREGLO 'ENERALMENTE CUANDOSEQUIEREHACERUNAINSERCIØNSEDEBEVERIlCARQUEEL ELEMENTONOSEENCUENTREENELARREGLO%NLAMAYORÓADELOSCASOSPRÈCTICOSNO INTERESATENERINFORMACIØNDUPLICADAPORTANTO SIELVALORQUESEDESEAINSERTAR YAESTUVIERAENELARREGLO LAOPERACIØNNOSELLEVARÈACABO

!NTESDEPRESENTARELALGORITMODEINSERCIØN SEDElNIRÈUNAFUNCIØNDEBÞSQUEDA AUXILIAR PARAARREGLOSORDENADOS QUESEUTILIZARÈTANTOENELPROCESODEINSERCIØNCOMO ENELDEELIMINACIØN%STAFUNCIØNESUNAVARIANTEDELAPRESENTADAENELALGORITMO YDACOMORESULTADOLAPOSICIØNENLAQUEENCONTRØALELEMENTO8OELNEGATIVODELA POSICIØNENLAQUEDEBERÓAESTAR0ARAMAYORINFORMACIØNSOBREALGORITMOSDEBÞSQUEDA CONSULTEELCAPÓTULO !LGORITMO "USCA?SECUENCIAL?ORDENADO "USCA?SECUENCIAL?ORDENADO6 . 8 0/3 [%LALGORITMOBUSCAUNELEMENTO8ENUNARREGLOUNIDIMENSIONAL6DE.ELEMENTOSQUESE ENCUENTRAORDENADOCRECIENTEMENTE0/3INDICALAPOSICIØNDE8EN6OLAPOSICIØNENLAQUE ESTARÓA8] [)ESUNAVARIABLEDETIPOENTERO]  (ACER)←  -IENTRAS)≤. Y6;)=8 2EPETIR (ACER)←)

 "33&(-04

15

&)'52! !CTUALIZACIØNDEARREGLOS ORDENADOS

 [&INDELCICLODELPASO]  3I). O6;)=8 ENTONCES (ACER0/3←) SINO (ACER0/3←)  [&INDELCONDICIONALDELPASO]

!CONTINUACIØNSEPRESENTAELALGORITMODEINSERCIØNENUNARREGLOUNIDIMENSIONAL QUESEENCUENTRAORDENADOENFORMACRECIENTE !LGORITMO )NSERTA?ORDENADO )NSERTA?ORDENADO6 . 9 [%STEALGORITMOINSERTAUNELEMENTO9ENUNARREGLOUNIDIMENSIONALQUESEENCUENTRAORDENADO DEFORMACRECIENTE,ACAPACIDADMÈXIMADELARREGLOESDEELEMENTOS.INDICAELNÞMERO ACTUALDEELEMENTOSDE6] [0/3E)SONVARIABLESDETIPOENTERO]  3I. ENTONCES ,LAMARALALGORITMO"USCA?SECUENCIAL?ORDENADOCON6 . 9Y0/3  3I0/3[%LELEMENTOFUEENCONTRADOENELARREGLO] ENTONCES %SCRIBIRh%LELEMENTOYAEXISTEv SINO (ACER.←. Y0/3←0/3   2EPETIRCON)DESDE.HASTA0/3  (ACER6;)=←6;)=  [&INDELCICLODELPASO] (ACER6;0/3=←9  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh.OHAYESPACIOENELARREGLOv  [&INDELCONDICIONALDELPASO]

16

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52!A )NSERCIØNENARREGLOS ORDENADOS

,UEGODELAINSERCIØN ELARREGLOQUEDACOMOSEMUESTRAENLAlGURAA B

%LIMINACIØN0ARAELIMINARUNELEMENTO8DEUNARREGLOUNIDIMENSIONALORDE NADO6SEDEBEBUSCARLAPOSICIØNDELELEMENTOAELIMINAR3IELRESULTADODELA FUNCIØNESUNVALORPOSITIVO SIGNIlCAQUEELELEMENTOSEENCUENTRAENELARREGLO Y PORTANTO SEPUEDEELIMINARENCASOCONTRARIO NOSEPUEDEREALIZARLAOPERA CIØNDEELIMINACIØN !CONTINUACIØNSEPRESENTAELALGORITMODEELIMINACIØNENARREGLOSORDE NADOS

!LGORITMO %LIMINA?ORDENADO %LIMINA?ORDENADO6 . 8 [%LALGORITMOELIMINAUNELEMENTO8DEUNARREGLOUNIDIMENSIONAL6DE.ELEMENTOSQUESE ENCUENTRAORDENADOENFORMACRECIENTE] [0/3E)SONVARIABLESDETIPOENTERO]  3I. ENTONCES ,LAMARALALGORITMO"USCA?SECUENCIAL?ORDENADOCON6 . 8Y0/3  3I0/3 [.OSEPUEDEELIMINARPORQUE8NOEXISTE] ENTONCES %SCRIBIRh%LELEMENTONOEXISTEv SINO (ACER.←.n  2EPETIRCON)DESDE0/3HASTA. (ACER6;)=←6;) =  [&INDELCICLODELPASO]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LARREGLOESTÈVACÓOv  [&INDELCONDICIONALDELPASO]

,UEGODELAELIMINACIØN ELARREGLOQUEDACOMOSEMUESTRAENLAlGURAB B

-ODIlCACIØN%STAOPERACIØNCONSISTEENREEMPLAZARUNCOMPONENTEDELARREGLO CON OTRO VALOR 0ARA ELLO PRIMERO SE BUSCARÈ EL ELEMENTO EN EL ARREGLO 3I SE ENCUENTRA ANTESDEREALIZARELCAMBIOSEDEBEVERIlCARQUEELORDENDELARREGLO NOSEALTERE3IESTOLLEGARAASUCEDER ENTONCESESNECESARIOREALIZARDOSOPERA

 "33&(-04

17

&)'52!B %LIMINACIØNENARREGLOS ORDENADOS

CIONESPRIMEROSEDEBEELIMINARELELEMENTOQUESEQUIEREMODIlCARYLUEGO INSERTARENLAPOSICIØNCORRESPONDIENTEELNUEVOVALOR#OMOCONSECUENCIADE QUELASOPERACIONESQUESENECESITANPARAREALIZARUNAMODIlCACIØNYAHANSIDO PRESENTADAS SEDEJACOMOTAREALACONSTRUCCIØNDELALGORITMODEMODIlCACIØN ENARREGLOSORDENADOS (ASTAELMOMENTOSEHAANALIZADOCØMODECLARARARREGLOSYCØMOUSARLOS!HORASE PUEDEDARSOLUCIØNALPROBLEMADELEJEMPLOMEDIANTEESTETIPODEESTRUCTURADEDATOS !LGORITMO #ON?ARREGLOS

#ON?ARREGLOS#!, [%STEALGORITMORESUELVEELPROBLEMADELEJEMPLOALAPLICARARREGLOSUNIDIMENSIONALES #!,ESUNARREGLODEELEMENTOSDENÞMEROSREALES] [!# )Y#/.4SONVARIABLESDETIPOENTERO02/-ESUNAVARIABLEDETIPOREAL]  (ACER!#←  2EPETIRCON)DESDEHASTA ,EER#!,;)= (ACER!#←!# #!,;)=E)←)   [&INDELCICLODELPASO]  (ACER02/-←!#Y#/.4←  2EPETIRCON)DESDEHASTA  3I#!,;)=02/- ENTONCES (ACER#/.4←#/.4   [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  %SCRIBIR#/.4

²STAESUNASOLUCIØNMÈSElCIENTEQUELASQUESEPRESENTARONENLOSALGORITMOS Y3EREALIZAUNALECTURADELOSDATOSYADEMÈSSEDElNEUNAVARIABLEPARAALMACENAR LASCALIlCACIONES !LUTILIZARUNARREGLOPUEDEDISPONERSEDELOSDATOSTANTASVECESCOMOSEANECESARIO SINQUESEDEBAVOLVERALEERLOS YAQUEÏSTOSPERMANECENENMEMORIA!DEMÈSSEFACI LITAELPROCESAMIENTODELOSDATOS ALGENERALIZARCIERTASOPERACIONES ,OSARREGLOSPRESENTADOSHASTAELMOMENTOSEDENOMINANARREGLOSUNIDIMENSIO NALESOLINEALES DEBIDOAQUECUALQUIERELEMENTOSEREFERENCIASOLAMENTECONUNÓNDICE

18

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 3INEMBARGO ESIMPORTANTEDESTACARQUEPARALAMAYORÓADELOSLENGUAJESDEPROGRAMA CIØNSEPUEDENDElNIRARREGLOSMULTIDIMENSIONALESESDECIR ARREGLOSCONMÞLTIPLESÓN DICES%LNÞMERODEDIMENSIONESˆÓNDICESˆDEPENDETANTODELPROBLEMAQUESEQUIERA RESOLVERCOMODELLENGUAJEUTILIZADO 3EANALIZARÈNPRIMEROLOSARREGLOSBIDIMENSIONALES QUEREPRESENTANUNCASOESPE CIALDELOSMULTIDIMENSIONALES PORSERLOSMÈSAMPLIAMENTEUTILIZADOS

 !22%',/3")$)-%.3)/.!,%3 0ARAQUEELLECTORENTIENDAMEJORLAESTRUCTURADELOSARREGLOSBIDIMENSIONALES SEPRE SENTAELSIGUIENTEEJEMPLO

%JEMPLO

,ATABLACONTIENELOSCOSTOSDEPRODUCCIØNDECADADEPARTAMENTODEUNAFÈBRICA CORRESPONDIENTESALOSMESESDELA×OANTERIOR ,ATABLASEINTERPRETADELASIGUIENTEMANERADADOUNMES SECONOCENLOSCOSTOSDE PRODUCCIØNDECADAUNODELOSDEPARTAMENTOSDELAFÈBRICAYDADOUNDEPARTAMENTO SE CONOCENLOSCOSTOSDEPRODUCCIØNMENSUALES3ISEQUISIERAALMACENARESTAINFORMACIØN UTILIZANDOLOSARREGLOSUNIDIMENSIONALES SETENDRÓANDOSALTERNATIVAS  $ElNIRARREGLOSDETRESELEMENTOSCADAUNO%NESTECASO CADAARREGLOALMACE NARÈLAINFORMACIØNRELATIVAAUNMES

4!",!

-ESES$EPTOS

#OSTOSMENSUALESPOR DEPARTAMENTOS

&)'52! !LMACENAMIENTODELA INFORMACIØNPORMES

$ULCES

#ONSERVAS

"EBIDAS

%NERO







&EBRERO







-ARZO







!BRIL







-AYO







*UNIO







*ULIO







!GOSTO







3EPTIEMBRE







/CTUBRE







.OVIEMBRE







$ICIEMBRE







 "33&(-04#*%*.&/4*0/"-&4

19

&)'52! !LMACENAMIENTO DELAINFORMACIØN PORDEPARTAMENTO

 $ElNIRTRESARREGLOSDEELEMENTOSCADAUNO$EESTAFORMA CADAARREGLOALMA CENARÈLAINFORMACIØNRELATIVAAUNDEPARTAMENTOALOLARGODELA×O 3INEMBARGO NORESULTAMUYPRÈCTICOADOPTARALGUNADELASDOSALTERNATIVAS3ENE CESITAUNAESTRUCTURAQUEPERMITAMANEJARLOSDATOSCONSIDERANDOLOSMESESˆRENGLONES DELATABLAˆ YLOSDEPARTAMENTOSˆCOLUMNASDELATABLAˆESDECIR UNAESTRUCTURA QUETRATEALAINFORMACIØNCOMOUNTODO,AESTRUCTURAQUETIENEESTACARACTERÓSTICASE DENOMINAARREGLOBIDIMENSIONAL 5NARREGLOBIDIMENSIONALESUNACOLECCIØNHOMOGÏNEA lNITAYORDENADADEDA TOS ENLAQUESEHACEREFERENCIAACADACOMPONENTEDELARREGLOPORMEDIODEDOSÓNDI CES%LPRIMEROSEUTILIZAPARAINDICARELRENGLØN YELSEGUNDOPARASE×ALARLACOLUMNA 5NARREGLOBIDIMENSIONALTAMBIÏNSEPUEDEDElNIRCOMOUNARREGLODEARREGLOS%NLA lGURASEPRESENTAUNARREGLODETIPOBIDIMENSIONAL %LARREGLO!-. TIENE-RENGLONESY.COLUMNAS5NELEMENTO!;) *=SELO CALIZAENELRENGLØN) YENLACOLUMNA*)NTERNAMENTEENMEMORIASERESERVAN-. POSICIONESCONSECUTIVASPARAALMACENARTODOSLOSELEMENTOSDELARREGLO

 $ECLARACIØNDEARREGLOSBIDIMENSIONALES ,OSARREGLOSBIDIMENSIONALESSEDECLARANCUANDOSEESPECIlCANELNÞMERODERENGLONES YELNÞMERODECOLUMNAS JUNTOCONELTIPODEDATODELOSCOMPONENTES ID?ARREGLO!22%',/;LÓMINFRLÓMSUPR LÓMINFCLÓMSUPC=$%TIPO #ON LÓMINFR Y LÓMSUPR SE DECLARA EL TIPO DE DATO DEL ÓNDICE DE LOS RENGLONES Y CUÈNTOSRENGLONESTENDRÈELARREGLO!SIMISMO CONLÓMINFCYLÓMSUPCSEDECLARAELTIPO

20

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52! 2EPRESENTACIØNDEUN ARREGLOBIDIMENSIONAL

DEDATODELÓNDICEDELASCOLUMNASYCUÈNTASCOLUMNASTENDRÈELARREGLO#ONTIPOSE DECLARAELTIPODEDATOSDETODOSLOSCOMPONENTESDELARREGLO %LNÞMEROTOTALDECOMPONENTES.4# DEUNARREGLOBIDIMENSIONALESTÈDETERMI NADOPORLAEXPRESIØN

.4#LÓMSUPRLÓMINFR LÓMSUPCLÓMINFC

▼ &ØRMULA

!LIGUALQUEENELCASODELOSARREGLOSUNIDIMENSIONALES LOSÓNDICESPUEDENSER CUALQUIERTIPODEDATOORDINALESCALAR ENTERO CARÈCTER MIENTRASQUELOSCOMPONENTES PUEDENSERDECUALQUIERTIPOREALES ENTEROS CADENASDECARACTERES ETC !CONTINUA CIØNSEANALIZANALGUNOSEJEMPLOSDEARREGLOSBIDIMENSIONALES

%JEMPLO

&)'52!

3EA-!42):UNARREGLOBIDIMENSIONALDENÞMEROSREALESCONÓNDICESENTEROS3UREPRE SENTACIØNSEMUESTRAENLAlGURA

 "33&(-04#*%*.&/4*0/"-&4

21

-!42):!22%',/; =$%REALES ◗ ◗

.4#    #ADACOMPONENTEDE-!42):SERÈUNNÞMEROREAL0ARAHACERREFERENCIAACADAUNO DEELLOSSEUSARÈNDOSÓNDICESYELNOMBREDELAVARIABLETIPOARREGLO-!42):;I J= $ONDE≤I≤

≤J≤

%JEMPLO

3EA#/34/3UNARREGLOBIDIMENSIONALDENÞMEROSREALESCONÓNDICESDETIPOESCALAR 3UREPRESENTACIØNSEMUESTRAENLAlGURA MESESENE FEB MAR ABR MAY JUN JUL AGO SET OCT NOV DIC DEPARTAMENTOSDULCES CONSERVAS BEBIDAS #/34/3!22%',/;MESES DEPARTAMENTOS=$%REALES ◗

.4#ORDDIC ORDENE  ORDBEBIDAS ORDDULCES 

     



#ADACOMPONENTEDE#/34/3SERÈUNREAL0ARAHACERREFERENCIAACADAUNODE ELLOSUSAREMOSDOSÓNDICESYELNOMBREDELAVARIABLETIPOARREGLO#/34/3;I J= $ONDEENE≤I≤DIC

DULCES≤J≤BEBIDAS

%JEMPLO

3EA-!4UNARREGLOBIDIMENSIONALDECADENASDECARACTERESCONÓNDICESPARALOSREN GLONESDETIPOCARÈCTERYPARALASCOLUMNASDETIPOENTERO3UREPRESENTACIØNSEMUESTRA ENLAlGURA -!4!22%',/;@A@Z =$%CADENA DE CARACTERES

&)'52!

22

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52!



.4#ORD@Z ORD@A   

      



#ADACOMPONENTEDE-!4SERÈUNVALORDETIPOCADENADECARACTERES0ARAHACER REFERENCIAACADAUNODEELLOS SEUSARÈNDOSÓNDICESYELNOMBREDELAVARIABLETIPO ARREGLO-!4;I J= $ONDE@A≤I≤@Z

≤J≤

%JEMPLO

3EA,%42!3UNARREGLOBIDIMENSIONALDECARACTERESCONÓNDICESENTEROS3UREPRESEN TACIØNSEMUESTRAENLAlGURA ,%42!3!22%',/; =$%CARACTERES ◗ ◗

.4#n  n    #ADACOMPONENTEDE ,%42!3SERÈUN VALOR TIPOCARÈCTER 0ARAHACERREFERENCIA ACADAUNODEELLOS SEUSARÈNDOSÓNDICESYELNOMBREDELAVARIABLETIPOARREGLO ,%42!3;I J= $ONDE≤I≤

≤J≤

&)'52!

 "33&(-04#*%*.&/4*0/"-&4

23

 /PERACIONESCONARREGLOSBIDIMENSIONALES ,ASOPERACIONESQUESEPUEDENREALIZARCONARREGLOSBIDIMENSIONALESSON ◗ ◗ ◗ ◗ ◗

,ECTURA%SCRITURA !SIGNACIØN !CTUALIZACIØN)NSERCIØN

%LIMINACIØN

-ODIlCACIØN /RDENACIØN "ÞSQUEDA

,OSARREGLOSBIDIMENSIONALESSECONSIDERANUNAGENERALIZACIØNDELOSUNIDIMEN SIONALES POR LO QUE SE PRESENTARÈ UNA REVISIØN RÈPIDA DE ALGUNAS DE LAS OPERACIONES MENCIONADAS0ARAILUSTRARLASSEUTILIZARÈNLOSEJEMPLOSANTERIORES

,ECTURA #UANDOSEPRESENTØLAOPERACIØNDELECTURAENARREGLOSUNIDIMENSIONALES SEMENCIONØ QUECONLAAYUDADEUNCICLOSEIBANLEYENDOYASIGNANDOVALORESACADAUNODELOSCOM PONENTES,OMISMOSUCEDECONLOSARREGLOSBIDIMENSIONALES3INEMBARGO COMOSUS ELEMENTOSDEBENINDICARSEPORMEDIODEDOSÓNDICES NORMALMENTESEUSANDOSCICLOS PARALOGRARLALECTURADEELEMENTOSCONSECUTIVOS 3UPONGAMOS POREJEMPLO QUESEDESEALEERTODOSLOSELEMENTOSDELARREGLOBIDI MENSIONAL-!42):,OSPASOSASEGUIRSON 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA ,EER-!42):;) *= !LVARIARLOSÓNDICESDE)Y* CADAELEMENTODE-!42):QUESELEESEASIGNAAL LUGARQUELECORRESPONDEENELARREGLO SEGÞNLAPOSICIØNDELOSÓNDICES)Y* 0ARA)Y* SELEEELELEMENTODELRENGLØNYCOLUMNA )Y* SELEEELELEMENTODELRENGLØNYCOLUMNA  )Y* SELEEELELEMENTODELRENGLØNYCOLUMNA

%SCRITURA ,AESCRITURADEUNARREGLOBIDIMENSIONALTAMBIÏNSELLEVAACABOELEMENTOTRASELEMEN TO3UPONGAMOSQUESEQUIERAESCRIBIRTODOSLOSCOMPONENTESDELARREGLO-!42):,OS PASOSASEGUIRSON 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA %SCRIBIR-!42):;) *= !LVARIARLOSVALORESDE)Y*SEESCRIBEELELEMENTODE-!42):CORRESPONDIENTEA LAPOSICIØNINDICADAJUSTAMENTEPORLOSÓNDICES)Y*

24

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 0ARA)Y* SEESCRIBEELELEMENTODELRENGLØNYCOLUMNA )Y* SEESCRIBEELELEMENTODELRENGLØNYCOLUMNA  )Y* SEESCRIBEELELEMENTODELRENGLØNYCOLUMNA

!SIGNACIØN ,AASIGNACIØNDEVALORESAUNARREGLOBIDIMENSIONALSEREALIZADEDIFERENTESFORMAS,A FORMADEPENDEDELNÞMERODECOMPONENTESINVOLUCRADOS/BSERVEMOSACONTINUACIØN DOSALTERNATIVASDIFERENTES  3EASIGNANVALORESATODOSLOSELEMENTOSDELARREGLOENESTECASOSENECESITARÈNDOS CICLOSPARARECORRERTODOELARREGLO 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA -!42):;) *=← !LVARIARLOSVALORESDE)Y*SEASIGNAELALELEMENTODE-!42):CORRESPONDIENTE ALAPOSICIØNINDICADAPORLOSÓNDICES)Y* 0ARA)Y* SEASIGNAELVALORALELEMENTODELRENGLØNYCOLUMNA

)Y* SEASIGNAELVALORALELEMENTODELRENGLØNYCOLUMNA



)Y* SEASIGNAELVALORALELEMENTODELRENGLØNYCOLUMNA %NLAlGURASEPRESENTACØMOQUEDAELARREGLOBIDIMENSIONALCUANDOSEASIGNA ELVALORACADAUNADELASCASILLAS  3EASIGNAUNVALORAUNELEMENTOENPARTICULARDELARREGLOENESTECASOLAASIGNA CIØNESDIRECTAYSEDEBEINDICARELRENGLØNYLACOLUMNADELCOMPONENTEINVOLUCRA DO0OREJEMPLO PARAASIGNARELVALORALELEMENTODELRENGLØNYCOLUMNASE PROCEDEDELASIGUIENTEMANERA

&)'52! !SIGNACIØNDEARREGLOS

 "33&(-04%&.Ç4%&%04%*.&/4*0/&4

25

&)'52! !SIGNACIØNDEARREGLOS

-!42):; =← %LARREGLOSEMUESTRAENLAlGURA %SIMPORTANTEACLARARQUELASOPERACIONESDELECTURA ESCRITURAYASIGNACIØNATODOS LOSELEMENTOSDEUNARREGLOBIDIMENSIONALSEPUEDENHACERTANTOPORRENGLONESCOMO PORCOLUMNAS

 !22%',/3$%-­3$%$/3$)-%.3)/.%3 5NARREGLOMULTIDIMENSIONALˆ.DIMENSIONESˆSEDElNECOMOUNACOLECCIØNlNITA HOMOGÏNEAYORDENADADE+§+§§+.ELEMENTOS0ARAHACERREFERENCIAACADA COMPONENTEDEUNARREGLODE.DIMENSIONES SEUSARÈN.ÓNDICES UNOPARACADADIMEN SIØN %LARREGLO!DE.DIMENSIONESSEDECLARADELASIGUIENTEMANERA !!22%',/;,),3 ,),3  ,).,3.=$%TIPO %LTOTALDECOMPONENTESDE!SERÈ

.4#,3n,)  ,3,)   ,3. ,). 

▼ &ØRMULA

0OREJEMPLO ELARREGLOTRIDIMENSIONAL!;L  =TENDRÈ         ELEMENTOS 'RÈlCAMENTEELARREGLO!SEPUEDEREPRESENTARCOMOSEMUESTRAENLASlGURAS Y !CONTINUACIØNSEPRESENTAUNEJEMPLODEUNARREGLOTRIDIMENSIONAL

26

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52! 2EPRESENTACIØNDEARREGLOS DEMÉSDEDOS DIMENSIONES

%JEMPLO

5NAEMPRESALLEVAUNREGISTRODELTOTALPRODUCIDOMENSUALMENTEPORCADADEPARTAMEN TO,AEMPRESACONSTADECINCODEPARTAMENTOSYLAINFORMACIØNSEHAREGISTRADOALOLAR GODELOSÞLTIMOSCUATROA×OS0ARAALMACENARLOSDATOSDELAPRODUCCIØNDELAEMPRESA SEREQUIEREENTONCESDEUNARREGLODETRESDIMENSIONES§§ELEMENTOS COMOELDELAlGURA !!22%',/;  =$%REALES 3UPONGAMOSQUELAEMPRESANECESITAOBTENERLASIGUIENTEINFORMACIØN A %L TOTAL MENSUAL DE CADA DEPARTAMENTO DURANTE EL SEGUNDO A×O 0ARA OBTENER LA INFORMACIØNSOLICITADASEDEBENREALIZARLOSSIGUIENTESPASOS 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA %SCRIBIR!;) * = /BSERVE QUE PARA ESTE CASO SE ASIGNA LA CONSTANTE  AL TERCER ÓNDICE ˆEL DE LOS A×OSˆYSEHACEVARIARALOSOTROSDOSÓNDICES$EESTAMANERASEESCRIBIRÈNLASPRODUC CIONESMENSUALES B %LTOTALDELAPRODUCCIØNDURANTEELPRIMERA×O0ARAOBTENERLAINFORMACIØNSOLICI TADASEDEBENREALIZARLOSSIGUIENTESPASOS

&)'52! 2EPRESENTACIØNDEARREGLOS DEMÉSDEDOS DIMENSIONES

 -"$-"4&,, "

27

&)'52!

(ACER35-!← 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA (ACER35-!←35-! !;) * = %SCRIBIR35-! /BSERVEQUEESTECASOESSIMILARALANTERIOR,ADIFERENCIARADICAENQUELASCANTIDA DESMENSUALESNOSEESCRIBIRÈN SINOQUESEACUMULARÈNOBTENIENDOELTOTALANUAL C %LTOTALDELAPRODUCCIØNDELDEPARTAMENTOALOLARGODELÞLTIMOA×O0ARAOBTENER LAINFORMACIØNSOLICITADASERÈNECESARIOEJECUTARLOSSIGUIENTESPASOS (ACER35-!← 2EPETIRCON*DESDEHASTA (ACER35-!←35-! !; * = %SCRIBIR35-! .OTEQUEENESTECASOSETIENENDOSÓNDICESCONSTANTES ELDEDEPARTAMENTOSYELDE A×OS YSEHACEVARIARSOLAMENTEELÓNDICEDEMESES#ONCLUIDOELCICLOSEESCRIBIRÈEL TOTALPRODUCIDOPORELDEPARTAMENTODURANTEELCUARTOA×O

 ,!#,!3%!22%',/ 0ARAENTENDERLACLASEARREGLO SEREQUIEREPRIMEROCONOCERALGUNOSCONCEPTOSBÈSICOS RELACIONADOSCONELPARADIGMADELAPROGRAMACIØNORIENTADAAOBJETOS0//  5NACLASEDElNEAUNOBJETOPORMEDIODELADESCRIPCIØNDESUSDATOS CONOCIDOS COMO ATRIBUTOS Y DE SU COMPORTAMIENTO REPRESENTADO POR MÏTODOS 3E DICE QUE LOS ATRIBUTOSYLOSMÏTODOSSONMIEMBROSDELACLASE 5NACLASEPUEDEREPRESENTARALOSALUMNOSDEUNAESCUELA%NESTECASOLOSDATOS SON LOS ATRIBUTOS QUE CARACTERIZAN A UN ALUMNO POR EJEMPLO NOMBRE FECHA DE NACI MIENTO DIRECCIØN TELÏFONO ETCÏTERA MIENTRASQUEELCOMPORTAMIENTOHACEREFERENCIAA LASOPERACIONESQUEPUEDENREALIZARSESOBREESOSDATOS POREJEMPLO CAMBIARDIRECCIØN OTELÏFONODELALUMNO ,APROGRAMACIØNORIENTADAAOBJETOSTIENECUATROPROPIEDADES  !BSTRACCIØN  %NCAPSULAMIENTOUOCULTAMIENTODELAINFORMACIØN

28

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504  (ERENCIA  0OLIMORlSMO ,AABSTRACCIØNPERMITECONCENTRARSEENLOSDATOSYOPERACIONESQUEDElNENAUN CONJUNTODEOBJETOS IGNORANDOLOSELEMENTOSQUENOSONRELEVANTES,ASEGUNDAPRO PIEDAD ENCAPSULAMIENTO IMPLICA QUE TANTO LOS ATRIBUTOS COMO LOS MÏTODOS FORMAN UNTODOˆLACLASEˆYPUEDENOCULTARSEDELOSCLIENTESDELACLASE ALCONTROLARDEESTA MANERAELACCESOQUESETENGAASUSINTEGRANTES0ORSUPARTE LAHERENCIAREPRESENTALA PROPIEDADQUEPERMITECOMPARTIRATRIBUTOSYMÏTODOSENTRECLASES0ORÞLTIMO ELPOLI MORlSMOOFRECELAFACILIDADDEQUECIERTOSMÏTODOSPUEDANADOPTARDISTINTASFORMAS ,ACLASE!RREGLOTENDRÈATRIBUTOSYMÏTODOS,OSATRIBUTOSCONSTITUIRÈNLACOLECCIØN DEELEMENTOSYELTAMA×O,OSMÏTODOSSERÈNTODASLASOPERACIONESANALIZADASENLAS SECCIONESPREVIASLECTURA INSERCIØN ELIMINACIØN ETCÏTERA'RÈlCAMENTELACLASE!RRE GLOPUEDEVERSECOMOSEMUESTRAENLAlGURA 5NOBJETOESUNAINSTANCIADEUNACLASE%SDECIR ESTAÞLTIMAREPRESENTAAUNCON JUNTODEOBJETOS AUNCONCEPTOGENERAL POREJEMPLO LOSALUMNOSDEUNAESCUELAOLOS ARREGLOS MIENTRASQUELOSPRIMEROSSONOCURRENCIASDELACLASE#ONSIDERANDOLACLASE !RREGLO UNEJEMPLODEOBJETOSERÈELARREGLODECALIlCACIONESDEUNGRUPODEALUMNOS %NLOSLENGUAJESDEPROGRAMACIØNORIENTADAAOBJETOSMÈSCONOCIDOSSEUSALANO TACIØNDEPUNTOSPARATENERACCESOALOSMIEMBROSNOPRIVADOSDEUNOBJETO OBJETOMIEMBRO $ENTRODEUNMÏTODODEUNACLASE LAREFERENCIAACUALQUIERADESUSOTROSMIEMBROS NOREQUIEREELUSODEESTANOTACIØN!SUMIENDOQUELAVARIABLE#!,)&ESUNOBJETODE LACLASE!RREGLO SEPUEDENTENERLASSIGUIENTESINSTRUCCIONES #!,)&4AMA×O#!,)&4AMA×O #!,)&$ATOS;= 0ARAELCASODEQUELASINSTRUCCIONESFUERANPARTEDEUNMÏTODO SEPUEDEOMITIREL NOMBREDELOBJETOYELPUNTO YUSARDIRECTAMENTEELATRIBUTO $ATOS;=

&)'52! #LASE!RREGLO

 3&(*45304

29

 2%')342/3 $EACUERDOCONLOESTUDIADOENLASSECCIONESPREVIAS LOSARREGLOSSONESTRUCTURASDE DATOSMUYÞTILESPARAALMACENARUNACOLECCIØNDEDATOS TODOSDELMISMOTIPO3INEM BARGO ENLAPRÈCTICA AVECESSENECESITANESTRUCTURASQUEPERMITANALMACENARDATOSDE DISTINTOSTIPOSQUESEANMANIPULADOSCOMOUNÞNICODATO0ARAILUSTRARESTEPROBLEMASE INCLUYEELSIGUIENTEEJEMPLO

%JEMPLO

5NACOMPA×ÓATIENEPORCADAEMPLEADOLASIGUIENTEINFORMACIØN ◗ ◗ ◗ ◗ ◗

.OMBRE $IRECCIØN %DAD 3EXO !NTIGàEDAD

CADENADECARACTERES CADENADECARACTERES ENTERO CARÈCTER ENTERO

3ISEQUISIERAALMACENARESTOSDATOSNOSERÓAPOSIBLEUSARUNARREGLO YAQUESUS COMPONENTES DEBEN SER TODOS DEL MISMO TIPO ,A ESTRUCTURA QUE PUEDE GUARDAR ESTA INFORMACIØNDEMANERAEFECTIVASECONOCECOMOREGISTROOESTRUCTURA 5NREGISTROSEDElNECOMOUNACOLECCIØNlNITAYHETEROGÏNEADEELEMENTOS4AM BIÏNREPRESENTAUNTIPODEDATOESTRUCTURADO ENELQUECADAUNODESUSCOMPONENTESSE DENOMINACAMPO,OSCAMPOSDEUNREGISTROPUEDENSERTODOSDEDIFERENTESTIPOSDE DATOS0ORTANTO TAMBIÏNPODRÈNSERREGISTROSOARREGLOS#ADACAMPOSEIDENTIlCACON UNNOMBREÞNICO ELIDENTIlCADORDECAMPO/TRADIFERENCIAIMPORTANTECONLOSARREGLOS ESQUENOESNECESARIOESTABLECERUNORDENENTRELOSCAMPOS

 $ECLARACIØNDEREGISTROS #OMONOESLAINTENCIØNDELOSAUTORESSEGUIRLASINTAXISDEALGÞNLENGUAJEDEPROGRAMA CIØNENPARTICULAR UNREGISTROSEDECLARADELASIGUIENTEFORMA IDENT?REGISTRO2%')342/ ID?CAMPOLTIPOL ID?CAMPOTIPO  ID?CAMPONTIPON [&INDELADECLARACIØNDELREGISTRO] $ONDEIDENT?REGISTROESELNOMBREDELDATOTIPOREGISTRO

ID?CAMPOIESELNOMBREDELCAMPOI

ID?CAMPOI≠ID?CAMPOJ∀I J  NEI≠J

TIPOIESELTIPODELCAMPOI ,OSQUESIGUENSONEJEMPLOSDEDECLARACIONESDEREGISTROS CONSUCORRESPONDIENTE REPRESENTACIØNGRÈlCA

30

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

%JEMPLO

3EA &%#(! UN REGISTRO FORMADO POR TRES CAMPOS NUMÏRICOS 3U REPRESENTACIØN SE MUESTRAENLAlGURA &%#(!2%')342/ DÓA MES A×O [&INDELADECLARACIØNDELREGISTRO&%#(!]

%JEMPLO

3EA$/-)#),)/UNREGISTROFORMADOPORCUATROCAMPOS UNODEELLOSESNUMÏRICOYLOS TRESRESTANTESDELTIPOCADENADECARACTERES3UREPRESENTACIØNSEMUESTRAENLAlGURA $/-)#),)/2%')342/ CALLECADENA?DE?CARACTERES NÞMEROENTERO CIUDADCADENA?DE?CARACTERES PAÓSCADENA?DE?CARACTERES [&INDELADECLARACIØNDELREGISTRO$/-)#),)/]

%JEMPLO

3EA#,)%.4%UNREGISTROFORMADOPORCUATROCAMPOS DOSDELTIPOCADENADECARAC TERES UNODELTIPOREALYELOTRODELTIPOBOOLEANO3UREPRESENTACIØNSEMUESTRAENLA lGURA #,)%.4%2%')342/ NOMBRECADENA?DE?CARACTERES TELÏFONOCADENA?DE?CARACTERES SALDOREAL MOROSOBOOLEANO [&INDELADECLARACIØNDELREGISTRO#,)%.4%]

 !CCESOALOSCAMPOSDEUNREGISTRO #OMOUNREGISTROESUNTIPODEDATOESTRUCTURADO NOSEPUEDETENERACCESOAÏLDIREC TAMENTECOMOUNÞNICODATO SINOQUESEDEBEESPECIlCARELELEMENTOˆCAMPOˆDEL

&)'52!

 3&(*45304

31

&)'52!

REGISTROQUENOSINTERESA0ARAELLO ENLAMAYORÓADELOSLENGUAJESSESIGUELASIGUIENTE SINTAXIS VARIABLE?REGISTROID?CAMPO $ONDE VARIABLE?REGISTROESUNAVARIABLEDETIPOREGISTRO

ID?CAMPOESELIDENTIlCADORDELCAMPODESEADO %SDECIR SEUSARÈNDOSIDENTIlCADORESPARAHACERREFERENCIAAUNELEMENTOELNOM BREDELAVARIABLETIPOREGISTROYELNOMBREDELCAMPO SEPARADOSENTRESÓPORUNPUNTO $EACUERDOCONLOSEJEMPLOSDEREGISTROS Y SEPRESENTANACONTINUA CIØNDIFERENTESCASOSQUEILUSTRANELACCESOALOSCAMPOSDEUNREGISTRO A 0ARALEERLOSTRESCAMPOSDEUNAVARIABLE&DETIPO&%#(!

,EER&DÓA &MES &A×O B 0ARAESCRIBIRLOSCUATROCAMPOSDEUNAVARIABLE$DETIPO$/-)#),)/

%SCRIBIR$CALLE $NÞMERO $CIUDAD $PAÓS C 0ARAASIGNARVALORESAALGUNOSDELOSCAMPOSDEUNAVARIABLE#DETIPO#,)%.4% #SALDO←#SALDO CANT #MOROSO←6%2$!$%2/ #NOMBRE←h*UAN0ÏREZv

&)'52!

32

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 %NGENERAL COMOSEMENCIONØANTERIORMENTE ELORDENENELQUESEMANEJANLOS CAMPOSNOESIMPORTANTE%SDECIR SEPODRÓANHABERLEÓDOLOSCAMPOSDELAVARIABLE &DELASIGUIENTEMANERA ,EER&A×O &DÓA &MES 3ØLOSEDEBETENERENCUENTAQUELOSDATOSPROPORCIONADOSPORELUSUARIOOASIGNA DOSENUNALGORITMOSECORRESPONDANENTIPOCONLOSCAMPOS

 $IFERENCIASENTREREGISTROSYARREGLOS ,ASDOSDIFERENCIASSUSTANCIALESEXISTENTESENTREREGISTROSYARREGLOSSON  5N ARREGLO PUEDE ALMACENAR . ELEMENTOS DEL MISMO TIPO ˆESTRUCTURA DE DATOS HOMOGÏNEAˆ MIENTRASQUEUNREGISTROPUEDEALMACENAR.ELEMENTOSDEDIFERENTES TIPOSDEDATOSˆESTRUCTURADEDATOSHETEROGÏNEAˆ  !LOSCOMPONENTESDEUNARREGLOSETIENEACCESOPORMEDIODEÓNDICESQUEINDICAN LAPOSICIØNDELELEMENTOCORRESPONDIENTEENELARREGLO MIENTRASQUEALOSCOMPO NENTESDEUNREGISTRO LOSCAMPOS SETIENEACCESOPORMEDIODESUNOMBRE QUEES ÞNICO

 #OMBINACIONESENTREARREGLOSYREGISTROS ,OSREGISTROSTIENENVARIOSCAMPOS#ADAUNODEELLOSPUEDESERDECUALQUIERTIPODE DATOS SIMPLESOESTRUCTURADOS3INEMBARGO LOSCOMPONENTESDELNIVELMÈSBAJODEUN TIPOESTRUCTURADOSIEMPREDEBENSERTIPOSSIMPLESDEDATOS $EACUERDOCONESTACONDICIØN SEINlEREQUEUNCAMPODEUNREGISTROPUEDESER OTROREGISTROOBIENUNARREGLO0OROTRAPARTE LOSCOMPONENTESDEUNARREGLOTAMBIÏN PUEDEN SER REGISTROS %STOS CASOS ENUNCIADOS ADEMÈS SE PUEDEN PRESENTAR EN FORMA ANIDADA

 3&(*45304

33

!RREGLOSDEREGISTROS %NESTECASO CADAELEMENTODELARREGLOESUNREGISTRO4ODOSLOSCOMPONENTESDELARRE GLOTIENENQUESERDELMISMOTIPODEREGISTRO YAQUEESUNAESTRUCTURADEDATOSHOMO GÏNEA!CONTINUACIØNPRESENTAMOSUNEJEMPLO

%JEMPLO

5NAEMPRESAREGISTRAPARACADAUNODESUSCLIENTESLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗

.OMBRE 4ELÏFONO 3ALDO -OROSO

CADENADECARACTERES CADENADECARACTERES REAL BOOLEANO

3ILAEMPRESATIENE.CLIENTESNECESITARÈUNARREGLODE.ELEMENTOS ENELCUALCADA UNODESUSCOMPONENTESESUNREGISTROCOMOELDESCRITOENELEJEMPLO,AlGURA MUESTRALAESTRUCTURADEDATOSCORRECTAPARARESOLVERESTEPROBLEMA !!22%',/;=$%#,)%.4% #ADAELEMENTODE!SERÈUNDATOTIPO#,)%.4%0ORTANTO SISEQUIERE POREJEM PLO LEERELARREGLO! DEBELEERSEPORCADACOMPONENTECADAUNODELOSCAMPOSQUE FORMANALREGISTRO 2EPETIRCON)DESDEHASTA. ,EER!;)=NOMBRE ,EER!;)=TELÏFONO ,EER!;)=SALDO ,EER!;)=MOROSO #ON !;)= SE HACE REFERENCIA AL ELEMENTO ) DEL ARREGLO ! QUE ES UN REGISTRO CON ID?CAMPOSEESPECIlCACUÈLDELOSCAMPOSDELREGISTROSELEERÈ$EFORMASIMILARSE PROCEDEPARAESCRITURA ASIGNACIØN ETCÏTERA

&)'52! !RREGLODEREGISTROS

34

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

2EGISTROSANIDADOS %NLOSREGISTROSANIDADOS ALMENOSUNCAMPODELREGISTROESDELTIPOREGISTRO/BSERVE MOSACONTINUACIØNELSIGUIENTEEJEMPLO

%JEMPLO

5NAEMPRESAREGISTRAPARACADAUNODESUSACREEDORESLOSSIGUIENTESDATOS ◗ ◗

.OMBRECADENADECARACTERES $IRECCIØN s #ALLECADENADECARACTERES s .ÞMEROENTERO s #IUDADCADENADECARACTERES s 0AÓSCADENADECARACTERES



3ALDOREAL

0ARADElNIRELTIPODEDATODELCAMPODIRECCIØN ESNECESARIODECLARARPREVIAMENTE UNREGISTROFORMADOPORLOSCUATROCOMPONENTESCALLE NÞMERO CIUDADYPAÓSQUESE ESPECIlCAN3EUSARÈELREGISTRODELEJEMPLO PRESENTADOANTERIORMENTE PARARESOL VERESTECASO !#2%%$/22%')342/ NOMBRECADENA?DE?CARACTERES DIRECCIØN$/-)#),)/ SALDOREAL [&INDELADECLARACIØNDELREGISTRO!#2%%$/2] ,AlGURAMUESTRALAESTRUCTURADEDATOSREQUERIDA %NESTECASO ELREGISTROTIENEUNCAMPOˆDIRECCIØNˆQUEESDELTIPODEDATOS$/ -)#),)/ ELCUALESUNREGISTRODECUATROCAMPOS0ARATENERACCESOALOSCAMPOSQUE A SUVEZ SONREGISTROS ENLAMAYORÓADELOSLENGUAJESSESIGUELASIGUIENTESINTAXIS VARIABLE?REGISTROID?CAMPOID?CAMPON

&)'52! 2EGISTROSANIDADOS

$ONDE VARIABLE?REGISTROESUNAVARIABLEDETIPOREGISTRO

ID?CAMPOESELIDENTIlCADORDEUNCAMPODELREGISTROELCAMPOESDE TIPOREGISTRO

ID?CAMPONREPRESENTAELIDENTIlCADORDEUNCAMPO

 3&(*45304

35

0ARATENERACCESOALOSCAMPOSDELAVARIABLE!#DETIPO!#2%%$/2 LASECUENCIA ASEGUIRESLASIGUIENTE !#NOMBRE !#DIRECCIØNCALLE !#DIRECCIØNNÞMERO !#DIRECCIØNCIUDAD !#DIRECCIØNPAÓS !#SALDO

2EGISTROSCONARREGLOS ,OSREGISTROSCONARREGLOSTIENEN PORLOMENOS UNCAMPOQUEESDETIPOARREGLO!NALI CECUIDADOSAMENTEELSIGUIENTEEJEMPLO

%JEMPLO

5NAEMPRESAREGISTRAPARACADAUNODESUSCLIENTESLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗

.OMBRE 4ELÏFONO 3ALDOMENSUALDELÞLTIMOA×O -OROSO

CADENADECARACTERES CADENADECARACTERES ARREGLODEREALES BOOLEANO

,ADElNICIØNDELREGISTROCORRESPONDIENTEES #,)%.4%2%')342/ NOMBRECADENA?DE?CARACTERES TELÏFONOCADENA?DE?CARACTERES SALDOS!22%',/;=$%REALES MOROSOBOOLEANO [&INDELADECLARACIØNDELREGISTRO#,)%.4%] ,AlGURAMUESTRALAESTRUCTURAREQUERIDA 0ARAESTECASOELREGISTROTIENEUNCAMPO SALDOS QUEESUNARREGLOUNIDIMENSIONAL DEELEMENTOSREALES#ONELPROPØSITODEHACERREFERENCIAAESECAMPO SEPROCEDEDE LASIGUIENTEMANERA &)'52! 2EGISTROSCONARREGLOS

36

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 VARIABLE?REGISTROID?CAMPO;ÓNDICE= 0ARATENERACCESOALOSCAMPOSDELAVARIABLE#,)DETIPO#,)%.4%SEDEBESEGUIR LASECUENCIA #,)NOMBRE #,)TELÏFONO 2EPETIRCON)DESDEHASTA #,)SALDOS;)= #,)MOROSO ,AS TRES POSIBLES COMBINACIONES ANALIZADAS AQUÓ ARREGLOS DE REGISTROS REGISTROS ANIDADOSYREGISTROSCONARREGLOS PUEDENPRESENTARSEDEMANERASIMULTÈNEAYENDIFE RENTESNIVELESENUNAMISMAESTRUCTURADEDATOS%NESTOSCASOS SERECOMIENDAQUELA ESTRUCTURARESULTANTESEACOMPRENSIBLEYQUENOSECOMPLIQUEDEMASIADOELACCESOALOS DATOSINDIVIDUALES

 !RREGLOSPARALELOS 0ORARREGLOSPARALELOSSEENTIENDEDOSOMÈSARREGLOSCUYOSELEMENTOSSECORRESPON DEN%SDECIR LOSCOMPONENTESQUEOCUPANUNAMISMAPOSICIØNENDIFERENTESARREGLOS TIENENUNAESTRECHARELACIØNSEMÈNTICA0ARAILUSTRARESTAIDEA ACONTINUACIØNSEPRESEN TARÈUNCASOPRÈCTICOYSUSOLUCIØN MEDIANTEARREGLOSPARALELOS 3UPONGAMOSQUESECONOCEELNOMBREDELALUMNOYLACALIlCACIØNOBTENIDAPOR ÏSTEENUNEXAMENQUEFUEAPLICADOAUNGRUPODEALUMNOS3ISEQUISIERAUSARESTOS DATOSPARAGENERARINFORMACIØN POREJEMPLO PROMEDIODELGRUPO CALIlCACIØNMÈSALTA NOMBREDELOSALUMNOSCONCALIlCACIØNINFERIORALPROMEDIO ETC SETENDRÓANDOSALTER NATIVASPRINCIPALESENELDISE×ODELASOLUCIØN

5SODEARREGLOSPARALELOS 3ISEUTILIZANARREGLOSPARALELOSPARARESOLVERESTEPROBLEMA SEREQUIEREDEDOSARREGLOS UNIDIMENSIONALESENUNOSEALMACENARÈELNOMBREDELOSALUMNOS YENOTROLACALIlCA CIØNOBTENIDAPORÏSTEENELEXAMEN%SDECIR ACADAELEMENTODELARREGLO./-"2%3 LE CORRESPONDERÈ ENTONCES UNO DEL ARREGLO #!,)&)#!#)».!SÓ SI SE QUIERE HACER REFERENCIAALACALIlCACIØNDE./-"2%3;)= SEUTILIZARÈ#!,)&)#!#)».;)=/BSERVE LAlGURA ,ØPEZ -ARTÓNEZ 4ORRES  6IASA

OBTUVOUNACALIlCACIØNDE OBTUVOUNACALIlCACIØNDE OBTUVOUNACALIlCACIØNDE  OBTUVOUNACALIlCACIØNDE

!CONTINUACIØNSEINCLUYEUNALGORITMOQUECALCULAELPROMEDIODELGRUPOEIMPRI MEELNOMBREDELOSALUMNOSQUETENGANCALIlCACIØNMENORALPROMEDIO

 3&(*45304

37

&)'52! !RREGLOSPARALELOS

!LGORITMO !RREGLOS?PARALELOS !RREGLOS?PARALELOS [%STE ALGORITMO CALCULA EL PROMEDIO DEL GRUPO E IMPRIME EL NOMBRE DE LOS ALUMNOS CON CALIlCACIØNMENORALPROMEDIO] [./-"2%Y#!,)&)#!#)».SONVARIABLESDETIPOARREGLO)ESUNAVARIABLEDETIPOENTERO 02/-Y!#SONVARIABLESDETIPOREAL]  (ACER!#←  2EPETIRCON)DESDEHASTA ,EER./-"2%;)=Y#!,)&)#!#)».;)= (ACER!#←!# #!,)&)#!#)».;)=  [&INDELCICLODELPASO] [3ECALCULAELPROMEDIODELGRUPO]  (ACER02/-←!#  %SCRIBIRh%LPROMEDIODELGRUPOESv02/["ÞSQUEDAEIMPRESIØNDELOSNOMBRESDELOSALUMNOSCONCALIlCACIØNINFERIORAL PROMEDIO]  2EPETIRCON)DESDEHASTA  3I#!,)&)#!#)».;)=02/- ENTONCES

%SCRIBIR./-"2%;)=  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

5SODEARREGLOSDEREGISTROS /TRASOLUCIØNALPROBLEMASERÓAUTILIZARUNARREGLODEREGISTROS%NESTECASO CADACOM PONENTEDELARREGLO!,5-./ESUNREGISTROQUETIENEDOSCAMPOS./-"2%Y#! ,)&/BSERVELAlGURA

38

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

&)'52!

!SÓ

!,5-./3;)=./-"2%HARÈREFERENCIAALNOMBREDELALUMNO) !,5-./3;)=#!,)&HARÈREFERENCIAALACALIlCACIØNOBTENIDAPOREL ALUMNO)

%LSIGUIENTEALGORITMOPRESENTALASOLUCIØNALPROBLEMAANTERIORMEDIANTEUNARRE GLODEREGISTROS !LGORITMO !RREGLO?DE?REGISTROS ARREGLO?DE?REGISTROS [%STE ALGORITMO CALCULA EL PROMEDIO DEL GRUPO E IMPRIME EL NOMBRE DE LOS ALUMNOS CON CALIlCACIØNMENORALPROMEDIO] [!,5-./3 ES UN ARREGLO DE REGISTROS ) ES UNA VARIABLE DE TIPO ENTERO !# Y 02/- SON VARIABLESDETIPOREAL]  (ACER!#←  2EPETIRCON)DESDEHASTA ,EER!,5-./3;)=./-"2%Y!,5-./3;)=#!,)& (ACER!#←!# !,5-./3;)=#!,)&  [&INDELCICLODELPASO]  (ACER02/-←!#  %SCRIBIRh%LPROMEDIODELGRUPOESv02/["ÞSQUEDAEIMPRESIØNDELOSALUMNOSCONCALIlCACIØNINFERIORALPROMEDIO]  2EPETIRCON)DESDEHASTA  3I!,5-./3;)=#!,)&02/- ENTONCES %SCRIBIR!,5-./3;)=./-"2%  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

 3&(*45304:$-"4&4

39

 2%')342/39#,!3%3 ,OSREGISTROSSONLASESTRUCTURASDEDATOSQUEMÈSSEPARECENALCONCEPTODECLASEPRE SENTADO%NLASECCIØNANTERIORSEDIJOQUEUNREGISTROALMACENALASPRINCIPALESCARACTE RÓSTICASDEUNCONJUNTODEOBJETOS#ADAUNADEESASCARACTERÓSTICASCONSTITUYEUNCAMPO DELREGISTRO!LESTABLECERLARELACIØNCONLASCLASES LOSCAMPOSREPRESENTANLOSATRIBU TOS0ORTANTO SØLOSEAGREGANLOSMÏTODOSˆOPERACIONESQUEPUEDENAPLICARSESOBRE LOSCAMPOSˆPARACOMPLETARLADElNICIØNDEUNACLASE ,ACLASE2EGISTROCOMOTALNOSEDECLARA PORQUELOQUESEREQUIEREESUNACLASEPOR CADAREGISTRO%SDECIR SISEDESEAREPRESENTARALOSCLIENTESDEUNAEMPRESA SEGÞNEL EJEMPLOVISTOENLASECCIØNANTERIOR DESDEELPUNTODEVISTADELAPROGRAMACIØNORIEN TADAAOBJETOS SEDEBERÈDElNIRUNACLASEQUECONTENDRÈTANTOLOSATRIBUTOSˆLOQUEEN REGISTROSSELLAMANCAMPOSˆCOMOTODASLASOPERACIONESVÈLIDASPARAUNCLIENTE POR EJEMPLO ACTUALIZAR EL SALDO CAMBIAR EL NÞMERO TELEFØNICO ETCÏTERA 'RÈlCAMENTE LA CLASE#LIENTEPUEDEVERSECOMOSEMUESTRAENLAlGURA 5NOBJETODELACLASE#LIENTEESUNAINSTANCIADELAMISMA%SDECIR ESTÈREPRESEN TANDOAUNCLIENTECONUNNOMBRE UNNÞMEROTELEFØNICOYUNSALDOESPECÓlCO ,ANOTACIØNDEPUNTOSUTILIZADAENLOSREGISTROSˆVARIABLE?REGISTROCAMPOˆ ESSIMILARALAUSADAENLOSLENGUAJESORIENTADOSAOBJETOSPARATENERACCESOALOSMIEM BROS NO PRIVADOS DE UN OBJETO ˆOBJETOMIEMBROˆ!L ASUMIR QUE LA VARIABLE #,)ESUNOBJETODELACLASE#LIENTEPREVIAMENTEDElNIDA SEPUEDETENERACCESOALOS MIEMBROSNOPRIVADOSDEDICHOOBJETOPORMEDIODELASINSTRUCCIONES A #,)!CTUALIZAR3ALDO.UEVO3ALDO

%NESTEEJEMPLOSEESTÈINVOCANDOALMÏTODOQUEACTUALIZAELSALDODELCLIENTE%L MÏTODOTIENEUNARGUMENTOQUEINDICAELNUEVOVALORQUESEASIGNARÈALATRIBUTO 3ALDO B #,)#AMBIA4ELÏFONO.UEVO4EL

%NESTEEJEMPLOSEESTÈINVOCANDOALMÏTODOQUEACTUALIZAELNÞMEROTELEFØNICODEL CLIENTE%LMÏTODOTIENEUNARGUMENTOQUEINDICAELNUEVOVALORQUESEASIGNARÈAL ATRIBUTO4ELÏFONO

&)'52! #LASE#LIENTE

#LIENTE .OMBRECADENADECARACTERES 4ELÏFONOCADENADECARACTERES 3ALDOREAL !CTUALIZAR3ALDOARGUMENTOS #AMBIA4ELÏFONOARGUMENTOS x

40

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

▼ %*%2#)#)/3 !RREGLOSDEUNADIMENSIØNYARREGLOSPARALELOS Ê £° %NUNARREGLOUNIDIMENSIONALSEHAALMACENADOELNÞMEROTOTALDETONELADASDE CEREALESCOSECHADASDURANTECADAMESDELA×OANTERIOR%SCRIBAUNPROGRAMAQUE OBTENGAEIMPRIMALASIGUIENTEINFORMACIØN A %LPROMEDIOANUALDETONELADASCOSECHADAS B z#UÈNTOSMESESTUVIERONCOSECHASUPERIORALPROMEDIOANUAL C z#UÈNTOSMESESTUVIERONCOSECHAINFERIORALPROMEDIOANUAL Ê Ó° %NUNARREGLOUNIDIMENSIONALSEALMACENANLASCALIlCACIONESlNALESDE.ALUMNOS DEUNCURSOUNIVERSITARIO%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMA A B C D

%LPROMEDIOGENERALDELGRUPO .ÞMERODEALUMNOSAPROBADOSYREPROBADOS 0ORCENTAJEDEALUMNOSAPROBADOSYREPROBADOS .ÞMERODEALUMNOSCUYACALIlCACIØNFUEMAYOROIGUALA

Ê Î° $ADAUNACADENADECARACTERESCOMODATO SEDESEASABERELNÞMERODEVECESQUE [email protected] @B  @Z[email protected]! @"  @:ENDICHACADENA%SCRIBAUNPRO GRAMAQUERESUELVAELPROBLEMA A 3IUSØARREGLOS zCUÈNTOSNECESITØz0ORQUÏ B z%XISTEOTRAFORMADERESOLVERLO Ê {° $ADOUNARREGLOUNIDIMENSIONALDENÞMEROSENTEROS ORDENADOSCRECIENTEMENTE ES CRIBAUNPROGRAMAQUEELIMINETODOSLOSELEMENTOSREPETIDOS#ONSIDEREQUEDEHA BERVALORESREPETIDOS ÏSTOSSEENCONTRARÈNENPOSICIONESCONSECUTIVASDELARREGLO Ê x° 5NA COMPA×ÓA ALMACENA LA INFORMACIØN RELACIONADA CON SUS PROVEEDORES EN LOS SIGUIENTESARREGLOS *,"6

",

P

P

P



PN

#ADAPESELNOMBREDELPROVEEDORI%STEARREGLOESTÈORDENADOALFABÏTICAMENTE

1  C

C

C



CN

#ADACREPRESENTAELNOMBREDELACIUDADENLAQUERESIDEELPROVEEDORI

&+&3$*$*04

41

2 ,"Ê Ê,/ 1"A

A

A



AN

#ADAAIESELNÞMERODEARTÓCULOSDIFERENTESQUEPROVEEELPROVEEDORI %SCRIBAUNPROGRAMAQUEPUEDALLEVARACABOLASSIGUIENTESTRANSACCIONES A $ADOELNOMBREDEUNPROVEEDOR INFORMARELNOMBREDELACIUDADENLAQUERESIDE YELNÞMERODEARTÓCULOSQUEPROVEE B !CTUALIZARELNOMBREDELACIUDAD ENCASODEQUEUNPROVEEDORCAMBIEDEDOMICI LIO,OSDATOSSERÈNELNOMBREDELPROVEEDORYELNOMBREDELACIUDADALACUALSE MUDØ C !CTUALIZARELNÞMERODEARTÓCULOS MANEJADOSPORUNPROVEEDORPARAELCASODEQUE ÏSTEAUMENTEODISMINUYA,OSDATOSSERÈNELNOMBREDELPROVEEDORYLACANTIDAD ENLAQUEAUMENTA ODISMINUYE ELTOTALDEARTÓCULOSQUEPROVEE D ,ACOMPA×ÓAINCORPORAAUNNUEVOPROVEEDOR!CTUALIZARLOSARREGLOSSINALTERAREL ORDENDE02/6%%$/2%3,OSDATOSSERÈNELNOMBREDELPROVEEDOR ELNOMBREDE LACIUDADYELTOTALDEARTÓCULOSQUEPROVEE E ,A COMPA×ÓA DA DE BAJA A UN PROVEEDOR!CTUALIZAR LOS ARREGLOS %L DATO SERÈ EL NOMBREDELPROVEEDOR Ê È° 5NAINMOBILIARIATIENEINFORMACIØNSOBREDEPARTAMENTOSENRENTAALMACENADAEN DOSARREGLOS

8/ -$ E

E

E



EN

%LARREGLO%84%.3)».ALMACENALASUPERlCIE ENMETROSCUADRADOS DECADAUNO DELOS.DEPARTAMENTOS *, " 0

0

0



0.

%LARREGLO02%#)/ALMACENALOSPRECIOSDEALQUILERDELOS.DEPARTAMENTOS%STE ARREGLOESTÈORDENADODEMANERACRECIENTE#ONSIDEREQUENOEXISTENDEPARTAMENTOS CONIGUALSUPERlCIEYDISTINTOSPRECIOS %SCRIBAUNPROGRAMAQUEPUEDALLEVARACABOLASSIGUIENTESOPERACIONES A ,LEGAUNCLIENTEALAINMOBILIARIAYSOLICITARENTARUNDEPARTAMENTO3IEXISTEALGUNO CONSUPERlCIEMAYOROIGUALALABUSCADAYPRECIOMENOROIGUALALBUSCADO SEDARÈ DEBAJAALDEPARTAMENTOSELECCIONADO B 3EVENCEUNCONTRATOYELCLIENTENODESEARENOVARLO3EDEBENACTUALIZARLOSARRE GLOS

42

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 Ê Ç° 3ETIENELASIGUIENTEINFORMACIØN

#4 A

A

A



AN

%NELARREGLO#4SEALMACENANLOSNOMBRESDE.CENTROSTURÓSTICOSDELPAÓS

( B

B

B



BN

%N EL ARREGLO ( SE ALMACENA EL NÞMERO DE HABITACIONES DE CADA TIPO SENCILLA O DOBLE DECADACENTROTURÓSTICO 0OREJEMPLO (;=GUARDAELNÞMERODEHABITACIONESSENCILLASDELCENTRO (;=GUARDAELNÞMERODEHABITACIONESDOBLESDELCENTRO (;=GUARDAELNÞMERODEHABITACIONESSENCILLASDELCENTRO (;=GUARDAELNÞMERODEHABITACIONESDOBLESDELCENTRO ETCÏTERA

42 C

C

C



CN

%NELARREGLO42SEALMACENAELNÞMEROTOTALDERESTAURANTESPORCENTROTURÓSTICO $EBERÈDESARROLLARUNPROGRAMAQUEPROPORCIONELASIGUIENTEINFORMACIØN A %LNOMBREDELCENTROTURÓSTICOQUECUENTACONMÈSRESTAURANTES B %LNOMBREDELCENTROTURÓSTICOQUECUENTACONMÈSHABITACIONES TENIENDOENCUENTA LASSENCILLASYLASDOBLES C $ADOELNOMBREDEUNCENTROTURÓSTICOCOMODATO INFORMARCUÈNTASHABITACIONES TIENESENCILLAS DOBLESYELTOTAL D %LNOMBREDELCENTROTURÓSTICOQUEMÈSRESTAURANTESTIENEENRELACIØNCONELNÞMERO DEHABITACIONES Ê n° 3ETIENENTRESARREGLOS352 #%.42/Y./24%QUEALMACENANLOSNOMBRESDE LOSPAÓSESDE3UR #ENTROY.ORTEAMÏRICA RESPECTIVAMENTE,OSTRESARREGLOSESTÈN ORDENADOSALFABÏTICAMENTE %SCRIBA UN PROGRAMA QUE MEZCLE LOS TRES ARREGLOS ANTERIORES FORMANDO UN CUARTOARREGLO !-²2)#! ENELCUALAPAREZCANLOSNOMBRESDETODOSLOSPAÓSES DELCONTINENTEORDENADOSALFABÏTICAMENTE Ê ™° 3ETIENENDOSARREGLOS#).%3Y4%!42/3%LPRIMEROALMACENALOSNOMBRES DETODOSLOSCINESDELACIUDAD%STÈORDENADOALFABÏTICAMENTEDEMANERAAS CENDENTE

&+&3$*$*04

43

#).%3;=≤#).%3;=≤≤#).%3;.= %LSEGUNDOARREGLOGUARDALOSNOMBRESDETODOSLOSTEATROSDELACIUDAD%STÈORDE NADOALFABÏTICAMENTEDEMANERADESCENDENTE 4%!42/3;=≥4%!42/3;=≥≥4%!42/3;+= %SCRIBAUNPROGRAMAQUEMEZCLEESTOSARREGLOSFORMANDOUNTERCERO %.42%4% .)-)%.4/3 QUEQUEDEORDENADOALFABÏTICAMENTEDEMANERAASCENDENTE £ä°3ETIENENREGISTRADASLASCALIlCACIONESOBTENIDASENUNEXAMENAALUMNOS,OS DATOSSONCAL CAL  CAL DONDECALIESUNNÞMEROENTEROCOMPRENDIDOENTRELOS VALORESY≤CALI≤  %SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALAFRECUENCIADECADAUNODELOS POSIBLESVALORES ,ASALIDADELPROGRAMASEMUESTRAACONTINUACIØN #ALIlCACIØN

&RECUENCIA



!,5-./



ˆ



ˆ



!,5-./3



!,5-./3







!,5-./3

££°%SCRIBASUSPROPIOSALGORITMOSPARAINSERTAR ELIMINAROMODIlCARUNELEMENTODE UNARREGLO A 3IELARREGLOESTÈDESORDENADO B 3IELARREGLOESTÈORDENADO £Ó°$ADOUNARREGLOUNIDIMENSIONALDETIPOENTEROQUECONTIENECALIlCACIONESDEEXÈ MENESDEALUMNOS CONSTRUYAUNPROGRAMAQUECALCULELOSIGUIENTE A -EDIAARITMÏTICA3ECALCULACOMOLASUMADELOSELEMENTOSENTREELNÞMERODE ELEMENTOS B 6ARIANZA3ECALCULACOMOLASUMADELOSCUADRADOSDELASDESVIACIONESDELAME DIA ENTREELNÞMERODEELEMENTOS C $ESVIACIØNESTÈNDAR3ECALCULACOMOLARAÓZCUADRADADELAVARIANZA D -ODA3ECALCULAALOBTENERELNÞMEROCONMAYORFRECUENCIA £Î°%SCRIBAUNPROGRAMAQUEALMACENEENUNARREGLOUNIDIMENSIONALLOSPRIMEROSNÞ MEROSPERFECTOS5NNÞMEROSECONSIDERAPERFECTO SILASUMADELOSDIVISORESEXCEP TOELMISMOESIGUALALPROPIONÞMERO%L POREJEMPLO ESUNNÞMEROPERFECTO

44

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504

!RREGLOSMULTIDIMENSIONALES £{°3EANLOSARREGLOSBIDIMENSIONALES!-§. Y"-§.

$ONDE≤-≤

≤.≤

AI JYBI JSONREALES

%SCRIBAUNPROGRAMAQUECALCULE#-§. !-§. "-§.  £x°3EANLOSARREGLOSBIDIMENSIONALES!-§. Y".§0

$ONDE≤-≤

≤.≤

≤0≤

AI JYBI JSONREALES

%SCRIBAUNPROGRAMAQUECALCULE#-§0 !-§. ".§0 £È°%SCRIBAUNPROGRAMAQUELLENEDECEROSUNAMATRIZ!.§. EXCEPTOENLADIAGONAL PRINCIPALDONDEDEBEASIGNAR3I. LAMATRIZDEBEQUEDAR

£Ç°%SCRIBAUNPROGRAMAQUEINTERCAMBIEPORRENGLØNLOSELEMENTOSDEUNARREGLOBIDI MENSIONAL,OSELEMENTOSDELRENGLØNDEBENINTERCAMBIARSECONLOSDELRENGLØN . LOSDELRENGLØNCONLOSDEL.n YASÓSUCESIVAMENTE 0OREJEMPLO SI!ES

%LRESULTADODELAOPERACIØNDEBESER

&+&3$*$*04

45

£n°$ADOCOMODATOELARREGLOBIDIMENSIONAL!-§. QUEALMACENANÞMEROSREA LES

$ONDE≤-≤

≤.≤ %SCRIBAUNPROGRAMAQUEENCUENTREEIMPRIMAELVALORMÈSGRANDEALMACENADO ENCADAUNADELASCOLUMNASYENCADAUNODELOSRENGLONESDELARREGLO3UPRO GRAMADEBEIMPRIMIR JUNTOALVALORENCONTRADO LACOLUMNAORENGLØNENLACUALSE ENCONTRØ

£™°3ETIENENLOSCOSTOSDEPRODUCCIØNDETRESDEPARTAMENTOSDULCES BEBIDASYCONSER VAS CORRESPONDIENTESALOSMESESDELA×OANTERIOR

%SCRIBAUNPROGRAMAQUEPUEDAPROPORCIONARLASIGUIENTEINFORMACIØN A z%NQUÏMESSEREGISTRØELMAYORCOSTODEPRODUCCIØNDEDULCES B 0ROMEDIOANUALDELOSCOSTOSDEPRODUCCIØNDEBEBIDAS C z%NQUÏMESSEREGISTRØELMAYORCOSTODEPRODUCCIØNENBEBIDAS YENQUÏMESEL MENORCOSTO D z#UÈLFUEELRUBROQUETUVOELMENORCOSTODEPRODUCCIØNENDICIEMBRE Óä°3ETIENEUNATABLACONLASCALIlCACIONESOBTENIDASPORALUMNOSENSEISEXÈMENES DIFERENTES

%SCRIBAUNPROGRAMAQUECALCULE

46

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 A %L PROMEDIO GENERAL DE CALIlCACIONES DE LOS  ALUMNOS CONSIDERANDO LOS SEIS EXÈMENES B %LALUMNOQUEOBTUVOLAMAYORCALIlCACIØNENELTERCEREXAMEN C %LALUMNO SILOHUBIERA QUEOBTUVOLAMAYORCALIlCACIØNENELPRIMEROYENEL SEXTOEXÈMENES D $ADOELNÞMEROQUEIDENTIlCAAUNALUMNO INFORMARENQUÏEXAMENLOGRØLAMENOR CALIlCACIØN E z%NCUÈLEXAMENFUEMÈSALTOELPROMEDIODELOSALUMNOS Ó£°%SCRIBAUNPROGRAMAQUEGENEREEIMPRIMAUNCUADRADOMÈGICODEDIMENSIØN. /BSERVEQUE.ESENTERO POSITIVOEIMPAR5NCUADRADOMÈGICOESUNAMATRIZCUA DRADADEORDEN. QUECONTIENEALOSNÞMEROSNATURALESDELAL. . YDONDELA SUMADECUALQUIERADELOSRENGLONES COLUMNASODIAGONALESPRINCIPALESESSIEMPRE LAMISMA0UEDEUTILIZARLOSSIGUIENTESPASOSPARAGENERARUNCUADRADOMÈGICO A %LNÞMEROSECOLOCAENLACASILLACENTRALDELPRIMERRENGLØN B %LSIGUIENTENÞMEROSECOLOCAENLACASILLACORRESPONDIENTEALRENGLØNANTERIORY COLUMNAPOSTERIOR C %LRENGLØNANTERIORALPRIMEROESELÞLTIMO YLACOLUMNAPOSTERIORALAÞLTIMAESLA PRIMERA D 3IELNÞMEROESUNSUCESORDEUNMÞLTIPLODE. NOSEAPLICALAREGLA SINOQUESE COLOCAENLACASILLADELRENGLØNPOSTERIORYENLAMISMACOLUMNA 3I. ELCUADRADOGENERADODEBEQUEDAR

ÓÓ°3EAN!-§. Y". ARREGLOSDEDOSYUNADIMENSIØN RESPECTIVAMENTE%SCRIBA UNPROGRAMAQUEASIGNEVALORESA" APARTIRDE! TENIENDOENCUENTALOSSIGUIENTES CRITERIOS N

A BI  ¤ AI J

3IIESIMPAR

J  N

B BI  ¤ AI J AI  J AI  J

3IIESPAR

J 

Óΰ3EAN!B§. Y". DOSARREGLOSDEDOSYUNADIMENSIØN RESPECTIVAMENTE

&+&3$*$*04

47

%SCRIBAUNPROGRAMAQUEASIGNEVALORESA! APARTIRDE" TENIENDOENCUENTALOS SIGUIENTESCRITERIOS A AIJBI B AIJ

3II≤J 3IIJ

#OMBINACIONESENTREARREGLOSYREGISTROS Ó{°%LDEPARTAMENTODEPERSONALDEUNAESCUELATIENEREGISTROSDELNOMBRE SEXOYEDAD DECADAUNODELOSPROFESORESADSCRITOSAHÓ

%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSSIGUIENTESDATOS

A B C D E

%DADPROMEDIODELGRUPODEPROFESORES .OMBREDELPROFESORMÈSJOVENDELGRUPO .OMBREDELPROFESORDEMÈSEDAD .ÞMERODEPROFESORASCONEDADMAYORALPROMEDIO .ÞMERODEPROFESORESCONEDADMENORALPROMEDIO

Óx°2ESUELVA EL PROBLEMA ANTERIOR CON TRES ARREGLOS PARALELOS #OMPARE SUS SOLUCIO NES

ÓÈ°%NUNAESCUELAPORCADAALUMNOSETIENENLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗

.OMBRE -ATRÓCULA .ÞMERODESEMESTRESCURSADOS #ALIlCACIØNPROMEDIOPORSEMESTRE

%SCRIBA UN PROGRAMA QUE DADA LA INFORMACIØN DE . ALUMNOS PUEDA REALIZAR LAS SIGUIENTESOPERACIONES

48

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 A ,ISTARNOMBREYMATRÓCULADEESTUDIANTESCONPROMEDIOSGENERALESMAYORESOIGUA LESA B !CTUALIZAR LOS CAMPOS QUE CORRESPONDAN CUANDO UN ESTUDIANTE HA CONCLUIDO UN SEMESTRE C ,ISTARNOMBREYMATRÓCULADEESTUDIANTESQUEHAYANOBTENIDOOMÈSDECALIlCA CIØNENTODOSLOSSEMESTRESCURSADOSHASTAELMOMENTO ÓÇ°5NACOMPA×ÓADISTRIBUYE.PRODUCTOSADISTINTOSCOMERCIOSDELACIUDAD0ARAELLO ALMACENAENUNARREGLOTODALAINFORMACIØNRELACIONADACONSUMERCANCÓA ◗ ◗ ◗ ◗ ◗

#LAVE $ESCRIPCIØN %XISTENCIA -ÓNIMOAMANTENERDEEXISTENCIA 0RECIOUNITARIO

%SCRIBAUNPROGRAMAQUEEFECTÞELASSIGUIENTESOPERACIONES

A 6ENTADEUNPRODUCTOSEDEBENACTUALIZARLOSCAMPOSQUECORRESPONDANYVERIlCAR QUELANUEVAEXISTENCIANOESTÏPORDEBAJODELMÓNIMO$ATOSCLAVE CANTIDADVEN DIDA B 2EABASTECIMIENTODEUNPRODUCTOSEDEBENACTUALIZARLOSCAMPOSQUECORRESPON DAN$ATOSCLAVE CANTIDADCOMPRADA C !CTUALIZARELPRECIODEUNPRODUCTO$ATOSCLAVE PORCENTAJEDEAUMENTO D )NFORMARSOBREUNPRODUCTOSEDEBENPROPORCIONARTODOSLOSDATOSRELACIONADOS CONUNPRODUCTO$ATOCLAVE Ón°!LMOMENTODESUINGRESOALHOSPITAL AUNPACIENTESELESOLICITANLOSSIGUIENTES DATOS ◗ ◗ ◗ ◗

◗ ◗

.OMBRE %DAD 3EXO $OMICILIO s#ALLE

s.ÞMERO

s#IUDAD 4ELÏFONO 3EGUROESTECAMPOTENDRÈELVALOR6%2$!$%2/SIELPACIENTETIENESEGUROMÏDI COY&!,3/ENOTROCASO

%SCRIBAUNPROGRAMAQUEPUEDALLEVARACABOLASSIGUIENTESOPERACIONES

A ,ISTARLOSNOMBRESDETODOSLOSPACIENTESHOSPITALIZADOS B /BTENERELPORCENTAJEDEPACIENTESHOSPITALIZADOSENLASSIGUIENTESCATEGORÓASDA DASPORLAEDAD 

&+&3$*$*04



49

.I×OSHASTAA×OS *ØVENESMAYORESDEA×OSYMENORESDE !DULTOSMAYORESDEA×OS

C /BTENERELPORCENTAJEDEHOMBRESYDEMUJERESHOSPITALIZADOS D $ADOELNOMBREDEUNPACIENTE LISTARTODOSLOSDATOSRELACIONADOSCONDICHOPA CIENTE E #ALCULARELPORCENTAJEDEPACIENTESQUEPOSEENSEGUROMÏDICO ә°5NAINMOBILIARIATIENEINFORMACIØNSOBREDEPARTAMENTOSENRENTA$ECADADEPARTA MENTOSECONOCE ◗ ◗ ◗ ◗ ◗

#LAVEESUNENTEROQUEIDENTIlCAALINMUEBLE %XTENSIØNSUPERlCIEDELDEPARTAMENTO ENMETROSCUADRADOS 5BICACIØNEXCELENTE BUENA REGULAR MALA  0RECIOESUNREAL $ISPONIBLE6%2$!$%2/SIESTÈDISPONIBLEPARALARENTAY&!,3/SIYAESTÈREN TADO

$IARIAMENTEACUDENMUCHOSCLIENTESALAINMOBILIARIASOLICITANDOINFORMACIØN %SCRIBAUNPROGRAMACAPAZDEREALIZARLASSIGUIENTESOPERACIONESSOBRELAIN FORMACIØNDISPONIBLE

A ,ISTELOSDATOSDETODOSLOSDEPARTAMENTOSDISPONIBLESQUETENGANUNPRECIOINFERIOR OIGUALACIERTOVALOR0 B ,ISTELOSDATOSDELOSDEPARTAMENTOSDISPONIBLESQUETENGANUNASUPERlCIEMAYORO IGUALAUNCIERTOVALORDADO%YUNAUBICACIØNEXCELENTE C ,ISTEELMONTODELARENTADETODOSLOSDEPARTAMENTOSALQUILADOS D ,LEGAUNCLIENTESOLICITANDORENTARUNDEPARTAMENTO3IEXISTEALGUNOCONUNASU PERlCIE MAYOR O IGUAL A LA DESEADA CON PRECIO Y UBICACIØN QUE SE AJUSTAN A LAS NECESIDADESDELCLIENTE ELDEPARTAMENTOSERENTARÈ!CTUALIZARLOSDATOSQUECORRES PONDAN E 3EVENCEUNCONTRATOSINOSERENUEVA ACTUALIZARLOSDATOSQUECORRESPONDAN F 3EHADECIDIDOAUMENTARLASRENTASENUN8!CTUALIZARLOSPRECIOSDELASRENTAS DELOSDEPARTAMENTOSNOALQUILADOS

0ROBLEMASINTERESANTES $ECIDAELLECTORQUÏESTRUCTURADEDATOSDEBEUTILIZARPARARESOLVERLOS Îä°%SCRIBAUNPROGRAMAQUELEAUNNÞMEROROMANOEIMPRIMASUEQUIVALENTEENARÈ BIGO 2ECUERDEQUE )  6 

50

>«‰ÌՏœÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 8  ,   #   $   -  Σ°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSNÞMEROSPERFECTOSCOMPRENDIDOS ENTREDOSNÞMEROS!Y"5NNÞMEROESPERFECTOSILASUMADESUSDIVISORES EXCEP TOÏLMISMO ESIGUALALPROPIONÞMERO ÎÓ°%SCRIBAUNSUBPROGRAMAQUERECIBACOMODATOSELNOMBREDEUNDÓADELASEMANAY UNNÞMEROENTERO. POSITIVOONEGATIVO EIMPRIMAELDÓADELASEMANACORRESPON DIENTEA.DÓASDESPUÏSˆPOSITIVOˆO.DÓASANTESˆNEGATIVOˆDELDÓADADO Îΰ,OMISMOQUEENELPROBLEMA PEROAHORACONRESPECTOAUNMES Î{°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSNÞMEROSPRIMOSMENORESQUECIERTO NÞMERODADO. Îx°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSNÞMEROSPRIMOSGEMELOSMENORES QUECIERTONÞMERODADO.$OSNÞMEROSSONPRIMOSGEMELOSSISONNÞMEROSPRI MOSCONUNADIFERENCIAENTREELLOSDEEXACTAMENTE0OREJEMPLO YSONPRIMOS GEMELOS

#APÓTULO

Ó

!22%',/3 -5,4)$)-%.3)/.!,%3 2%02%3%.4!$/3 %.!22%',/3 5.)$)-%.3)/.!,%3  ).42/$5##)¼. !CTUALMENTELAMAYORÓADELOSLENGUAJESDEPROGRAMACIØNDEALTONIVELPROPORCIONANAL USUARIOMEDIOSElCACESPARAALMACENARYRECUPERARELEMENTOSDEARREGLOSBIDIMENSIO NALES TRIDIMENSIONALESEINCLUSODEMÈSDETRESDIMENSIONES%LUSUARIODELLENGUAJENO DEBEPREOCUPARSEPORDETALLESESPECÓlCOSDELALMACENAMIENTONIPORELMANEJOFÓSICO DEL DATO 3U ATENCIØN SE DEBE CONCENTRAR SOLAMENTE EN EL TRATAMIENTO LØGICO DE ESTE ÞLTIMOESDECIR ENENCONTRARUNAESTRUCTURADEDATOSQUEPERMITARESOLVERCIERTOSPRO BLEMASDEMANERAØPTIMA 0OROTRAPARTE LASCOMPUTADORASNOPUEDENALMACENARDIRECTAMENTEUNARREGLOMUL TIDIMENSIONAL3UREPRESENTACIØNENMEMORIADEBESERLINEALˆACADAELEMENTOLESIGUE UNÞNICOELEMENTOˆ MEDIANTEUNBLOQUEDEPOSICIONESSUCESIVAS %NESTECAPÓTULOSEESTUDIARÈNALGUNASTÏCNICASUTILIZADASPARAELALMACENAMIENTO LINEALDEARREGLOSMULTIDIMENSIONALES

 !22%',/3")$)-%.3)/.!,%3 ,OSLENGUAJESDEPROGRAMACIØNPUEDENREPRESENTARUNARREGLOBIDIMENSIONAL! DEM§ NELEMENTOS MEDIANTEUNBLOQUEDEM§NPOSICIONESSUCESIVAS,ADISTRIBUCIØNDELOS ELEMENTOSSEPUEDEREALIZARDEDOSFORMASDIFERENTESRENGLØNARENGLØN LLAMADATAM

52

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 BIÏNORDENACIØNPORRENGLONES QUEUTILIZANLAMAYORÓADELOSLENGUAJESDEPROGRAMA CIØN POREJEMPLO "!3)# #/"/, 0!3#!, # ETCÏTERA OBIENCOLUMNAACOLUMNA LLAMADATAMBIÏNORDENACIØNPORCOLUMNAS QUEUTILIZA&/242!. 3EAELARREGLOBIDIMENSIONAL!DE§ELEMENTOSlGA 3UREPRESENTACIØNEN UNARREGLOUNIDIMENSIONALORDENADOPORRENGLONESSEOBSERVAENLAlGURAB MIENTRAS QUEELQUECORRESPONDEAUNARREGLOUNIDIMENSIONALORDENADOPORCOLUMNASSEOBSERVA ENLAlGURAC 5NAVEZALMACENADOSLOSVALORESDEMANERALINEALSEREQUIEREUNAFØRMULAQUEPRO PORCIONELAPOSICIØNENELARREGLOUNIDIMENSIONALQUELECORRESPONDEACADAELEMENTO DELARREGLOBIDIMENSIONALORIGINAL 3EAN ENTONCES MELNÞMERODERENGLONESYNELNÞMERODECOLUMNASDEUNARREGLO BIDIMENSIONAL0OROTRAPARTE IYJINDICANELRENGLØNYCOLUMNA RESPECTIVAMENTE DE LAPOSICIØNDELELEMENTOQUESEQUIEREUBICAR,AFØRMULAPARALOCALIZARUNELEMENTO DETERMINADO ENUNARREGLOUNIDIMENSIONALORDENADOPORRENGLONES ESLASIGUIENTE

,/#!;I J= 0/3).) N In Jn

▼ &ØRMULA

$ONDE0/3).) PRIMERTÏRMINODELAFØRMULA REPRESENTALAPOSICIØNDELARRE GLOUNIDIMENSIONALAPARTIRDELACUALSEENCUENTRAALMACENADOELARREGLOBIDIMENSIO NAL%NGENERAL PARALLEGARACUALQUIERRENGLØNISEDEBENCONTABILIZARLOSELEMENTOS CORRESPONDIENTESAI RENGLONESCOMPLETOS%STERESULTADOSEOBTIENEMEDIANTELA OPERACIØNN I SEGUNDOTÏRMINODELAFØRMULA#UANDOSELLEGAALRENGLØN CORRESPONDIENTESEDEBENCONTABILIZARLOSJ ELEMENTOSNECESARIOSPARALLEGARALA COLUMNAJ TERCERTÏRMINODELAFØRMULA,ASUMADELOSTRESTÏRMINOSPROPORCIONALA LOCALIZACIØNDELELEMENTOI JCORRESPONDIENTE ENUNARREGLOUNIDIMENSIONALORDENADO PORRENGLONES !SÓ POREJEMPLO SIDESEAMOSLOCALIZARELELEMENTO!; =DELARREGLODELAlGURA AHACEMOS ,/#!; =      &)'52! 2EPRESENTACIØNLINEALDE ARREGLOSBIDIMENSIONALES > !RREGLOBIDIMENSIONAL L /RDENACIØNPOR RENGLONESENUNARREGLO UNIDIMENSIONAL D /RDENACIØNPOR COLUMNASENUNARREGLO UNIDIMENSIONAL

 "33&(-04#*%*.&/4*0/"-&4

53

!HORABIEN SIELARREGLOSEENCUENTRAALMACENADOPORCOLUMNAS LAFØRMULAPARA LOCALIZARUNELEMENTODETERMINADOES

,/#!;I J= 0/3).) M Jn In

▼ &ØRMULA

%NESTECASO 0/3).) PRIMERTÏRMINODELAFØRMULA REPRESENTA COMOENEL CASO ANTERIOR LA POSICIØN DEL ARREGLO UNIDIMENSIONAL A PARTIR DE LA CUAL SE ENCUENTRA ALMACENADO EL ARREGLO BIDIMENSIONAL %N GENERAL PARA LLEGAR A CUALQUIER COLUMNA J PRIMEROSEDEBENCONTABILIZARLOSELEMENTOSCORRESPONDIENTESAJ COLUMNASCOM PLETAS%STERESULTADOSEOBTIENECONLAOPERACIØNM J SEGUNDOTÏRMINODELA FØRMULA,UEGOQUESELLEGAALACOLUMNADESEADA SEDEBENCONSIDERARLOSI ELEMENTOSNECESARIOSPARALLEGARALRENGLØNI TERCERTÏRMINODELAFØRMULA,ASUMA DELOSTRESTÏRMINOSDElNELALOCALIZACIØNDELELEMENTOI JCORRESPONDIENTE ENUNARRE GLOUNIDIMENSIONALORDENADOPORCOLUMNAS !SÓ POREJEMPLO SISEDESEALOCALIZARELELEMENTO!; =DELARREGLOPRESENTADOEN LAlGURAASEHACE ,/#!; =     

%JEMPLO

#ONSIDEREELARREGLOBIDIMENSIONAL#/34/3DERENGLONESYTRESCOLUMNAS CORRES PONDIENTE A LOS COSTOS MENSUALES DE PRODUCCIØN DE TRES DEPARTAMENTOS DULCES CON SERVASYBEBIDAS DEUNAFÈBRICA#ONSIDERETAMBIÏNQUEAQUÏLSEENCUENTRAORDENADO PORRENGLONESAPARTIRDELAPOSICIØN ENUNARREGLOUNIDIMENSIONALLLAMADO#/3 !NALICELOSSIGUIENTESCASOS A 3ENECESITACONOCERELCOSTODEPRODUCCIØNDELDEPARTAMENTODECONSERVAS DURANTE AGOSTO 3EPROCEDEDEESTAFORMA (ACER)← *← %SCRIBIR#/3;  ) * = [%LRESULTADODELCÈLCULOES] B 3ENECESITAELCOSTODEPRODUCCIØNANUALDELDEPARTAMENTODEBEBIDAS

,OSPASOSASEGUIRSON (ACER35-← 2EPETIRCON)DESDEHASTA (ACER35-←35- #/3;  )  = C 3ENECESITAELCOSTOTOTALDEPRODUCCIØNDELOSTRESDEPARTAMENTOS DURANTESEPTIEMBRE

,OSPASOSASEGUIRSON (ACER35-← 2EPETIRCON*DESDEHASTA (ACER35-←35- #/3;n  * =

54

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4

%JEMPLO

3UPONGAMOSQUESETIENEALMACENADOELARREGLOBIDIMENSIONAL!; =ENDOSARRE GLOSUNIDIMENSIONALESDIFERENTES%LPRIMEROORDENADOPORRENGLONESAPARTIRDELAPO SICIØN YELSEGUNDOORDENADOPORCOLUMNASAPARTIRDELAPOSICIØN#ONSIDERELOS SIGUIENTESCASOS A 3ENECESITAOBTENERLAPOSICIØNDELELEMENTO!; =ENELARREGLOUNIDIMENSIONAL ORDENADOPORRENGLONES 3EPROCEDEDEESTAFORMA ,/#  ! ;  = 

 0/3).)

         N I   J 

B 3ENECESITAOBTENERLAPOSICIØNDELELEMENTO!; =ENELARREGLOUNIDIMENSIONAL ORDENADOPORCOLUMNAS ,/#  ! ;  =            0/3).) M  J  I 

 !22%',/3$%-­3$%$/3$)-%.3)/.%3 ,OSLENGUAJESDEPROGRAMACIØNDEALTONIVELALMACENANUNARREGLO!DE.DIMENSIO NES SIENDO.Y PORTANTO DEM§M§§MNELEMENTOS MEDIANTEUNBLOQUEDE M§M§§MNPOSICIONESSUCESIVAS%STAREPRESENTACIØN ALIGUALQUEENELCASODE ARREGLOSBIDIMENSIONALES SEPUEDEREALIZARDEDOSFORMASDIFERENTESRENGLØNARENGLØN LLAMADATAMBIÏNORDENACIØNPORRENGLONES YCOLUMNAACOLUMNA LLAMADATAMBIÏN ORDENACIØNPORCOLUMNAS 3EA!UNARREGLOTRIDIMENSIONALDE§§ELEMENTOSlGA 3UREPRESEN TACIØN EN UN ARREGLO UNIDIMENSIONAL ORDENADO POR RENGLONES PUEDE OBSERVARSE EN LA lGURAB MIENTRASQUELAQUECORRESPONDEAUNARREGLOUNIDIMENSIONALORDENADOPOR COLUMNASSEOBSERVAENLAlGURAC 5NAVEZALMACENADOSLOSVALORESDEMANERALINEAL SEREQUIERECALCULARLAPOSICIØN DECUALESQUIERADELOSELEMENTOSGUARDADOSENELARREGLOUNIDIMENSIONAL0ARAELLOSE NECESITAPRIMEROOBTENERLOSÓNDICES+I LOSTAMA×OSDELASDIMENSIONES4I YLOSÓNDI CESEFECTIVOS)%I CORRESPONDIENTES#ABEACLARARQUEUNÓNDICEEFECTIVO)%I SECALCULA COMOLADIFERENCIADELÓNDICE+ICORRESPONDIENTEYELLÓMITEINFERIORDELADIMENSIØNI DONDEIVARÓADESDEHASTA. SIENDO.ELNÞMERODEDIMENSIONESDELARREGLOMULTIDI MENSIONAL ,AFORMADELOCALIZARUNELEMENTODETERMINADOENUNARREGLOORDENADOPORRENGLO NESES

¥ ¨ N ·´ ,/# ¦ ! © KI ¸µ  0/3).) § ª I  ¹¶

 )% 4 )% 4 x )% 







N 

4N )%N

▼ &ØRMULA

 "33&(-04%&.Ç4%&%04%*.&/4*0/&4

55

&)'52! 2EPRESENTACIØNLINEALDE ARREGLOSDEMÉSDEDOS DIMENSIONES B !RREGLOTRI DIMENSIONALC /RDENACIØN PORRENGLONESENUNARREGLO UNIDIMENSIONALD /RDE NACIØNPORCOLUMNASENUN ARREGLOUNIDIMENSIONAL

3UPONGAMOSQUESEDESEALOCALIZARELELEMENTO!;  =DELARREGLOPRESENTADO ENLAlGURAA%NPRIMERLUGAR SEREALIZANLOSSIGUIENTESCÈLCULOSPARAOBTENERLOS4I YLOS)%I 4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n  )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn ,UEGOSEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNCORRESPONDIENTEDELELEMEN TOENUNARREGLOUNIDIMENSIONALORDENADOPORRENGLONES3EPROCEDEASÓ ,/#!;  =        0ARACALCULARLAPOSICIØNDELELEMENTO!;  =SEREALIZANLASSIGUIENTESOPERACIO NESPARAOBTENERLOS4IˆSEUSANLOSGENERADOSENELCASOANTERIORˆYLOS)%I

56

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 4 )%+nLÓMINFn 4 )%+nLÓMINFn 4 )%+nLÓMINFn YLUEGOSEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNREQUERIDA ,/#!;  =        !HORABIEN SIELARREGLOSEENCUENTRAALMACENADOPORCOLUMNAS LAFORMADELOCA LIZARUNELEMENTOES ¥ ¨ N ·´ ,/# ¦ ! © KI ¸µ  0/3).) § ª I  ¹¶

 )%

▼ &ØRMULA

4 )%

4 )%

4 x )%

4 )% N N  N  N      



3UPONGAMOSQUESEDESEAENCONTRARELELEMENTO!;  =DELARREGLOPRESENTADO ENLAlGURAA3ETIENENQUECALCULARPRIMEROLOS4IˆSEUSANLOSGENERADOSANTERIOR MENTEˆYLOS)%ICORRESPONDIENTES 4 )%+nLÓMINFn 4 )%+nLÓMINFn 4 )%+nLÓMINFn YPOSTERIORMENTESEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNDELELEMENTO!;  = ENUNARREGLOUNIDIMENSIONALORDENADOPORCOLUMNAS ,/#!;  =        3ISEQUIERECALCULARLAPOSICIØNDELELEMENTO!;  = SEREALIZANLASSIGUIENTES OPERACIONESPARAOBTENERLOS4IˆSEUSANLOSGENERADOSANTERIORMENTEˆYLOS)%I 4 )%+nLÓMINFn 4 )%+nLÓMINFn 4 )%+nLÓMINFn YLUEGOSEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNREQUERIDA ,/#!;  =       

%JEMPLO

#ONSIDEREELARREGLOTRIDIMENSIONAL#/34/3DE§§ CORRESPONDIENTEALOSCOS TOS DE PRODUCCIØN MENSUALES EN TRES DEPARTAMENTOS DULCES CONSERVAS Y BEBIDAS DE UNAFÈBRICA ENLOSÞLTIMOSCINCOA×OS DESDEHASTA#ONSIDERETAMBIÏNQUE AQUÏLSEENCUENTRAORDENADOPORRENGLONESAPARTIRDELAPRIMERAPOSICIØNENUNARREGLO UNIDIMENSIONALLLAMADO#/3!NALICELOSSIGUIENTESCASOS A 3ENECESITALAPOSICIØNENELARREGLO#/3DONDESEENCUENTRAELCOSTODEPRODUCCIØN DELDEPARTAMENTODEBEBIDAS DURANTEAGOSTOYDURANTEELA×ODE

 "33&(-04%&.Ç4%&%04%*.&/4*0/&4

57

3EOBTIENENLOS4IYLOS)%ICORRESPONDIENTES 4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n  )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn YLUEGOSEPROCEDEDELASIGUIENTEFORMA ,/##/34/3;  =        B 3ENECESITAELCOSTODEPRODUCCIØNDELDEPARTAMENTODECONSERVAS DURANTE 3EOBTIENENLOS4IˆSEUSANLOSGENERADOSENELINCISOA ˆYLOS)%ICORRES PONDIENTES 4 )%DESDEHASTA 4 )%+nLIMINFn 4 )%+nLIMINFn YLUEGOSEREALIZANLOSSIGUIENTESPASOS (ACER35-← 2EPETIRCON)DESDEHASTA (ACER35-←35- #/3; )     = C 3ENECESITAELCOSTOTOTALDEPRODUCCIØNDELOSTRESDEPARTAMENTOS DURANTESEPTIEM BREDE 3EOBTIENENLOS4IˆSEUSANLOSGENERADOSENELINCISOA ˆYLOS)%ICORRES PONDIENTES 4 )%+nLÓMINFn 4 )%)DESDEHASTA 4 )%+nLÓMINFn YLUEGOSEAPLICANLOSSIGUIENTESPASOS (ACER35-← 2EPETIRCON)DESDEHASTA (ACER35-←35- #/3;   )   = D 3E NECESITA EL COSTO TOTAL DE PRODUCCIØN DE LOS TRES DEPARTAMENTOS DURANTE TODO  3EOBTIENENLOS4IˆSEUSANLOSGENERADOSENELINCISOA ˆYLOS)%ICORRES PONDIENTES

58

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 4 )%)DESDEHASTA 4 )%*DESDEHASTA 4 )%+nLÓMINFn YLUEGOSEAPLICANLOSSIGUIENTESPASOS (ACER35-← 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA (ACER35-←35- #/3; )  *=   =

%JEMPLO

3UPONGAMOS QUE SE TIENE ALMACENADO EL ARREGLO DE CUATRO DIMENSIONES !; L  =ENDOSARREGLOSUNIDIMENSIONALESDIFERENTES%LPRIMEROORDENADOPORREN GLONESAPARTIRDELAPOSICIØNYELSEGUNDOPORCOLUMNASAPARTIRDELAPOSICIØN #ONSIDERELOSSIGUIENTESCASOS A 3ENECESITALAPOSICIØNDELELEMENTO!;   =ENELARREGLOUNIDIMENSIONALOR DENADOPORRENGLONES 0RIMEROSEOBTIENENLOS4IYLOS)%ICORRESPONDIENTES 4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n  4LÓMSUPnLÓMINF n 

)%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn YLUEGOSEPROCEDEDEESTAMANERA ,/#!;   =          B 3E NECESITA LA POSICIØN DEL ELEMENTO !;   = EN EL ARREGLO UNIDIMENSIONAL ORDENADOPORCOLUMNAS 0RIMEROSEOBTIENENLOS4IˆSEUSANLOSGENERADOSENELINCISOA ˆYLOS)%I CORRESPONDIENTES 4 4 4 4

)%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn

YLUEGOSEPROCEDEASÓ ,/#!; n  =         

 ."53*$&410$0%&/4"4

59

 -!42)#%30/#/$%.3!3 -ATRIZREPRESENTAUNTÏRMINOMATEMÈTICOQUESEUTILIZAPARAINDICARUNCONJUNTODEELE MENTOSORGANIZADOSPORMEDIODERENGLONESYCOLUMNAS%SEQUIVALENTEALTÏRMINOARRE GLOBIDIMENSIONALUTILIZADOENCOMPUTACIØN%STETÏRMINOSEEMPLEAENESTASECCIØN FUNDAMENTALMENTE PORQUE A LOS ARREGLOS BIDIMENSIONALES POCO DENSOS SE LES CONOCE MUCHOMÈSCOMOMATRICESPOCODENSAS 0OCODENSOÓNDICAPROPORCIØNMUYALTADECEROSENTRELOSELEMENTOSDELAMATRIZ /BSERVELAMATRIZ!DE§ELEMENTOSDELAlGURA %SFÈCILDARSECUENTADEQUEESTAMATRIZTIENEGRANCANTIDADDECEROS3IENDOPRECI SOS DESUSELEMENTOSSONCEROS0IENSEELLECTORQUÏOCURRIRÓASIENLUGARDETENER UNAMATRIZDE§SETUVIERAUNAMATRIZDE§YLAMAYORÓADESUSELEMENTOS FUERANIGUALESACERO#ONELPORCENTAJEANTERIORYPARAESTECASOENPARTICULAR SETEN DRÓANELEMENTOSIGUALESACERO 5NA SITUACIØN COMO ÏSTA EXIGE QUE SE HAGA UN USO MÈS ElCIENTE DEL ESPACIO DE MEMORIA#ONESEPROPØSITOEXISTENDIVERSOSMÏTODOSPARAALMACENARSØLOLOSVALORES DIFERENTESDECERODEUNAMATRIZPOCODENSA!CONTINUACIØNPRESENTAMOSDOSDELOS MÈSUSADOS

!RREGLODEREGISTROS 3EUTILIZAUNARREGLOUNIDIMENSIONAL DONDECADAELEMENTOREPRESENTAUNREGISTROFOR MADOPORTRESCAMPOSUNOPARAGUARDARELRENGLØNDONDESEENCONTRØELVALORDIFERENTE DECEROOTROPARAGUARDARLACOLUMNA YELTERCEROPARAGUARDARELVALORDELELEMENTO DISTINTODECERODELAMATRIZ %NLATABLASEMUESTRALAFORMADEALMACENARLOSELEMENTOSDELAMATRIZPOCO DENSAQUESEOBSERVAENLAlGURA 4!",!

&)'52! -ATRIZDE™

2ENGLØN          

#OLUMNA          

6ALOR          

60

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 %S PERTINENTE ACLARAR QUE PUEDE RESULTAR MUY CONVENIENTE ALMACENAR EL TOTAL DE RENGLONESYDECOLUMNASDELAMATRIZORIGINAL !CONTINUACIØNSEPRESENTAUNALGORITMOMUYSIMPLEQUEALMACENAENUNARREGLO UNIDIMENSIONALLOSELEMENTOSDISTINTOSDECERODEUNAMATRIZPOCODENSA !LGORITMO !LMACENA?MATRIZ?POCO?DENSA

!LMACENA?MATRIZ?POCO?DENSA-!4 [%LALGORITMOALMACENALOSELEMENTOSDISTINTOSDECERODEUNAMATRIZPOCODENSAENUNARREGLO UNIDIMENSIONAL -!4 CONSTITUYE UN ARREGLO UNIDIMENSIONAL DE REGISTROS ,OS CAMPOS DEL REGISTROSON2%.',». #/,5-.!Y6!,/2] [&) #/ ) *Y+SONVARIABLESDETIPOENTERO6!,ESUNAVARIABLEDETIPOREAL]  ,EERELNÞMERODERENGLONESYDECOLUMNASDELAMATRIZ&)Y#/  (ACER-!4;=2%.',».←&) -!4;=#/,5-.!←#/Y+← 2EPETIRCON)DESDEHASTA&)  2EPETIRCON*DESDEHASTA#/ ,EERINFORMACIØN6!,  3I6!,≠ ENTONCES (ACER-!4;+=2%.',».←) -!4;+=#/,5-.!←* -!4;+=6!,/2←6!,←Y+←+   [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]  (ACER-!4;=6!,/2←+n [%N-!4;=2%.',».Y-!4;=#/,5-.!QUEDANALMACENADOSELNÞMERODERENGLONES YDECOLUMNAS RESPECTIVAMENTE DELAMATRIZ%N-!4;=6!,/2QUEDAALMACENADOELTOTAL DEELEMENTOSDIFERENTESDECERODELAMATRIZ]

!RREGLODELISTAS 3ESUGIEREQUEANTESDEESTUDIARESTEMÏTODOUSADOPARAELALMACENAMIENTODEMATRICES POCODENSASCONSULTEELCAPÓTULO ,AREPRESENTACIØNDELAMATRIZPOCODENSASEREALIZAPORMEDIODEUNARREGLODE LISTAS%SDECIR ENELELEMENTOIDEUNARREGLOUNIDIMENSIONALSETIENEUNREGISTROQUE ALMACENAENUNODESUSCAMPOSELTOTALDEELEMENTOSDIFERENTESDECEROENCONTRADOSEN ELRENGLØNIDELAMATRIZ YENOTROCAMPOLADIRECCIØNALPRIMERNODODEUNALISTA#ADA NODODELALISTAALMACENARÈLACOLUMNADELAMATRIZENLAQUESEENCUENTRAELVALORDIFE RENTEDECERO ELPROPIOVALORYLADIRECCIØNALSIGUIENTENODODELALISTA

 ."53*$&410$0%&/4"4

61

&)'52! !RREGLODELISTAS

%NLAlGURASEPRESENTAUNESQUEMADEESTAESTRUCTURADEDATOSQUESEAPLICAA LAMATRIZPOCODENSADELAlGURA

 -ATRICESCUADRADASPOCODENSAS ,ASMATRICESCUADRADASSONAQUELLASQUETIENENIGUALNÞMERODERENGLONESYDECO LUMNAS3IADEMÈSESTASMATRICESTIENENUNAPROPORCIØNMUYALTADECEROS SEDENOMI NANPOCODENSAS 0OROTRAPARTE LASMATRICESCUADRADASENLASQUELOSELEMENTOSQUESEENCUENTRAN ARRIBAODEBAJODELADIAGONALPRINCIPALSONIGUALESACERO SELLAMANMATRICESTRIANGU LARES²STAS SEGÞNLAUBICACIØNDELOSCEROS SECLASIlCANENMATRIZTRIANGULARINFERIOR SILOSELEMENTOSIGUALESACEROSEENCUENTRANSOBRELADIAGONALPRINCIPALlGA YEN MATRIZTRIANGULARSUPERIORSILOSELEMENTOSIGUALESACEROSEENCUENTRANDEBAJODELA DIAGONALPRINCIPALlGB 

 -ATRIZTRIANGULARINFERIOR 3UPONGAMOSQUESEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"lG LAMATRIZ TRIANGULARINFERIORDELAlGURAA %SFÈCILOBSERVARQUEELARREGLO"TENDRÈ      N &)'52! -ATRICESCUADRADASPOCO DENSASA -ATRIZTRIANGULAR INFERIORB -ATRIZTRIANGULAR SUPERIOR

62

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4

&)'52! !LMACENAMIENTODEUNA MATRIZTRIANGULARINFERIOREN UNARREGLOUNIDIMENSIONAL

ELEMENTOS QUEESIGUALA N  N   PORELPRINCIPIODEINDUCCIØNMATEMÈTICA#ABESE×ALARQUEENLOQUERESTADEESTECAPÓ TULO ASÓCOMOENLOSSIGUIENTES SEHARÈUSODEESTEPRINCIPIO !SUMIENDOQUELOSELEMENTOSDELAMATRIZTRIANGULARINFERIORFUERONALMACENADOS ENUNARREGLOUNIDIMENSIONAL SEREQUIEREENCONTRARUNAFØRMULAQUEPERMITALOCALIZARA CADAUNODEELLOS%NPRIMERLUGAR SEDEBECONSIDERARA0/3).) QUEINDICALAPOSICIØN APARTIRDELACUALSEENCUENTRAALMACENADOELARREGLOˆPRIMERTÏRMINODELAFØRMULAˆ %NGENERAL PARALLEGARACUALQUIERRENGLØNISEDEBENCONTABILIZARLOSELEMENTOSCORRES PONDIENTESAIn RENGLONES3EDEBETENERENCUENTAENTONCES    In ELEMENTOS LOQUEESIGUALA

 I  I

SEGUNDOTÏRMINODELAFØRMULA

 5NAVEZENELRENGLØNIDESEADO SEDEBENCONTABILIZARLOSJn ELEMENTOSNECE SARIOSPARALLEGARALACOLUMNAJˆTERCERTÏRMINODELAFØRMULAˆ,ASUMADELOSTRES TÏRMINOSDETERMINALALOCALIZACIØNDELELEMENTOI JDELAMATRIZTRIANGULARINFERIOR EN UNARREGLOUNIDIMENSIONAL,AFØRMULAES ,/#  ! ; I J =  0/3).)

 I  I 

 J 

▼ &ØRMULA

!SÓ POREJEMPLO SISEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLO PRESENTADO EN LA lGURA A ALMACENADO EN UN ARREGLO UNIDIMENSIONAL APLICANDO LA FØRMULASETIENE     ,/#  ! ;   =         3I ENCAMBIO SEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLOPRE SENTADOENLAlGURAA ALAPLICARLAFØRMULASETIENE ,/#  ! ;  =  

    

    

 ."53*$&410$0%&/4"4

63

 -ATRIZTRIANGULARSUPERIOR 0ARAELCASODELAMATRIZTRIANGULARSUPERIORDELAlGURAB SISEALMACENAENUNARRE GLOUNIDIMENSIONAL"lG ÏSTETENDRÈ N      ELEMENTOS QUEESIGUALA N  N   3E REQUIERE ENTONCES DE UNA FØRMULA PARA LOCALIZAR LA POSICIØN DE UN ELEMENTO DEUNAMATRIZTRIANGULARSUPERIOR ENUNARREGLOUNIDIMENSIONAL!DIFERENCIADELCASO ANTERIORˆMATRIZTRIANGULARINFERIORˆ ELPROCESOESMÈSCOMPLICADO %NPRIMERLUGAR SEDEBECONSIDERARA0/3).) QUEREPRESENTALAPOSICIØNAPARTIR DELACUALSEENCUENTRAALMACENADOELARREGLOˆPRIMERTÏRMINODELAFØRMULAˆ%N SEGUNDOLUGAR SEDEBENCONTABILIZARLOSELEMENTOSNECESARIOSPARALLEGARAUNRENGLØN ICUALQUIERA ESTOES LOSELEMENTOSCORRESPONDIENTESALOSIn RENGLONESANTERIORES AI%STECÈLCULOSEPUEDEREALIZARENDOSPARTES0RIMEROSECONTABILIZANLOSELEMENTOS CORRESPONDIENTESAIn RENGLONESCOMPLETOSN In YLUEGOSERESTANAESTE RESULTADOLOSQUESONCEROSENLOSIn RENGLONESANTERIORESAI 3I I→TENEMOSCEROSENLOSRENGLONESANTERIORES I→TENEMOSCEROSENLOSRENGLONESANTERIORES I→TENEMOSCEROENLOSRENGLONESANTERIORES I→TENEMOS CEROSENLOSRENGLONESANTERIORES %NGENERAL PODEMOSAlRMARQUEPARAIn RENGLONESSETIENEN      In CEROS QUEESIGUALA

 I   I   ,AEXPRESIØNOBTENIDAENLAPRIMERAPARTEMENOSLAFØRMULAOBTENIDAENLASEGUNDA DACOMORESULTADOELSEGUNDOTÏRMINODELAFØRMULA

&)'52! !LMACENAMIENTODEUNA MATRIZTRIANGULARSUPERIOR ENUNARREGLOUNIDIMEN SIONAL

64

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4

N  I 

 I   I  

0OR ÞLTIMO Y UNA VEZ EN EL RENGLØN I DESEADO SE DEBEN CONTABILIZAR LOS J n I ELEMENTOSNECESARIOSPARALLEGARALACOLUMNAJˆTERCERTÏRMINODELAFØRMULAˆ,A SUMADELOSTRESTÏRMINOSINDICALALOCALIZACIØNDELELEMENTOI JDELAMATRIZTRIANGULAR SUPERIOR ENUNARREGLOUNIDIMENSIONAL,AFØRMULAESLASIGUIENTE ¥  I   I  ´ ,/#  ! ; I J =  0/3).) ¦ N  I  µ¶  J I  §

▼ &ØRMULA

!SÓ POREJEMPLO SISEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; = DELARREGLO PRESENTADOENLAlGURAB ENUNARREGLOUNIDIMENSIONAL SEREALIZALOSIGUIENTE ¥       ´ ,/# ;  =   ¦     µ¶       § 3I ENCAMBIO SEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLOPRE SENTADOENLAlGURAB ¥       ´ ,/#  ! ;   =   ¦     µ¶       §

%JEMPLO

3UPONGAMOSQUESETIENEUNAMATRIZTRIANGULARINFERIOR!CONLASIGUIENTEDIMENSIØN !; = ALMACENADA EN UN ARREGLO UNIDIMENSIONAL " A PARTIR DE LA POSICIØN  !NALICELOSSIGUIENTESCASOS A 3E NECESITA LA POSICIØN DONDE SE ENCUENTRA ALMACENADO EL ELEMENTO !; = 3E PROCEDEDEESTAFORMA ,/#  ! ;   =  

    

        

B 3ENECESITALAPOSICIØNDELELEMENTO!; =3EPROCEDEASÓ ,/#  ! ;  =  

%JEMPLO

    

        

3UPONGAMOSQUESETIENEUNAMATRIZTRIANGULARSUPERIOR!CONLASIGUIENTEDIMENSIØN !; = ALMACENADAENUNARREGLOUNIDIMENSIONAL"APARTIRDELAPOSICIØN !NALICELOSSIGUIENTESCASOS

 ."53*$&410$0%&/4"4

65

A 3ENECESITALAPOSICIØNDELELEMENTO!; =3EPROCEDEDEESTAFORMA

    ´ ¥ ,/#  ! ;  =   ¦    µ¶      §  B 3E NECESITA LA POSICIØN DONDE SE ENCUENTRA ALMACENADO EL ELEMENTO !; = 3E PROCEDEASÓ ¥       ´ ,/#  ! ;   =   ¦     µ¶      § 

 -ATRIZTRIDIAGONAL 3EDICEQUEUNAMATRIZESTRIDIAGONALSILOSELEMENTOSDISTINTOSDECEROSEENCUENTRAN LOCALIZADOSENLADIAGONALPRINCIPALYENLASDIAGONALESPORENCIMAYPORDEBAJODEÏSTA 0ORTANTO ELVALORABSOLUTODELÓNDICEIMENOSELÓNDICEJSERÈMENOROIGUALQUE%NLA lGURAELLECTORPUEDEOBSERVARUNAMATRIZTRIDIAGONAL 3UPONGAMOSQUESEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"lGURA LA MATRIZTRIDIAGONALPRESENTADAANTERIORMENTE %SFÈCILOBSERVARQUEELARREGLO!TIENENELEMENTOSENLADIAGONALPRINCIPALYN n ELEMENTOSENLASDIAGONALESPORENCIMAYDEBAJODEÏSTA0ORTANTO ELNÞMERODE ELEMENTOSDEUNAMATRIZTRIDIAGONALSECALCULACOMO N  Nn !LHACERLASOPERACIONESQUEDA  Nn #ONELPROPØSITODELOCALIZARLAPOSICIØNDEUNELEMENTODELAMATRIZTRIDIAGONAL ALMACENADAENUNARREGLOUNIDIMENSIONAL SEREQUIEREDEUNAFØRMULA%NPRIMERLUGAR SEDEBECONSIDERARA0/3).) QUEINDICALAPOSICIØNINICIAL APARTIRDELACUALSEEN CUENTRAALMACENADOELARREGLOˆPRIMERTÏRMINODELAFØRMULAˆ%NSEGUNDOLUGAR SE DEBENCONTABILIZARLOSELEMENTOSNECESARIOSPARALLEGARAUNRENGLØNICUALQUIERAESTO ES LOSELEMENTOSCORRESPONDIENTESALOSIn RENGLONESANTERIORES3ECALCULACOMOLA SUMADELOSELEMENTOSDELAPRIMERAlLA MÈSTRESELEMENTOSPORIn RENGLONES 0ORTANTO ELSEGUNDOTÏRMINODELAFØRMULAES   In

&)'52! -ATRIZTRIDIAGONAL

66

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4

&)'52! !LMACENAMIENTODEUNA MATRIZTRIDIAGONALENUN ARREGLOUNIDIMENSIONAL

0ORÞLTIMO YUNAVEZENELRENGLØNIDESEADO SEDEBENCONTABILIZARLOSELEMENTOS CORRESPONDIENTESALASCOLUMNAS#ONESTElNSESIGUEELSIGUIENTECRITERIO IJ→NOSETIENEQUECONTABILIZARNINGÞNELEMENTO IJ→SEDEBECONTABILIZARUNELEMENTO IJ→SETIENENQUECONTABILIZARDOSELEMENTOS #ONLOCUALSEOBTIENELASIGUIENTEEXPRESIØN JnI  TERCERTÏRMINODELAFØRMULA /BSERVEQUEESTAEXPRESIØNCONTEMPLALOSTRESCASOSENUNCIADOS3I IJ ALOSUMOLOSERÈENUNAUNIDADPORTANTO LAEXPRESIØNDACEROELEMENTOS IJ LOSMISMOSSEANULAN QUEDANDOUNELEMENTO IJ ALOSUMOLOSERÈENUNAUNIDADPORTANTO LAEXPRESIØNDADOSELEMENTOS .UEVAMENTELASUMADELOSTRESTÏRMINOSDALALOCALIZACIØNDELELEMENTOI JDELA MATRIZTRIDIAGONALENUNARREGLOUNIDIMENSIONAL0ORTANTO ,/#!;I J= 0/3).)   In JnI  OPERANDOQUEDA

,/#!;I J= 0/3).) I Jn

▼ &ØRMULA

!SÓ POREJEMPLO SISEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; = DELARREGLO PRESENTADOENLAlGURA ENUNARREGLOUNIDIMENSIONALSEHACE ,/#!; =    n 3I ENCAMBIO SEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLOPRE SENTADOENLAMISMAlGURA SEHACE ,/#!; =    n 3EDEBETENERENCUENTA ADEMÈS QUESIELRENGLØNQUESEEVALÞAESIGUALA SE PUEDEAPLICARLASIGUIENTEFØRMULA

 ."53*$&410$0%&/4"4

¥ ´ ,/# ¦ ! ¨©I J ·¸µ    J  § ª I  ¹¶

67

▼ &ØRMULA

%S IMPORTANTE ACLARAR QUE LA FØRMULA ANTERIOR  AUNQUE UN POCO MÈS LARGA TAMBIÏNFUNCIONAPARAESTECASO

%JEMPLO

3UPONGAMOSQUESETIENEUNAMATRIZTRIDIAGONAL!CONLADIMENSIØN!; = AL MACENADAENUNARREGLOUNIDIMENSIONAL"APARTIRDELAPOSICIØN!NALICEMOSLOS SIGUIENTESCASOS A 3ENECESITALAPOSICIØNDONDESEENCUENTRAELELEMENTO!; =3EPROCEDEASÓ ,/#; =    n B 3ISENECESITALAPOSICIØNDONDESEENCUENTRAELELEMENTO!; = SEPROCEDEDEESTA FORMA ,/#; =    n

 -ATRICESSIMÏTRICASYANTISIMÏTRICAS 5NAMATRIZ!DEN§NELEMENTOSESSIMÏTRICASI!;I J=ESIGUALA!;J I= YESTOÞLTIMOSE CUMPLEPARATODOIYPARATODOJ%NLAlGURASEPRESENTANDOSEJEMPLOSDEMATRICES SIMÏTRICAS 0OROTRAPARTE UNAMATRIZ!DEN§NELEMENTOSESANTISIMÏTRICASI!;I J=ESIGUAL An!;J I= YLOANTERIORSECUMPLEPARATODOIYPARATODOJCONSIDERANDOAI≠J%NLA lGURASEOBSERVANDOSEJEMPLOSDEMATRICESANTISIMÏTRICAS 3UPONGAMOSAHORAQUESEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"LAMA TRIZSIMÏTRICADELAlGURAA%STOÞLTIMOSEPUEDEHACERALALMACENARÞNICAMENTE LOSELEMENTOSDELAMATRIZTRIANGULARINFERIOROSUPERIOR%NLAlGURASEPRESENTAUN ARREGLOUNIDIMENSIONAL"QUEALMACENALAMATRIZTRIANGULARINFERIORDELAMATRIZSIMÏ TRICAMOSTRADAENLAlGURAA 0ARALOCALIZARCUALQUIERELEMENTODELAMATRIZSIMÏTRICASEDEBEAPLICARLAFØRMULA  PRESENTADAANTERIORMENTE PARAMATRIZTRIANGULARINFERIOR#ABEACLARARQUESIENUN &)'52! -ATRICESSIMÏTRICAS B -ATRIZSIMÏTRICA DE™ C -ATRIZSIMÏTRICA DE™

68

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4

&)'52! -ATRICESANTISIMÏTRICAS B -ATRIZANTISIMÏTRICA DE™ C -ATRIZANTISIMÏTRICA DE™

DETERMINADOMOMENTOSENECESITARALOCALIZARUNELEMENTODELAMATRIZSIMÏTRICATALQUE ELÓNDICEJSEAMAYORQUEELÓNDICEI SENECESITARÓANINVERTIRLOSMISMOSYAPLICARPOSTE RIORMENTELAMISMAFØRMULA0OREJEMPLO SISEDESEALOCALIZARELELEMENTO!; = SE TENDRÈQUEBUSCARELELEMENTO!; = 3IAHORASEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"LOSELEMENTOSDELA MATRIZANTISIMÏTRICADELAlGURAA SEPROCEDEDEMANERASIMILARQUEENELCASOAN TERIOR3EALMACENANENUNARREGLOUNIDIMENSIONALSOLAMENTELOSELEMENTOSDELAMATRIZ TRIANGULARINFERIOROSUPERIOR%NLAlGURASEPRESENTAUNARREGLOUNIDIMENSIONAL" QUEALMACENALAMATRIZTRIANGULARSUPERIORDELAMATRIZANTISIMÏTRICADELAlGURAA 0ARALOCALIZAR ENESTECASO UNELEMENTODELAMATRIZANTISIMÏTRICA SEDEBEAPLICAR LAFØRMULAPARAMATRIZTRIANGULARSUPERIOR%SIMPORTANTESE×ALARQUESISETUVIERA QUELOCALIZARUNELEMENTODELAMATRIZANTISIMÏTRICA TALQUEELÓNDICEISEAMAYORQUEEL ÓNDICEJ SENECESITARÓAINVERTIRLOSMISMOSYAPLICARLAMISMAFØRMULA0OSTERIORMENTE ELCONTENIDODELACELDAI JSEDEBEMULTIPLICARPORn0OREJEMPLO SINOSINTERESALOCA LIZARELELEMENTO!; = SEBUSCARÈLAPOSICIØNDELELEMENTO!; =YELCONTENIDODE DICHAPOSICIØNSEMULTIPLICARÈPORn

&)'52! !LMACENAMIENTODEUNA MATRIZSIMÏTRICAENUN ARREGLOUNIDIMENSIONAL

&)'52! !LMACENAMIENTODEUNA MATRIZANTISIMÏTRICAENUN ARREGLOUNIDIMENSIONAL

&+&3$*$*04

69

▼ %*%2#)#)/3 !RREGLOSMULTIDIMENSIONALES Ê £° #ONSIDEREQUEELARREGLOBIDIMENSIONAL!; =SEENCUENTRAALMACENADOREN GLØNPORRENGLØNENELARREGLOUNIDIMENSIONAL6%# APARTIRDELAPOSICIØN#ON SIDERE ADEMÈS QUE EL ARREGLO BIDIMENSIONAL "; = TAMBIÏN SE ENCUENTRA ALMACENADOENELARREGLO6%# COLUMNAACOLUMNA APARTIRDELAPOSICIØN #ALCULELOSIGUIENTE A B C D

,APOSICIØNDELELEMENTO!; =ENELARREGLO6%# ,APOSICIØNDELELEMENTO!; =ENELARREGLO6%# ,APOSICIØNDELELEMENTO"; =ENELARREGLO6%# ,APOSICIØNDELELEMENTO"; =ENELARREGLO6%#

Ê Ó° #ONSIDERE LOS ARREGLOS MULTIDIMENSIONALES !- Y "- DECLARADOS DE LA SIGUIENTE FORMA !-;  =Y"-;   = !-ESTÈALMACENADORENGLØNPORRENGLØNENELARREGLOUNIDIMENSIONAL6%!- A PARTIRDELAPRIMERAPOSICIØN"-ESTÈALMACENADO COLUMNAACOLUMNA ENELARRE GLOUNIDIMENSIONAL6%"- APARTIRDELAPOSICIØN#ALCULELOSIGUIENTE A B C D

,APOSICIØNDELELEMENTO!-;  =ENELARREGLO6%!- ,APOSICIØNDELELEMENTO!-;  =ENELARREGLO6%!- ,APOSICIØNDELELEMENTO"-;   =ENELARREGLO6%"- ,APOSICIØNDELELEMENTO"-;   =ENELARREGLO6%"-

Ê Î° #ONSIDEREMOSQUELOSARREGLOSBIDIMENSIONALES!Y"DEM§NELEMENTOSSEEN CUENTRANALMACENADOSENUNARREGLOUNIDIMENSIONAL6%#DE§M§NELEMENTOS !ESTÈALMACENADORENGLØNPORRENGLØNAPARTIRDELAPRIMERAPOSICIØN"ESTÈALMA CENADOCOLUMNAACOLUMNAAPARTIRDELAPOSICIØNM N %SCRIBAUNPROGRAMA QUEREALICELOSIGUIENTE A /BTENGALASUMADELOSARREGLOSBIDIMENSIONALESALMACENADOSEN6%#YALMACÏNE LAENELARREGLOUNIDIMENSIONAL35- ORDENADOPORRENGLONES APARTIRDELAPRIMERA POSICIØN B )MPRIMAELRESULTADODELASUMA ALMACENADOEN35- ENFORMADEMATRIZ Ê {° 3EANLOSARREGLOSBIDIMENSIONALES!Y"DEM§NYN§PELEMENTOS RESPECTIVA MENTE AMBOSALMACENADOSENUNARREGLOUNIDIMENSIONAL6%#!ESTÈALMACENADO RENGLØNPORRENGLØNAPARTIRDELAPOSICIØNY"TAMBIÏNSEENCUENTRAORDENADOPOR RENGLONESAPARTIRDELAPOSICIØNM N %SCRIBAUNPROCEDIMIENTOQUEREALICE LOSIGUIENTE

70

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 A /BTENGAELPRODUCTODELOSARREGLOSBIDIMENSIONALES!Y"ALMACENADOSEN6%#Y GUARDEELRESULTADOENELMISMOARREGLO COLUMNAACOLUMNA APARTIRDELAPOSICIØN M N N P  B )MPRIMAELRESULTADODELPRODUCTO ALMACENADOEN6%# ENFORMADEMATRIZ Ê x° 3EA#!,UNARREGLOBIDIMENSIONALDE§CORRESPONDIENTEALASCALIlCACIONES DEALUMNOSENSEISEXÈMENESDIFERENTES#!,SEENCUENTRAALMACENADORENGLØN PORRENGLØN APARTIRDELAPOSICIØN ENELARREGLOUNIDIMENSIONAL5.)%SCRIBA UNPROCEDIMIENTOQUEOBTENGALOSIGUIENTE A %LPROMEDIODECALIlCACIONESDELOSALUMNOSENLOSSEISEXÈMENES B %LALUMNOQUEOBTUVOLAMAYORCALIlCACIØNENELTERCEREXAMEN/BSERVEQUEPUE DEHABERMÈSDEUNALUMNOCONLAMÈSALTACALIlCACIØN C %LEXAMENENELQUEELPROMEDIODELOSALUMNOSFUEELMÈSALTO Ê È° #ONSIDEREELARREGLOTRIDIMENSIONAL!42)DEM§N§PELEMENTOSALMACENADOS COLUMNAACOLUMNA ENELARREGLOUNIDIMENSIONAL!5.)APARTIRDELAPRIMERAPOSI CIØN%SCRIBAUNPROCEDIMIENTOQUEIMPRIMALOSIGUIENTE A %LRENGLØNYLACOLUMNADONDESEENCUENTRANELEMENTOSNULOSUSTEDDEBETRABAJAR CONELARREGLO!5.)  B %LTOTALDEELEMENTOSNULOS C %LPORCENTAJEDEELEMENTOSNULOS CONRESPECTOALNÞMEROTOTALDEELEMENTOSDEL ARREGLOTRIDIMENSIONAL Ê Ç° ,OSELEMENTOSDEUNARREGLOBIDIMENSIONALDE§ELEMENTOSSEALMACENARON REN GLØNPORRENGLØN ENUNARREGLOUNIDIMENSIONAL!%SCRIBAUNSUBPROGRAMAQUE A )NTERCAMBIELOSELEMENTOSDELRENGLØNCONLOSDELRENGLØN.YLOSDELRENGLØN CONLOSDELRENGLØN.n YASÓSUCESIVAMENTE B )MPRIMAELARREGLORESULTANTE ENFORMADEMATRIZ

-ATRICESPOCODENSAS Ê n° 3EA6%#UNARREGLOUNIDIMENSIONALQUEALMACENALOSELEMENTOSDISTINTOSDECERO DEUNAMATRIZPOCODENSA!DECUATRORENGLONESYSEISCOLUMNAS#ADAELEMENTODEL ARREGLO6%#ESUNREGISTROQUECONTIENEELRENGLØN LACOLUMNAYELVALORDISTINTODE CERODELAMATRIZ%SCRIBASUBPROGRAMASQUEREALICENLOSIGUIENTE A $ETERMINEELVALORDELELEMENTOI JDELAMATRIZ4OMEENCUENTAQUELABÞSQUEDAA REALIZARENELARREGLO6%#DEBESERØPTIMA B )MPRIMALAMATRIZPOCODENSA! APARTIRDELARREGLO6%#

&+&3$*$*04

71

Ê ™° 3UPONGAMOSQUEEXISTENDOSMATRICESPOCODENSAS!Y"DE§ELEMENTOS QUE TIENENALMACENADOSSUSVALORESDISTINTOSDECEROENLOSARREGLOSUNIDIMENSIONALES 6%#Y6%# RESPECTIVAMENTE%JEMPLO

%SCRIBAUNSUBPROGRAMAQUEOBTENGALASUMADEDICHASMATRICESPOCODENSAS UTI LIZANDOSOLAMENTELOSARREGLOS6%#Y6%# YALMACENEELRESULTADOˆCONSIDERE SOLAMENTELOSELEMENTOSDISTINTOSDECEROˆENELARREGLOUNIDIMENSIONAL6%# £ä°#ONSIDERELASMATRICESPOCODENSAS!Y" DECLARADASDELASIGUIENTEFORMA !; =Y"; = !SEENCUENTRAALMACENADAENELARREGLOUNIDIMENSIONAL6%#Y"ENELARREGLO UNIDIMENSIONAL6%# %SCRIBA UN SUBPROGRAMA QUE OBTENGA EL PRODUCTO DE ! Y "ˆUTILIZANDOSOLAMENTELOSARREGLOS6%#Y6%#ˆYALMACENEELRESULTADO COLUMNAACOLUMNA ENELARREGLOUNIDIMENSIONAL6%#

72

>«‰ÌՏœÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 ££°3ETIENENLOSDATOSDELAPRODUCCIØNAGRÓCOLA PORTIPODECULTIVOˆENTOTALˆ DE LASENTIDADESDELPAÓS.OTODOSLOSESTADOSTIENENTODOSLOSCULTIVOS%NAQUELLOS CASOSENLOSCUALESUNESTADONOCULTIVACIERTOSPRODUCTOS HABRÈCEROSENLASPOSI CIONESCORRESPONDIENTES%SCRIBAUNPROGRAMAQUE A !LMACENELOSDATOSDIFERENTESDECERO ENUNARREGLOUNIDIMENSIONAL B %NCUENTREELESTADOQUEOBTUVOMAYORPRODUCCIØNAGRÓCOLA CONSIDERANDOTODOSLOS CULTIVOS C %NCUENTREELPRODUCTO SIEXISTIERA QUESECULTIVAENTODOSLOSESTADOS D %NCUENTREELESTADO SIEXISTIERA QUECULTIVATODOSLOSPRODUCTOS E %NCUENTREELESTADO SIEXISTIERA QUECULTIVASØLOLOSCULTIVOSDETIPOSY £Ó°,ASMATRICESCUADRADASPOCODENSAS!Y"DEORDENFUERONALMACENADASENEL ARREGLOUNIDIMENSIONAL5.)APARTIRDELAPRIMERAYDECIMOPRIMERAPOSICIØN EN FORMARESPECTIVA$ELAMATRIZ!SOLAMENTESEALMACENARONLOSELEMENTOSCORRES PONDIENTESALAMATRIZTRIANGULARINFERIOR$ELAMATRIZ" ENCAMBIO SEALMACENA RONSØLOLOSELEMENTOSDELAMATRIZTRIANGULARSUPERIOR%SCRIBAUNSUBPROGRAMAQUE SUMEDICHASMATRICESYALMACENEELRESULTADO COLUMNAACOLUMNA ENELARREGLO UNIDIMENSIONAL35-!APARTIRDELAPRIMERAPOSICIØN

-ATRICESSIMÏTRICASYANTISIMÏTRICAS £Î°,ASMATRICESSIMÏTRICAS!Y"DEDIMENSIØNFUERONALMACENADASENUNARREGLO UNIDIMENSIONAL6%# A PARTIR DE LAS POSICIONES  Y  RESPECTIVAMENTE 3ØLO SE ALMACENARONLOSELEMENTOSPERTENECIENTESALAMATRIZTRIANGULARINFERIOR%SCRIBA UN SUBPROGRAMA QUE SUME DICHAS MATRICES Y ALMACENE EL RESULTADO RENGLØN POR RENGLØN ENELARREGLO35-3)-APARTIRDELAPOSICIØN £{°,A MATRIZ SIMÏTRICA ! DE DIMENSIØN  Y LA MATRIZ ANTISIMÏTRICA " DE LA MISMA DIMENSIØN FUERONALMACENADASENELARREGLOUNIDIMENSIONAL6%#APARTIRDELAS POSICIONESY RESPECTIVAMENTE$ELAMATRIZ!SOLAMENTESEALMACENARONLOS ELEMENTOSCORRESPONDIENTESALAMATRIZTRIANGULARINFERIOR$ELAMATRIZ"SØLOSE ALMACENARONLOSELEMENTOSDELAMATRIZTRIANGULARSUPERIOR%SCRIBAUNSUBPROGRA MAQUEOBTENGALASUMADEDICHASMATRICESYALMACENEELRESULTADO RENGLØNPOR RENGLØN ENELARREGLOUNIDIMENSIONAL35-!APARTIRDELAPRIMERAPOSICIØN £x°5NAPERSONATIENEQUEVIAJARDEUNACIUDADAOTRA VÓATERRESTRE ENLA2EPÞBLICA MEXICANAYDESEAREALIZARELRECORRIDOENELMENORTIEMPOPOSIBLE,OSDATOSREFE RENTESALOSTIEMPOSENTRECIUDADESSEENCUENTRANDADOSDELASIGUIENTEFORMA

&+&3$*$*04

73

0UEDESUCEDERQUEENTREDOSCIUDADESNOEXISTAUNACARRETERADIRECTAY PORTAN TO ELTIEMPOENTREAMBASSEAREPRESENTADOCOMO3INEMBARGO ESPOSIBLELLEGARA UNACIUDADINTERMEDIAYDESDEAHÓTRASLADARSEHASTALACIUDADDESTINO0OREJEMPLO SIDELACIUDADALANOHAYCARRETERADIRECTA SEPODRÓAIRPRIMEROALACIUDAD ˆSIEXISTECARRETERAENTRELAYLAˆYLUEGODELACIUDADALAˆSIENTREELLAS EXISTENCARRETERASˆ%SCRIBAUNPROGRAMAQUEREALICELOSIGUIENTE A ,EALOSTIEMPOSENTRELASDISTINTASCIUDADESYLASALMACENEENUNARREGLOUNIDIMEN SIONAL B ,EALACIUDADORIGENYLACIUDADDESTINO C $ETERMINEELMENORTIEMPODETRASLADOENTREDICHASCIUDADES D 0RESENTELARUTAASEGUIR £È°3ETIENEINFORMACIØNSOBRECOSTOSDEBOLETOSAÏREOSENTRE.CIUDADESDELPAÓS%L COSTODELBOLETOPARAIRDELACIUDADIALACIUDADJESIGUALALCOSTODELBOLETOPARA IRDELACIUDADJALAI0ORTANTO SEPUEDEAHORRARESPACIODEMEMORIAˆRECUERDE LOVISTOSOBREMATRICESSIMÏTRICASˆUTILIZANDOUNARREGLOUNIDIMENSIONALPARAAL MACENARTODOSLOSCOSTOS%SCRIBAUNPROGRAMAQUE A ,EAELNÞMERODECIUDADES B ,EALOSCOSTOSYLOSALMACENEUSANDOUNARREGLOUNIDIMENSIONAL C $ADOELNÞMERODEUNACIUDADORIGENYDEUNACIUDADDESTINO IMPRIMAELCOSTODEL BOLETOCORRESPONDIENTE D $ADOELNÞMERODEUNACIUDAD IMPRIMALOSNÞMEROSDETODASLASCIUDADESALASQUE HAYVUELO PARTIENDODELACIUDADESPECÓlCA

#APÓTULO

Î

0),!39 #/,!3  ).42/$5##)¼. #UANDOSEPRESENTARONLOSARREGLOS ENELCAPÓTULO SEMENCIONØQUEERANESTRUCTURAS LINEALES%SDECIR CADACOMPONENTETIENEUNÞNICOSUCESORYUNÞNICOPREDECESORCON EXCEPCIØNDELPRIMEROYDELÞLTIMO RESPECTIVAMENTE0OROTRAPARTE ALANALIZARLASOPE RACIONESDEINSERCIØNYELIMINACIØN SEOBSERVØQUELOSELEMENTOSSEPODÓANINSERTARO ELIMINARENCUALQUIERPOSICIØNDELARREGLO#ABESE×ALAR SINEMBARGO QUEEXISTENPRO BLEMASQUEPORSUNATURALEZAREQUIERENQUELOSELEMENTOSSEAGREGUENOSEQUITENSØLO PORUNEXTREMO%STECAPÓTULOSEDEDICAALESTUDIODEPILASYCOLAS QUESONESTRUCTURAS DEDATOSLINEALESCONRESTRICCIONESENCUANTOALAPOSICIØNENLACUALSEPUEDENLLEVARA CABOLASOPERACIONESDEINSERCIØNYELIMINACIØNDECOMPONENTES

 0),!3 5NAPILAREPRESENTAUNAESTRUCTURALINEALDEDATOSENLAQUESEPUEDEAGREGAROQUITAR ELEMENTOSÞNICAMENTEPORUNODELOSDOSEXTREMOS%NCONSECUENCIA LOSELEMENTOSDE UNAPILASEELIMINANENORDENINVERSOALQUESEINSERTARONESDECIR ELÞLTIMOELEMENTO QUESEMETEENLAPILAESELPRIMEROQUESESACA$EBIDOAESTACARACTERÓSTICA SELECO NOCECOMOESTRUCTURA,)&/,AST )NPUT &IRST /UTPUTELÞLTIMOENENTRARESELPRIMERO ENSALIR  %XISTEN NUMEROSOS CASOS PRÈCTICOS EN LOS QUE SE UTILIZA EL CONCEPTO DE PILA POR EJEMPLO UNAPILADEPLATOS UNAPILADELATASENUNSUPERMERCADO UNAPILADELIBROSQUE SEEXHIBENENUNALIBRERÓA ETCÏTERA%NLAlGURASEOBSERVAUNAPILADEPLATOS%SDE SUPONERQUESIELCOCINERONECESITAUNPLATOLIMPIO TOMARÈELQUEESTÈENCIMADETODOS QUEESELÞLTIMOQUESECOLOCØENLAPILA ,ASPILASSONESTRUCTURASDEDATOSLINEALES COMOLOSARREGLOS YAQUELOSCOMPO NENTESOCUPANLUGARESSUCESIVOSENLAESTRUCTURAYCADAUNODEELLOSTIENEUNÞNICOSUCE SORYUNÞNICOPREDECESOR CONEXCEPCIØNDELÞLTIMOYDELPRIMERO RESPECTIVAMENTE 5NAPILASEDElNEFORMALMENTECOMOUNACOLECCIØNDEDATOSALOSCUALESSEPUEDE ACCEDERMEDIANTEUNEXTREMO QUESECONOCEGENERALMENTECOMOTOPE

76

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

&)'52! %JEMPLOSPRÉCTICOSDEPILAS

 2EPRESENTACIØNDEPILAS ,ASPILASNOSONESTRUCTURASFUNDAMENTALESDEDATOSESDECIR NOESTÈNDElNIDASCOMO TALESENLOSLENGUAJESDEPROGRAMACIØN0ARASUREPRESENTACIØNREQUIERENELUSODEOTRAS ESTRUCTURASDEDATOS COMO ◗ ◗

!RREGLOS ,ISTAS

%NESTELIBROSEUTILIZARÈNARREGLOS%NCONSECUENCIA ESIMPORTANTEDElNIRELTAMA ×OMÈXIMODELAPILA ASÓCOMOUNAVARIABLEAUXILIARALAQUESEDENOMINA4/0%%STA VARIABLESEUTILIZAPARAINDICARELÞLTIMOELEMENTOQUESEINSERTØENLAPILA%NLAlGURA SEPRESENTANDOSALTERNATIVASDEREPRESENTACIØNDEUNAPILA UTILIZANDOARREGLOS

&)'52! 2EPRESENTACIØNDEPILAS

 1*-"4

77

&)'52! 2EPRESENTACIØNDEPILAS A 0ILALLENAB 0ILACON ALGUNOSELEMENTOSC 0ILA VACÓA

%NLAlGURASEPRESENTANEJEMPLOSDEA PILALLENA B PILACONALGUNOSELEMEN TOSYC PILAVACÓA !L UTILIZAR ARREGLOS PARA IMPLEMENTAR PILAS SE TIENE LA LIMITACIØN DE QUE SE DEBE RESERVARESPACIODEMEMORIACONANTICIPACIØN CARACTERÓSTICAPROPIADELOSARREGLOS5NA VEZDADOUNMÈXIMODECAPACIDADALAPILANOESPOSIBLEINSERTARUNNÞMERODEELEMEN TOSMAYORALMÈXIMOESTABLECIDO3ILAPILAESTUVIERALLENAYSEINTENTARAINSERTARUN NUEVOELEMENTO SEPRODUCIRÈUNERRORCONOCIDOCOMODESBORDAMIENTOˆOVERmOWˆ 0OREJEMPLO SIENLAPILAQUESEPRESENTAENLAlGURAA DONDE4/0%-!8 SE QUISIERAINSERTARUNNUEVOELEMENTO SEPRODUCIRÈUNERRORDEESTETIPO,APILAESTÈLLENA YELESPACIODEMEMORIARESERVADOESlJO NOSEPUEDEEXPANDIRNICONTRAER 5NAPOSIBLESOLUCIØNAESTETIPODEINCONVENIENTESCONSISTEENDElNIRPILASDEGRAN TAMA×O PEROESTOÞLTIMORESULTARÓAINElCIENTEYCOSTOSOSISØLOSEUTILIZARANALGUNOS ELEMENTOS.OSIEMPREESVIABLESABERCONEXACTITUDCUÈLESELNÞMERODEELEMENTOSA TRATARPORTANTO SIEMPREEXISTELAPOSIBILIDADDECOMETERUNERRORDEDESBORDAMIENTO ˆSISERESERVAMENOSESPACIODELQUEEFECTIVAMENTESEUSARȈOBIENDEHACERUSOINE lCIENTEDELAMEMORIAˆSISERESERVAMÈSESPACIODELQUEREALMENTESENECESITAˆ %XISTEOTRAALTERNATIVADESOLUCIØNAESTEPROBLEMA#ONSISTEENUSARESPACIOSCOM PARTIDOSDEMEMORIAPARALAIMPLEMENTACIØNDEPILAS3UPONGAMOSQUESENECESITAN DOSPILAS CADAUNADEELLASCONUNTAMA×OMÈXIMODE.ELEMENTOS3EDElNIRÈENTON CESUNSOLOARREGLOUNIDIMENSIONALDE .ELEMENTOS ENLUGARDEDOSARREGLOSDE. ELEMENTOSCADAUNO #OMOSEILUSTRAENLAlGURA LA0),!OCUPARÈDESDELAPOSICIØNENADELANTE    MIENTRASQUELA0),!OCUPARÈDESDELAPOSICIØN .HACIAATRÈS .n  .n  3IENALGÞNPUNTODELPROCESOLA0),!NECESITARAMÈSESPACIODELQUE REALMENTETIENEˆ.ˆYENESEMOMENTOLA0),!NOTUVIERAOCUPADOSSUS.LUGARES ENTONCESSERÓAPOSIBLEAGREGARELEMENTOSALA0),!SINCAERENUNERRORDEDESBORDA MIENTOlGURA !LGOSIMILARPODRÓASUCEDERPARALA0),! SIÏSTANECESITARAMÈSDE .ESPACIOSYLA0),!TUVIERALUGARESDISPONIBLESlGURAB 

78

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

&)'52! 2EPRESENTACIØNDEPILASEN ESPACIOSCOMPARTIDOS

/TROERRORQUESEPUEDEPRESENTARALTRABAJARCONPILASESTRATARDEELIMINARUNELE MENTODEUNAPILAVACÓA%STETIPODEERRORSECONOCECØMOSUBDESBORDAMIENTOˆUN DERmOWˆ0OREJEMPLO SIENLAPILAQUESEPRESENTAENLAlGURAC DONDE4/0% SEDESEARAELIMINARUNELEMENTO SEPRESENTARÓAUNERRORDEESTETIPO

 /PERACIONESCONPILAS ,ADElNICIØNDEUNAESTRUCTURADEDATOSQUEDACOMPLETAALINCLUIRLASOPERACIONESQUESE PUEDENREALIZARENELLA0ARAELCASODELASPILAS LASOPERACIONESBÈSICASQUESEPUEDEN LLEVARACABOSON ◗ ◗

&)'52! 2EPRESENTACIØNDEPILAS ENESPACIOSCOMPARTIDOS A 0),!TIENEMÉSDE. ELEMENTOSY0),!TIENE MENOSDE.ELEMENTOS B 0),!TIENEMÉSDE. ELEMENTOSY0),!TIENE MENOSDE.ELEMENTOS

)NSERTARUNELEMENTOˆ0USHˆENLAPILA %LIMINARUNELEMENTOˆ0OPˆDELAPILA

 1*-"4

79

9LASOPERACIONESAUXILIARES ◗ ◗

0ILA?VACÓA 0ILA?LLENA

#ONSIDERANDOQUESETIENEUNAPILACONCAPACIDADPARAALMACENARUNNÞMEROMÈXI MODEELEMENTOSˆ-!8ˆ YQUEELÞLTIMODEELLOSSEINDICACON4/0% ACONTINUA CIØNSEPRESENTANLOSALGORITMOSCORRESPONDIENTESALASOPERACIONESMENCIONADAS3ILA PILAESTÈVACÓA ENTONCES4/0%ESIGUALA !LGORITMO 0ILA?VACÓA

0ILA?VACÓA0),! 4/0% "!.$ [%STEALGORITMOVERIlCASIUNAESTRUCTURATIPOPILAˆ0),!ˆESTÈVACÓA ASIGNANDOA"!.$EL VALORDEVERDADCORRESPONDIENTE,APILASEIMPLEMENTAENUNARREGLOUNIDIMENSIONAL4/0% ESUNPARÈMETRODETIPOENTERO"!.$ESUNPARÈMETRODETIPOBOOLEANO]  3I4/0% [6ERIlCASINOHAYELEMENTOSALMACENADOSENLAPILA] ENTONCES (ACER"!.$←6%2$!$%2/[,APILAESTÈVACÓA] SINO (ACER"!.$←&!,3/[,APILANOESTÈVACÓA]  [&INDELCONDICIONALDELPASO]

!LGORITMO 0ILA?LLENA

0ILA?LLENA0),! 4/0% -!8 "!.$ [%STEALGORITMOVERIlCASIUNAESTRUCTURATIPOPILAˆ0),!ˆESTÈLLENA ASIGNANDOA"!.$EL VALORDEVERDADCORRESPONDIENTE,APILASEIMPLEMENTAENUNARREGLOUNIDIMENSIONALDE-!8 ELEMENTOS4/0%ESUNPARÈMETRODETIPOENTERO"!.$ESUNPARÈMETRODETIPOBOOLEANO]  3I4/0%-!8 ENTONCES (ACER"!.$←6%2$!$%2/[,APILAESTÈLLENA] SINO (ACER"!.$←&!,3/[,APILANOESTÈLLENA]  [&INDELCONDICIONALDELPASO]

80

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 !LGORITMO 0ONE

0ONE0),! 4/0% -!8 $!4/ [%STEALGORITMOAGREGAELELEMENTO$!4/ENUNAESTRUCTURATIPOPILAˆ0),!ˆ SILAMISMA NOESTÈLLENA!CTUALIZAELVALORDE4/0%-!8REPRESENTAELNÞMEROMÈXIMODEELEMENTOS QUEPUEDEALMACENAR0),!4/0%ESUNPARÈMETRODETIPOENTERO]  ,LAMARA0ILA?LLENACON0),! 4/0% -!8Y"!.$  3I"!.$6%2$!$%2/ ENTONCES %SCRIBIRh$ESBORDAMIENTOn0ILALLENAv SINO (ACER4/0%←4/0% Y0),!;4/0%=←$!4/ [!CTUALIZA4/0%EINSERTAELNUEVOELEMENTOENEL4/0%DE0),!]  [&INDELCONDICIONALDELPASO]

!LGORITMO 1UITA 1UITA0),! 4/0% $!4/ [%STEALGORITMOSACAUNELEMENTOˆ$!4/ˆDEUNAESTRUCTURATIPOPILAˆ0),!ˆ SIÏSTANO SEENCUENTRAVACÓA%LELEMENTOQUESEELIMINAESELQUESEENCUENTRAENLAPOSICIØNINDICADA POR4/0%]  ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$  3I"!.$6%2$!$%2/ ENTONCES %SCRIBIRh3UBDESBORDAMIENTOn0ILAVACÓAv SINO (ACER$!4/←0),!;4/0%=Y4/0%←4/0%n[!CTUALIZA4/0%]  [&INDELCONDICIONALDELPASO]

!CONTINUACIØNSEPRESENTAUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODELASOPE RACIONESDEINSERCIØNYELIMINACIØNENPILAS

%JEMPLO

3ISEINSERTARANLOSELEMENTOSLUNES MARTES MIÏRCOLES JUEVESYVIERNESEN0),! LA ESTRUCTURAQUEDARÓATALYCOMOSEMUESTRAENLAlGURAA!HORABIEN SISEELIMINARA ELELEMENTOVIERNES EL4/0%APUNTARÓAAHORAAJUEVESlGB  3IENALGÞNMOMENTOSEQUISIERAELIMINARALELEMENTOMARTES ESTONOSERÓAPOSIBLE YAQUESØLOSEPUEDETENERACCESOALELEMENTOQUESEENCUENTRAENLACIMADELAPILA

 1*-"4

81

&)'52! )NSERCIØNYELIMINACIØN ENPILAS

5NAFORMADERESOLVERESTEPROBLEMAESELIMINARPRIMERAMENTELOSELEMENTOSJUEVESY MIÏRCOLES DEESTAMANERAMARTESQUEDARÓAUBICADOENLACIMADE0),!YAHORASERÓA POSIBLEEXTRAERLOlGURASA BYC 

 !PLICACIONESDEPILAS ,AS PILAS SON UNA ESTRUCTURA DE DATOS MUY USADA EN LA SOLUCIØN DE DIVERSOS TIPOS DE PROBLEMAS ENELÈREADELACOMPUTACIØN!HORASEANALIZARÈNALGUNOSDELOSCASOSMÈS REPRESENTATIVOSDEAPLICACIØNDELASMISMAS &)'52! )NSERCIØNYELIMINACIØN A ,UEGODESACARJUEVES B ,UEGODESACARMIÏR COLESC ,UEGODESACAR MARTES

82

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 ◗ ◗ ◗ ◗

,LAMADASASUBPROGRAMAS 2ECURSIVIDAD 4RATAMIENTODEEXPRESIONESARITMÏTICAS /RDENACIØN

,LAMADASASUBPROGRAMAS #UANDO SE TIENE UN PROGRAMA QUE LLAMA A UN SUBPROGRAMA TAMBIÏN CONOCIDO COMO MØDULOOFUNCIØN INTERNAMENTESEUSANPILASPARAGUARDARELESTADODELASVARIABLES DELPROGRAMA ASÓCOMOLASINSTRUCCIONESPENDIENTESDEEJECUCIØNENELMOMENTOQUESE HACELALLAMADA#UANDOTERMINALAEJECUCIØNDELSUBPROGRAMA LOSVALORESALMACENADOS ENLAPILASERECUPERANPARACONTINUARCONLAEJECUCIØNDELPROGRAMAENELPUNTOENEL CUALFUEINTERRUMPIDO!DEMÈSDELASVARIABLESSERECUPERALADIRECCIØNDELPROGRAMAEN LAQUESEHIZOLALLAMADA PORQUEAESAPOSICIØNSEREGRESAELCONTROLDELPROCESO 3UPONGAMOS POREJEMPLO QUESETIENEUNPROGRAMAPRINCIPAL00 QUELLAMAA LOSSUBPROGRAMAS5./Y$/3!SUVEZ ELSUBPROGRAMA$/3LLAMAAL42%3#ADA VEZQUELAEJECUCIØNDEUNODELOSSUBPROGRAMASCONCLUYE SEREGRESAELCONTROLALNIVEL INMEDIATOSUPERIORlG  #UANDOELPROGRAMA00LLAMAA5./ SEGUARDAENUNAPILALAPOSICIØNENLAQUE SEHIZOLALLAMADAlGA !LTERMINAR5./ ELCONTROLSEREGRESAA00RECUPERANDO PREVIAMENTELADIRECCIØNDELAPILAlGB !LLLAMARA$/3 NUEVAMENTESEGUARDA LADIRECCIØNDE00ENLAPILAlGC #UANDO$/3LLAMAA42%3 SEPONEENLAPILA LADIRECCIØNDE$/3lGD $ESPUÏSDEPROCESAR42%3 SERECUPERALAPOSICIØNDE $/3PARACONTINUARCONSUEJECUCIØNlGE !LTERMINAR$/3SEREGRESAELCONTROL A00 OBTENIENDOPREVIAMENTELADIRECCIØNGUARDADAENLAPILAlGF  &INALMENTEPODEMOSCONCLUIRQUELASPILASSONNECESARIASENESTETIPODEAPLICACIO NESPORLOSIGUIENTE

&)'52! ,LAMADAASUBPROGRAMAS

 1*-"4

83

&)'52! !PLICACIØNDEPILASLLAMA DASASUBPROGRAMAS

◗ ◗

0ERMITENGUARDARLADIRECCIØNDELPROGRAMA OSUBPROGRAMA DESDEDONDESEHIZOLA LLAMADAAOTROSSUBPROGRAMAS PARAREGRESARPOSTERIORMENTEYSEGUIREJECUTÈNDOLOA PARTIRDELAINSTRUCCIØNINMEDIATAALALLAMADA 0ERMITENGUARDARELESTADODELASVARIABLESENELMOMENTOENQUESEHACELALLAMA DA PARASEGUIROCUPÈNDOLASALREGRESARDELSUBPROGRAMA

2ECURSIVIDAD %LCAPÓTULOESTÈDEDICADOALESTUDIODELARECURSIVIDAD3EDEJARÈPARAENTONCESLAAPLI CACIØNDEPILASENPROCESOSRECURSIVOS

4RATAMIENTODEEXPRESIONESARITMÏTICAS 5NPROBLEMAINTERESANTEENCOMPUTACIØNCONSISTEENCONVERTIREXPRESIONESENNOTACIØN INlJAASUEQUIVALENTEENNOTACIØNPRElJAOPOSlJAOPRElJA3EPRESENTAPRIMEROUNA BREVEINTRODUCCIØNAESTOSCONCEPTOS ◗

$ADALAEXPRESIØN! "SEDICEQUEÏSTASEENCUENTRAENNOTACIØNINlJA PORQUEEL OPERADOR SEENCUENTRAENTRELOSOPERANDOS!Y" 

84

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 ◗ ◗

$ADALAEXPRESIØN!" SEDICEQUEÏSTASEENCUENTRAENNOTACIØNPOSTlJA PORQUE ELOPERADOR SEENCUENTRADESPUÏSDELOSOPERANDOS!Y"  $ADALAEXPRESIØN !"SEDICEQUEÏSTASEENCUENTRAENNOTACIØNPRElJA PORQUEEL OPERADOR ESTÈPRECEDIENDOALOSOPERANDOS!Y" 

,AVENTAJADEUSAREXPRESIONESENNOTACIØNPOSTlJAOPRElJARADICAENQUENOSON NECESARIOSLOSPARÏNTESISPARAINDICARORDENDEOPERACIØN YAQUEÏSTEQUEDAESTABLECIDA PORLAUBICACIØNDELOSOPERADORESCONRESPECTOALOSOPERANDOS 0ARACONVERTIRUNAEXPRESIØNDADAENNOTACIØNINlJAAUNAENNOTACIØNPOSTlJAO PRElJASEESTABLECENPRIMEROCIERTASCONDICIONES ◗

3OLAMENTESEMANEJARÈNLOSSIGUIENTESOPERADORESˆSEPRESENTANDEMAYORAME NORSEGÞNSEASUPRIORIDADDEEJECUCIØNˆ /PERADOR >

◗ ◗ ◗

.OMBREDELAOPERACIØN 0OTENCIA



-ULTIPLICACIØNYDIVISIØN

n

3UMAYRESTA

,OSOPERADORESDEMÈSALTAPRIORIDADSEEJECUTANPRIMERO 3IHUBIERAENUNAEXPRESIØNDOSOMÈSOPERADORESDEIGUALPRIORIDAD ENTONCESSE PROCESARÈNDEIZQUIERDAADERECHA ,ASSUBEXPRESIONESQUESEENCUENTRANENTREPARÏNTESISTENDRÈNMÈSPRIORIDADQUE CUALQUIEROPERADOR

3EPRESENTANACONTINUACIØN PASOAPASO ALGUNOSEJEMPLOSDECONVERSIØNDEEXPRE SIONESINlJASANOTACIØNPOSlJA

%JEMPLO

%NESTEEJEMPLOSEEXPONENDOSCASOSDETRADUCCIØNDENOTACIØNINlJAAPOSlJA%LPRI MERODEELLOSESUNAEXPRESIØNSIMPLE MIENTRASQUEELSEGUNDOPRESENTAMAYORGRADODE COMPLEJIDAD%NLATABLASEMUESTRANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØN DELAPRIMERAEXPRESIØN YENLATABLALOSCORRESPONDIENTESALASEGUNDAEXPRESIØN A %XPRESIØNINlJA8 : 7 %XPRESIØNPOSlJA8:7 %LPRIMEROPERADORQUESEPROCESADURANTELATRADUCCIØNDELAEXPRESIØNESLAMUL TIPLICACIØN PASO DEBIDOAQUEESELDEMÈSALTAPRIORIDAD3ECOLOCAELOPERADORDE

4!",! 4RADUCCIØNDEINlJA APOSlJA

EVhd

:megZh^‹c



8 : 7



8 :7



8:7

 1*-"4

85

TALMANERAQUELOSOPERANDOSAFECTADOSPORÏLLOPRECEDAN0ARAELOPERADORDESUMASE SIGUEELMISMOCRITERIO LOSDOSOPERANDOSLOPRECEDEN%NESTECASOELPRIMEROPERANDO ES8YELSEGUNDOES:7  B %XPRESIØNINlJA8 : 74>9n6 %XPRESIØNPOSTlJA8: 7 49>6n 4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPOSlJA

0ASO

%XPRESIØN



8 : 74>9n6



8: 74>9n6



8: 749>n6



8: 7 49>n6



8: 7 49>n6



8: 7 49>6n

%NELPASOSECONVIERTELASUBEXPRESIØNQUESEENCUENTRAENTREPARÏNTESISPORSER LADEMÈSALTAPRIORIDAD,UEGOSESIGUECONELOPERADORDEPOTENCIA PASO YASÓCON LOSDEMÈS SEGÞNSUJERARQUÓA#OMOCONSECUENCIADEQUELAMULTIPLICACIØNYLADIVI SIØNTIENENIGUALPRIORIDAD SEPROCESAPRIMEROLAMULTIPLICACIØNPORENCONTRARSEMÈSA LAIZQUIERDAENLAEXPRESIØN PASO%LOPERADORDELARESTAESELÞLTIMOQUESEMUEVE PASO!CONTINUACIØNSEPRESENTAELALGORITMOQUETRADUCEUNAEXPRESIØNINlJAAOTRA POSlJA !LGORITMO #ONV?POSTlJA #ONV?POSTlJA%) %0/3 [%STEALGORITMOTRADUCEUNAEXPRESIØNINlJAˆ%)ˆAPOSTlJAˆ%0/3ˆ HACIENDOUSODE UNAPILAˆ0),!ˆ-!8ESELNÞMEROMÈXIMODEELEMENTOSQUEPUEDEALMACENARLAPILA]  (ACER4/0%←  -IENTRAS%)SEADIFERENTEDELACADENAVACÓA 2EPETIR 4OMARELSÓMBOLOMÈSALAIZQUIERDADE%)2ECORTARLUEGOLAEXPRESIØN  3IELSÓMBOLOESPARÏNTESISIZQUIERDO ENTONCES[0ONERSÓMBOLOEN0),!3EASUMEQUEHAYESPACIOEN0),!] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO SINO  3IELSÓMBOLOESPARÏNTESISDERECHO ENTONCES  -IENTRAS0),!;4/0%=≠PARÏNTESISIZQUIERDO 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%0/3←%0/3 $!4/

86

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

 [&INDELCICLODELPASO] ,LAMARA1UITACON0),! 4/0%Y$!4/ [3EQUITAELPARÏNTESISIZQUIERDODE0),!YNOSEAGREGA A%0/3] SINO  3IELSÓMBOLOESUNOPERANDO ENTONCES !GREGARSÓMBOLOA%0/3 SINO[%SUNOPERADOR] ,LAMAR0ILA?VACÓACON0),! 4/0%Y"!.$ ! -IENTRAS"!.$&!,3/ YLAPRIORIDADDEL OPERADORSEAMENOROIGUALQUELAPRIORIDAD DELOPERADORQUEESTÈENLACIMADE0),! 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%0/3←%0/3 $!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ " [&INDELCICLODELPASO!] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$  -IENTRAS"!.$&!,3/ 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%0/3←%0/3 $!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$  [&INDELCICLODELPASO]  %SCRIBIR%0/3

#ABESE×ALARQUEPARAESTEALGORITMOSEMANEJALAESCALADEPRIORIDADESPRESENTADA ALINICIODEESTASECCIØN

%JEMPLO

%NESTEEJEMPLOSERETOMANLOSCASOSDELEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEL ALGORITMO#ONV?POSlJA A %XPRESIØNINlJA8 : 7 %XPRESIØNPOSlJA8:7 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO %NLOSPASOS YELSÓMBOLOANALIZADOˆUNOPERANDOˆSEAGREGADIRECTAMENTE A%0/3!LANALIZARELOPERADOR PASO SEVERIlCASIEN0),!HAYOPERADORESCON MAYOROIGUALPRIORIDAD%NESTECASO 0),!ESTÈVACÓAPORTANTO SEPONEELSÓMBOLO ENELTOPEDEELLA#ONELOPERADOR PASO SUCEDEALGOSIMILAR%N0),!NOEXISTEN

 1*-"4 4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPOSlJA

3ÓMBOLO ANALIZADO

0ASO

%)



8 : 7



: 7

8



: 7





7



7



0ILA

%0/3 8



8

:



8:





8:

7



8:7



87





8:7

8:7

OPERADORESDEMAYOROIGUALPRIORIDADˆLASUMATIENEMENORPRIORIDADQUELAMULTIPLI CACIØNˆ PORLOQUESEAGREGAELOPERADOR A0),!%NLOSDOSÞLTIMOSPASOS Y SE EXTRAENDE0),!SUSELEMENTOS AGREGÈNDOLOSA%0/3 B %XPRESIØNINlJA8 : 74>9n6 %XPRESIØNPOSTlJA8: 7 49>6n %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO ,OSPASOS QUESECONSIDERANMÈSRELEVANTESSONENELPASO ALANALIZARELPA RÏNTESISDERECHOSEEXTRAENREPETIDAMENTETODOSLOSELEMENTOSDE0),!ENESTECASO SØLOELOPERADOR AGREGÈNDOLOSA%0/3HASTAENCONTRARUNPARÏNTESISIZQUIERDO%L PARÏNTESISIZQUIERDOSEQUITADE0),!PERONOSEINCLUYEEN%0/3ˆRECUERDEQUELAS EXPRESIONESENNOTACIØNPOLACANONECESITANDEPARÏNTESISPARAINDICARPRIORIDADESˆ #UANDOSETRATAELOPERADORDEDIVISIØN PASO SEQUITADE0),!ELOPERADOR YSE AGREGAA%0/3 YAQUELAMULTIPLICACIØNTIENEIGUALPRIORIDADQUELADIVISIØN!LANALI ZARELOPERADORDERESTA PASO SEEXTRAENDE0),!YSEINCORPORANA%0/3TODOSLOS OPERADORESDEMAYOROIGUALPRIORIDAD ENESTECASOSONTODOSLOSQUEESTÈNENELLAˆLA POTENCIAYLADIVISIØNˆ AGREGANDOlNALMENTEELSÓMBOLOEN0),!,UEGODEAGREGARA %0/3ELÞLTIMOOPERANDO YHABIENDOREVISADOTODALAEXPRESIØNINICIAL SEVACÓA0),! YSEINCORPORANLOSOPERADORESENESTECASOELOPERADORn ALAEXPRESIØNPOSTlJA !CONTINUACIØNSEPRESENTAELALGORITMOPARACONVERTIREXPRESIONESINlJASAEXPRE SIONESESCRITASENNOTACIØNPRElJA

%JEMPLO

%NESTEEJEMPLOSEEXPONENDOSCASOSDETRADUCCIØNDENOTACIØNINlJAAPRElJA%LPRI MERODEELLOSESUNAEXPRESIØNSIMPLE MIENTRASQUEELSEGUNDOPRESENTAMAYORGRADO DECOMPLEJIDAD A %XPRESIØNINlJA8 : 7

%XPRESIØNPRElJA 8 :7

88

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPOSTlJA

0ASO

%)



8 : 74>9n6

3ÓMBOLO ANALIZADO

0ILA

%0/3



8 : 74>9n6







: 74>9n6

8



8



: 74>9n6





8



74>9n6

:



8:



74>9n6





8:



8:



74>9n6





8:



4>9n6

7



8: 7



4>9n6





8: 7





8: 7



>9n6

4



8: 7 4



9n6

>

>

8: 7 4



n6

9

>

8: 7 49

n



8: 7 49>



n

6



8: 7 49>

n

n

8: 7 49>

6

n

8: 7 49>6



8: 7 49>6n

%NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA #OMOENELCASODELANOTACIØNPOSTlJA EJEMPLO AQUÓTAMBIÏNELOPERADORDE MULTIPLICACIØNSEPROCESAPRIMERO$ELATRADUCCIØNDELAEXPRESIØN PASO RESULTAEL OPERADORPRECEDIENDOALOSOPERANDOS,OMISMOPARAELOPERADORDESUMA PASO B %XPRESIØNINlJA8 : 74>9n6 %XPRESIØNPRElJAn 8:7>496 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA ,OPRIMEROQUESEPROCESAENESTECASOESLASUBEXPRESIØNQUESEENCUENTRAENTRE PARÏNTESIS PASO%LORDENENQUESEPROCESANLOSOPERADORESESELMISMOQUESESIGUIØ

4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA

0ASO

%XPRESIØN



8 : 7



8 :7



8 :7

 1*-"4 4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA

0ASO

%XPRESIØN



8 : 74>9n6



8: 74>9n6



8: 7>49n6



8:7>49n6



 8:7>49n6



n 8:7>496

89

PARALACONVERSIØNDEINlJAAPOSlJA0ORTANTO SERÓAREITERATIVOVOLVERAEXPLICARPASOA PASOELCONTENIDODELATABLA3INEMBARGO ESDEDESTACARLAPOSICIØNQUEOCUPANLOS OPERADORESCONRESPECTOALOSOPERANDOSLOSPRIMEROSPRECEDENALOSSEGUNDOS !CONTINUACIØNSEINCLUYEELALGORITMODECONVERSIØNDENOTACIØNINlJAAPRElJA %STEALGORITMOSEDIFERENCIADELANTERIORBÈSICAMENTEENELHECHODEQUELOSELEMENTOS DELAEXPRESIØNENNOTACIØNINlJASERECORRERÈNDEDERECHAAIZQUIERDA !LGORITMO #ONV?PRElJA

#ONV?PRElJA%) %02% [%STEALGORITMOTRADUCEUNAEXPRESIØNENNOTACIØNINlJA %)APRElJA %02% HACIENDOUSODE UNAPILAˆ0),!ˆ] [4/0%ESUNAVARIABLEDETIPOENTEROY-!8REPRESENTAELMÈXIMONÞMERODEELEMENTOSQUE PUEDEALMACENARLAPILA]  (ACER4/0%←  -IENTRAS%)SEADIFERENTEDELACADENAVACÓA 2EPETIR 4OMARELSÓMBOLOMÈSALADERECHADE%)RECORTANDOLUEGOLAEXPRESIØN  3IELSÓMBOLOESPARÏNTESISDERECHO ENTONCES[0ONERSÓMBOLOENPILA] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO SINO  3ISÓMBOLOESPARÏNTESISIZQUIERDO ENTONCES  -IENTRAS0),!;4/0%=≠PARÏNTESISDERECHO 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%02%←%02% $!4/  [&INDELCICLODELPASO] [3ACAMOSELPARÏNTESISDERECHODE0),!YNOSEAGREGAA%02%] ,LAMARA1UITACON0),! 4/0%Y$!4/ SINO  3ISÓMBOLOESUNOPERANDO ENTONCES !GREGARSÓMBOLOA%02%

90

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

SINO[%SUNOPERADOR] ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ ! -IENTRAS"!.$&!,3/ YLAPRIORIDADDELOPERADOR SEAMENORQUELAPRIORIDADDELOPERADORQUEESTÈENLACIMADE 0),! 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%02%←%02% $!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ " [&INDELCICLODELPASO!] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$  -IENTRAS"!.$&!,3/ 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%02%←%02% $!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$  [&INDELCICLODELPASO]  %SCRIBIR%02%ENFORMAINVERTIDA

%JEMPLO

3EANALIZANNUEVAMENTELOSCASOSDELEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEL ALGORITMO A %XPRESIØNINlJA8 : 7 %XPRESIØNPRElJA 8 :7 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO

4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA

0ASO

%)



8 : 7



8 :

3ÓMBOLO ANALIZADO

0ILA

7

%02%

7



8 :





7



8

:



7:



8









7:

8



7: 8

 

7:

7: 8 )NVERTIR%02%

8 :7

 1*-"4

91

%LOPERADORDEMULTIPLICACIØNSEPONEEN0),!ALSEREXAMINADO PASO!LESTAR VACÓA0),!NOHAYOTROSOPERADORESQUESEPUDIERANQUITARˆSEGÞNSUPRIORIDADˆANTES DEPONERELOPERADOR %NCAMBIO ALANALIZARELOPERADORDESUMA PASO SECOMPARA SUPRIORIDADCONLADELOPERADORDELTOPEDE0),!%NESTECASO ESMENORPORTANTO SEEXTRAEELELEMENTODELTOPEDE0),!YSEAGREGAALAEXPRESIØNPRElJA PONIENDOl NALMENTEELOPERADOR EN0),!#UANDOLAEXPRESIØNDEENTRADAQUEDAVACÓAESDECIR QUEYASEHANANALIZADOTODOSSUSSÓMBOLOS SEEXTRAEREPETIDAMENTECADAELEMENTODE 0),!YSEAGREGAALAEXPRESIØNPRElJAHASTAQUE0),!QUEDEVACÓA B %XPRESIØNINlJA8 : 74>9n6 %XPRESIØNPRElJAn 8:7>496 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO #OMO LA EXPRESIØN SE RECORRE DE DERECHA A IZQUIERDA EL PRIMER OPERADOR QUE SE PROCESAESLARESTA PASO0EROÏSTEESELOPERADORDELAEXPRESIØNDEMÈSBAJAPRIORI

4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA

0ASO

%)

3ÓMBOLO ANALIZADO



8 : 74>9n6



8 : 74>9n

6



8 : 74>9

n

0ILA

%02%

6 n

6



8 : 74>

9

n

69



8 : 74

>

n>

69



8 : 7

4

n>

694



8 : 7

 

n n

694> 694>



8 :

7

n

694>7



8 :



n

694>7



8 :



n

694>7



8

:

n

694>7:



8



n

694>7:





8

n

694>7:8



n

694>7:8





n

694>7:8



n

694>7:8



n

694>7:8 

 

694>7:8 n )NVERTIR%02%

n 8:7>496

92

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 DADPORTANTO PERMANECERÈEN0),!HASTAELlNALDELPROCESODECONVERSIØN PASO #UANDO SE ENCUENTRA UN PARÏNTESIS DERECHO PASO  SE AGREGA DIRECTAMENTE A 0),! MIENTRASQUECUANDOELSÓMBOLOANALIZADOESUNPARÏNTESISIZQUIERDO PASO SEEXTRAE REPETIDAMENTECADAELEMENTODE0),!AGREGÈNDOLOA%02% HASTAQUESEENCUENTRAUN PARÏNTESISDERECHO²STESERETIRADE0),!YNOSEAGREGAA%02%#UANDOYASEANA LIZARONTODOSLOSSÓMBOLOSDELAEXPRESIØNSEPROCEDEAQUITARDE0),!SUSELEMENTOS A×ADIÏNDOLOSA%02%&INALMENTESEINVIERTE%02%PARAOBTENERLAEXPRESIØNENNOTA CIØNPRElJA PASO0ARAEVITARELÞLTIMOPASODELALGORITMO INVERTIRLAEXPRESIØN SE PODRÓANIRCONCATENANDOLOSSÓMBOLOSEN%02%ENORDENINVERSO

/RDENACIØN /TRAAPLICACIØNDELASPILASSEPUEDEVERENELMÏTODODEORDENACIØNRÈPIDA#OMOEL TEMADEORDENACIØNESAMPLIAMENTETRATADOENELCAPÓTULO SESUGIEREREMITIRSEAÏL

 ,ACLASE0ILA ,ACLASE0ILATIENEATRIBUTOSYMÏTODOS,OSATRIBUTOSSONLACOLECCIØNDEELEMENTOSY EL4/0%,OSMÏTODOS POROTRAPARTE SONTODASAQUELLASOPERACIONESANALIZADASENLA SECCIØNANTERIORˆ0ILA?VACÓA 0ILA?LLENA 0ONEY1UITAˆ%NLAlGURASEPUEDE OBSERVARGRÈlCAMENTELACLASE0ILA 3ETIENEACCESOALOSMIEMBROSDEUNOBJETODELACLASE0ILAPORMEDIODELANOTA CIØNDEPUNTOS!LASUMIRQUELAVARIABLE0)/"*REPRESENTAUNOBJETODELACLASE0ILA PREVIAMENTECREADO SEPUEDEHACER 0)/"*0ILA?LLENAPARAINVOCARELMÏTODOQUEDETERMINASILAPILAESTÈLLENAONO %NESTEMÏTODONOHAYARGUMENTOS YAQUETODOSLOSVALORESREQUERIDOSSONMIEMBROS DELACLASE 0)/"*0ONEARGUMENTO PARAINSERTARUNNUEVOELEMENTOENLAPILA%NESTEMÏTODO SØLOHAYUNARGUMENTOQUEINDICAELVALORAGUARDARENLAPILALOSDEMÈSVALORESREQUE RIDOSSONMIEMBROSDELACLASE

&)'52! #LASE1JMB

 $0-"4

93

 #/,!3 5NACOLACONSTITUYEUNAESTRUCTURALINEALDEDATOSENLAQUELOSNUEVOSELEMENTOSSE INTRODUCENPORUNEXTREMOYLOSYAEXISTENTESSEELIMINANPORELOTRO%SIMPORTANTE SE×ALARQUELOSCOMPONENTESDELACOLASEELIMINANENELMISMOORDENENELCUALSE INSERTARON%SDECIR ELPRIMERELEMENTOQUESEINTRODUCEENLAESTRUCTURASERÈELQUE SEELIMINARÈENPRIMERORDEN$EBIDOAESTACARACTERÓSTICA LASCOLASTAMBIÏNRECIBENEL NOMBREDEESTRUCTURAS&)&/&IRST )N &IRST /UTELPRIMEROENENTRARESELPRIMEROEN SALIR 

&)'52! %JEMPLOSPRÉCTICOS DECOLAS

94

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 %XISTEN NUMEROSOS CASOS DE LA VIDA REAL EN LOS CUALES SE USA ESTE CONCEPTO 0OR EJEMPLO LACOLADELOSBANCOSENLASQUELOSCLIENTESESPERANPARASERATENDIDOSˆLA PRIMERAPERSONADELACOLASERÈLAPRIMERAENRECIBIRELSERVICIOˆ LACOLADELOSNI×OS QUE ESPERAN A VECES PACIENTEMENTE PARA SUBIR A UN JUEGO MECÈNICO LAS COLAS DE LOS VEHÓCULOSESPERANDOLALUZVERDEDELSEMÈFORO LASCOLASPARAENTRARAUNCINE TEATROO ESTADIODEFÞTBOL ETCÏTERA

 2EPRESENTACIØNDECOLAS ,ASCOLAS ALIGUALQUELASPILAS NOEXISTENCOMOESTRUCTURASDEDATOSESTÈNDARENLOS LENGUAJESDEPROGRAMACIØN%STETIPODEESTRUCTURADEDATOSSEPUEDEREPRESENTARME DIANTEELUSODE ◗ ◗

!RREGLOS ,ISTAS

!LIGUALQUEENELCASODELASPILAS ENESTELIBROSEUTILIZARÈNARREGLOSPARAMOS TRARSUFUNCIONAMIENTO3INEMBARGO LAIMPLEMENTACIØNMEDIANTELISTASESINCLUSOMÈS SENCILLA%LLECTORPUEDEIMPLEMENTARLOSALGORITMOSNECESARIOSPARACOLAS DESPUÏSDE ESTUDIARELCAPÓTULOQUESEDEDICAALAESTRUCTURALINEALDEDATOS #UANDOSEIMPLEMENTANCONARREGLOSUNIDIMENSIONALES ESIMPORTANTEDElNIRUN TAMA×OMÈXIMOPARALACOLAYDOSVARIABLESAUXILIARES5NADEELLASPARAQUEALMA CENELAPOSICIØNDELPRIMERELEMENTODELACOLAˆ&2%.4%ˆYOTRAPARAQUEGUARDE LAPOSICIØNDELÞLTIMOELEMENTODELACOLAˆ&).!,ˆ%NLAlGURASEMUESTRA LAREPRESENTACIØNDEUNACOLAENLACUALSEHANINSERTADOTRESELEMENTOS Y  ENESEORDEN %LELEMENTOESTÈENEL&2%.4%YAQUEFUEELPRIMEROQUESEINSERTØMIENTRAS QUEELELEMENTO QUEFUEELÞLTIMOENENTRAR ESTÈENEL&).!,DELACOLA

&)'52! 2EPRESENTACIØNDECOLAS

 $0-"4

95

&)'52! 2EPRESENTACIØNDECOLAS A #OLALLENAB #OLACON ALGUNOSELEMENTOSC #OLA VACÓA

%NLAlGURA POROTRAPARTE SEPRESENTANEJEMPLOSDEA COLALLENA B COLACON ALGUNOSELEMENTOSYC COLAVACÓA

 /PERACIONESCONCOLAS ,ADElNICIØNDELAESTRUCTURADEDATOSTIPOCOLAQUEDACOMPLETAALINCLUIRLASOPERACIO NESQUESEPUEDENREALIZARENELLA,ASOPERACIONESBÈSICASQUEPUEDENEFECTUARSESON ◗ ◗

)NSERTARUNELEMENTOENLACOLA %LIMINARUNELEMENTODELACOLA

,ASINSERCIONESSELLEVARÈNACABOPOREL&).!,DELACOLA MIENTRASQUELASELIMI NACIONESSEHARÈNPOREL&2%.4%ˆRECUERDEQUEELPRIMEROENENTRARESELPRIMEROEN SALIRˆ #ONSIDERANDOQUEUNACOLAPUEDEALMACENARUNMÈXIMONÞMERODEELEMENTOSY QUEADEMÈS&2%.4%INDICALAPOSICIØNDELPRIMERELEMENTOY&).!,LAPOSICIØNDEL ÞLTIMO SEPRESENTANACONTINUACIØNLOSALGORITMOSCORRESPONDIENTESALASOPERACIONES MENCIONADAS !LGORITMO )NSERTA?COLA

)NSERTA?COLA#/,! -!8 &2%.4% &).!, $!4/ [%STE ALGORITMO INSERTA EL ELEMENTO $!4/ AL lNAL DE UNA ESTRUCTURA TIPO COLA &2%.4% Y &).!,SONLOSPUNTEROSQUEINDICAN RESPECTIVAMENTE ELINICIOYlNDE#/,!,APRIMERAVEZ &2%.4%Y&).!,TIENENELVALOR YAQUELACOLAESTÈVACÓA-!8ESELMÈXIMONÞMERODE ELEMENTOSQUEPUEDEALMACENARLACOLA]

96

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

 3I&).!,-!8 [6ERIlCAQUEHAYESPACIOLIBRE] ENTONCES (ACER&).!,←&).!, [!CTUALIZA&).!,]Y#/,!;&).!,=←$!4/  3I&).!, ENTONCES[3EINSERTØELPRIMERELEMENTODE#/,!] (ACER&2%.4%←  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh$ESBORDAMIENTOn#OLALLENAv  [&INDELCONDICIONALDELPASO]

!LGORITMO %LIMINA?COLA %LIMINA?COLA#/,! &2%.4% &).!, $!4/ [%STEALGORITMOELIMINAELPRIMERELEMENTODEUNAESTRUCTURATIPOCOLAYLOALMACENAEN$!4/ &2%.4%Y&).!,SONLOSPUNTEROSQUEINDICAN RESPECTIVAMENTE ELINICIOYlNDELACOLA]  3I&2%.4%≠ [6ERIlCAQUELACOLANOESTÏVACÓA] ENTONCES (ACER$!4/←#/,!;&2%.4%=  3I&2%.4%&).!, [3IHAYUNSOLOELEMENTO] ENTONCES (ACER&2%.4%←Y&).!,←[)NDICA#/,!VACÓA] SINO (ACER&2%.4%←&2%.4%   [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh3UBDESBORDAMIENTOn#OLAVACÓAv  [&INDELCONDICIONALDELPASO]

%SPOSIBLEDElNIRALGORITMOSAUXILIARESPARADETERMINARSIUNACOLAESTÈLLENAOVA CÓA!PARTIRDEESTOSALGORITMOSSEPODRÓANREESCRIBIRLOSALGORITMOSY !CONTINUACIØNSEPRESENTANLOSALGORITMOSQUEPERMITENVERIlCARELESTADODEUNA COLA QUEDANDOCOMOTAREASUGERIDALAREESCRITURADELOSDOSALGORITMOSANTERIORES !LGORITMO #OLA?VACÓA #OLA?VACÓA#/,! &2%.4% "!.$ [%STEALGORITMODETERMINASIUNAESTRUCTURADEDATOSTIPOCOLAESTÈVACÓA ASIGNANDOA"!.$ ELVALORDEVERDADCORRESPONDIENTE]  3I&2%.4%

 $0-"4

97

ENTONCES (ACER"!.$←6%2$!$%2/ SINO (ACER"!.$←&!,3/  [&INDELCONDICIONALDELPASO]

!LGORITMO #OLA?LLENA #OLA?LLENA#/,! &).!, -!8 "!.$ [%STEALGORITMODETERMINASIUNAESTRUCTURADEDATOSTIPOCOLAESTÈLLENA ASIGNANDOA"!.$ EL VALOR DE VERDAD CORRESPONDIENTE -!8 ES EL NÞMERO MÈXIMO DE ELEMENTOS QUE PUEDE ALMACENAR#/,!]  3I&).!,-!8 ENTONCES (ACER"!.$←6%2$!$%2/ SINO (ACER"!.$←&!,3/  [&INDELCONDICIONALDELPASO]

!QUÓSEINCLUYEUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODELASOPERACIONESDE INSERCIØNYELIMINACIØNENCOLAS

%JEMPLO

&)'52! )NSERCIØNYELIMINACIØN ENCOLAS

2ETOMEELEJEMPLODELASECCIØN3EINSERTANEN#/,!LOSELEMENTOSLUNES MARTES MIÏRCOLES JUEVESYVIERNESˆENESEORDENˆ DEMODOQUELAESTRUCTURAQUEDA COMOSEMUESTRAENLAlGURA0ARAESTEEJEMPLO-!8

98

>«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4

&)'52! )NSERCIØNYELIMINACIØNEN COLASA ,UEGODEELIMINAR LUNESB ,UEGODEINSERTAR SÉBADO

%LELEMENTOLUNESESELPRIMEROQUESEPUEDEELIMINARPORSERELPRIMEROQUESE INSERTØENLACOLA,UEGODELAELIMINACIØN &2%.4%GUARDALAPOSICIØNDELSIGUIENTE ELEMENTOlGA 3IAHORASEINSERTARASÈBADO ÏSTEOCUPARÓAAHORALAPOSICIØNSI GUIENTEALELEMENTOVIERNESlGB  !NALICELOQUEOCURREENLACOLA SISELLEVANACABOLASSIGUIENTESOPERACIONES 3EELIMINANMARTES MIÏRCOLES JUEVESYVIERNESlGA  3EINSERTADOMINGOlGB  3EELIMINASÈBADOlGC  &)'52! )NSERCIØNYELIMINACIØNENCOLASA ,UEGODEELIMINARMARTES MIÏRCOLES JUEVESYVIERNES B ,UEGODEINSERTARDOMINGOC ,UEGODEELIMINARSÉBADO

 $0-"4

99

$ESPUÏSDEINSERTARALELEMENTODOMINGO YANOSEPUEDENINSERTARNUEVOSELEMEN TOSALACOLAPORQUE&).!,ESIGUALQUE-!8&).!,-!8 3INEMBARGO COMO LOREmEJALAlGURAC EXISTEESPACIODISPONIBLEDESPERDICIADO /BSERVEQUELUEGODEINSERTARDOMINGOSELLEGØAUNASITUACIØNCONmICTIVAPORQUEA PESARDEQUEHAYESPACIODISPONIBLE NOSEPUEDENINSERTAROTROSELEMENTOS%STEINCON VENIENTESEPUEDESUPERARPERFECTAMENTESIMANEJAMOSLASCOLASENFORMACIRCULAR

 #OLASCIRCULARES 5NACOLACIRCULARCONSTITUYEUNAESTRUCTURADEDATOSLINEALENLACUALELSIGUIENTEELE MENTO DEL ÞLTIMO EN REALIDAD ES EL PRIMERO $E ESTA FORMA SE UTILIZA DE MANERA MÈS ElCIENTELAMEMORIADELACOMPUTADORA%NLAlGURASEMUESTRALAREPRESENTACIØN GRÈlCADEUNACOLACIRCULAR %NLAlGURASEILUSTRACØMOSEACTUALIZANLOSPUNTEROS&2%.4%Y&).!,EN UNACOLACIRCULAR AMEDIDAQUESEINSERTANOELIMINANELEMENTOS%NLAlGURAALA COLATIENEALGUNOSELEMENTOS&2%.4%Y&).!, %NLAlGURABSEHANELI

&)'52! 2EPRESENTACIØNDECOLAS CIRCULARESA &RENTE&INAL B &RENTE&INALC &RENTE &INAL

100 >«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 MINADODELACOLADOSELEMENTOSˆPRIMEROSEQUITØ88YLUEGO99ˆ QUEDANDO&2%. 4%0ORÞLTIMO ENLAlGURACSEHAINSERTADOUNNUEVOELEMENTOˆ00ˆENLA COLA#OMO&).!,-!8SELLEVØELAPUNTADORALAPRIMERAPOSICIØNQUEESTABAVACÓA &).!, $EESTAMANERASELOGRAMEJORAPROVECHAMIENTODELESPACIODEMEMORIA YAQUEALELIMINARUNELEMENTOLACASILLACORRESPONDIENTEDELACOLAQUEDADISPONIBLE PARAFUTURASINSERCIONES ! CONTINUACIØN SE PRESENTAN LOS ALGORITMOS DE INSERCIØN Y ELIMINACIØN EN COLAS CIRCULARES !LGORITMO )NSERTA?CIRCULAR )NSERTA?CIRCULAR#/,!#)2 -!8 &2%.4% &).!, $!4/ [%STEALGORITMOINSERTAELELEMENTO$!4/ALlNALDEUNAESTRUCTURATIPOCOLACIRCULARˆ#/ ,!#)2ˆ &2%.4% Y &).!, SON LOS PUNTEROS QUE INDICAN RESPECTIVAMENTE EL INICIO Y EL lN DE LA COLA CIRCULAR -!8 ES EL NÞMERO MÈXIMO DE ELEMENTOS QUE PUEDE ALMACENAR #/,!#)2]  3I&).!,-!8 Y&2%.4% O&).!,  &2%.4% ENTONCES %SCRIBIRh$ESBORDAMIENTOn#OLALLENAv SINO  3I&).!,-!8 ENTONCES (ACER&).!,← SINO (ACER&).!,←&).!,   [&INDELCONDICIONALDELPASO] (ACER#/,!#)2;&).!,=←$!4/  3I&2%.4% ENTONCES (ACER&2%.4%←  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!LGORITMO %LIMINA?CIRCULAR %LIMINA?CIRCULAR#/,!#)2 -!8 &2%.4% &).!, $!4/ [%STEALGORITMOELIMINAELPRIMERELEMENTODEUNAESTRUCTURATIPOCOLACIRCULARˆ#/,!#)2ˆ YLOALMACENAEN$!4/&2%.4%Y&).!,SONLOSPUNTEROSQUEINDICAN RESPECTIVAMENTE EL INICIOYlNDELAESTRUCTURA-!8ESELTAMA×ODE#/,!#)2]  3I&2%.4% [6ERIlCASILACOLAESTÈVACÓA] ENTONCES %SCRIBIRh3UBDESBORDAMIENTOn#OLAVACÓAv

 $0-"4

101

SINO (ACER$!4/←#/,!#)2;&2%.4%=  3I&2%.4%&).!,[3IHAYSØLOUNELEMENTO] ENTONCES (ACER&2%.4%←Y&).!,← SINO  3I&2%.4%-!8 ENTONCES (ACER&2%.4%← SINO (ACER&2%.4%←&2%.4%   [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!CONTINUACIØNSEPRESENTAUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODELASOPE RACIONESDEINSERCIØNYELIMINACIØNENCOLASCIRCULARES

%JEMPLO

%NLAlGURAASEPRESENTAUNAESTRUCTURATIPOCOLACIRCULARDEMÈXIMOELEMENTOS -!8   EN LA CUAL YA SE HAN ALMACENADO ALGUNOS VALORES %N LA lGURA B SE MUESTRAELESTADODELACOLALUEGODEINSERTARELELEMENTO.. 3ISEQUISIERAINSERTAROTROELEMENTOSEPRESENTARÓAUNERRORDEDESBORDAMIENTO YA QUE&).!, &2%.4% !CONTINUACIØNSEELIMINANLOSVALORES88 99 :: ++ 44Y66ENESEORDEN,A COLAQUEDACOMOSEMUESTRAENLAlGURA

&)'52! )NSERCIØNYELIMINACIØNENCOLASCIRCULARESA %STADOINICIALDELACOLACIRCULARB ,UEGO DEINSERTAR..

102 >«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 &)'52! )NSERCIØNYELIMINACIØN ENCOLASCIRCULARES

!HORASEELIMINAELSIGUIENTEELEMENTO22!LSER&2%.4%-!8 SELEDAEL VALORDE lGURA &)'52! )NSERCIØNYELIMINACIØN ENCOLASCIRCULARES

!LELIMINAR.. COMO&2%.4%&).!, ESDECIR SØLOQUEDABAUNELEMENTOENLA COLA ACTUALIZAMOSLOSDOSPUNTEROSENCERO,ACOLAQUEDAVACÓA lGURA &)'52! )NSERCIØNYELIMINACIØN ENCOLASCIRCULARES

 $OBLECOLA 5NADOBLECOLAOBICOLAESUNAGENERALIZACIØNDEUNAESTRUCTURADEDATOSTIPOCOLA%N UNADOBLECOLA LOSELEMENTOSSEPUEDENINSERTAROELIMINARPORCUALQUIERADELOSDOS EXTREMOS%SDECIR SEPUEDENINSERTARYELIMINARVALORESTANTOPOREL&2%.4%COMOPOR EL&).!,DELACOLA5NADOBLECOLASEREPRESENTACOMOSEMUESTRAENLAlGURA/B SERVEQUELASDOSmECHASENCADAEXTREMOINDICANQUEAMBASOPERACIONESSONPOSIBLES

 $0-"4

103

&)'52! 2EPRESENTACIØNDEDOBLE COLA

%XISTENDOSVARIANTESDELASDOBLESCOLAS ◗ ◗

$OBLECOLACONENTRADARESTRINGIDA $OBLECOLACONSALIDARESTRINGIDA

,APRIMERADEELLASPERMITEQUELASELIMINACIONESSEREALICENPORCUALESQUIERADE LOSDOSEXTREMOS MIENTRASQUELASINSERCIONESSØLOPOREL&).!,DELACOLAlG  ,ASEGUNDAVARIANTEPERMITEQUELASINSERCIONESSEREALICENPORCUALQUIERADELOSDOS EXTREMOS MIENTRASQUELASELIMINACIONESSØLOPOREL&2%.4%DELACOLAlG 

&)'52! $OBLECOLACONENTRADA RESTRINGIDA

&)'52! $OBLECOLACONSALIDA RESTRINGIDA

 !PLICACIONESDECOLAS %LCONCEPTODECOLAESTÈLIGADOACOMPUTACIØN5NAAPLICACIØNCOMÞNDELASCOLASSE PRESENTACUANDOSEENVÓAAIMPRIMIRALGÞNDOCUMENTOOPROGRAMAENLASCOLASDEIMPRE SIØN#UANDOHAYUNASOLAIMPRESORAPARAATENDERAVARIOSUSUARIOS SUELESUCEDERQUE ALGUNOSDEELLOSSOLICITENLOSSERVICIOSDEIMPRESIØNALMISMOTIEMPOOMIENTRASELDIS POSITIVOESTÈOCUPADO%NESTOSCASOSSEFORMAUNACOLACONLOSTRABAJOSQUEESPERANPARA SERIMPRESOSÏSTOSSEPROCESARÈNENELORDENENELCUALFUERONINTRODUCIDOSENLACOLA

104 >«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 /TROCASODEAPLICACIONESDECOLASENCOMPUTACIØNESELQUESEPRESENTAENLOSSIS TEMASDETIEMPOCOMPARTIDO6ARIOSUSUARIOSCOMPARTENCIERTOSRECURSOS COMO#05Y MEMORIADELACOMPUTADORA,OSRECURSOSSEASIGNANALOSPROCESOSQUEESTÈNENCOLADE ESPERA SUPONIENDOQUETODOSTIENENUNAMISMAPRIORIDAD ENELORDENENELCUALFUERON INTRODUCIDOSENLACOLA

 ,ACLASE#OLA ,A CLASE #OLA TIENE ATRIBUTOS Y MÏTODOS COMO CUALQUIER CLASE ,OS ATRIBUTOS SON LA COLECCIØNDEELEMENTOSYLOSPUNTEROS&2%.4%Y&).!,,OSMÏTODOS POROTRAPARTE SONTODASLASOPERACIONESANALIZADASENLASSECCIONESANTERIORES#OLA?VACÓA #OLA?LLE NA )NSERTA?COLAY%LIMINA?COLA %NLAlGURASEPUEDEOBSERVARGRÈlCAMENTEALACLASE#OLA3ETIENEACCESOA LOSMIEMBROSDEUNOBJETODELACLASE#OLAPORMEDIODELANOTACIØNDEPUNTOS#UANDO SEASUMEQUELAVARIABLE#//"*ESUNOBJETODELACLASE#OLA PREVIAMENTECREADO SE PUEDEHACER #//"*#OLA?LLENAPARAINVOCARELMÏTODOQUEDETERMINASILACOLAESTÈONOLLENA %NESTEMÏTODONOHAYARGUMENTOS YAQUETODOSLOSVALORESREQUERIDOSSONMIEMBROS DELACLASE #//"*)NSERTA?COLAARGUMENTO PARA INSERTAR UN NUEVO ELEMENTO EN LA COLA %N ESTEMÏTODOHAYUNÞNICOARGUMENTO QUEESELDATOAINSERTARTODOSLOSOTROSVALORES REQUERIDOSSONMIEMBROSDELACLASE

&)'52! #LASE#OLA°

&+&3$*$*04

105

▼ %*%2#)#)/3 0ILAS Ê £° 4RADUZCALASSIGUIENTESEXPRESIONESANOTACIØNPOSlJAMEDIANTEELALGORITMO A B C D E F

8 : 7 4n6 :n7 9 8>+ 8>:n4 7 8n9 4n: :8 9 4 >7 7 :+n4

Ê Ó° 4RADUZCALASSIGUIENTESEXPRESIONESANOTACIØNPRElJACONELALGORITMO A B C D E F

8n4 >: : +n7 8 >9n4 8 4 7+ : 8n7>+ :n8 >: :n9 >+ 78n: 4 n9 >+

Ê Î° %SCRIBAUNPROGRAMAQUELEAUNAEXPRESIØNENNOTACIØNINlJA YLATRADUZCAANOTA CIØNPOSlJA Ê {° %SCRIBA UN PROGRAMA QUE LEA UNA EXPRESIØN EN NOTACIØN POSlJA Y LA TRADUZCA A NOTACIØNPRElJA Ê x° %SCRIBAUNPROGRAMAQUEEVALÞE CONLAAYUDADEUNAPILA UNAEXPRESIØNARITMÏTICA DADAENNOTACIØNPRElJA Ê È° %SCRIBAUNPROGRAMAQUEEVALÞE CONLAAYUDADEUNAPILA UNAEXPRESIØNARITMÏTICA DADAENNOTACIØNPOSlJA Ê Ç° %SCRIBAUNSUBPROGRAMAQUEINSERTEUNELEMENTOENUNAPILA#ONSIDERETODOSLOS CASOSQUESEPUEDANPRESENTAR Ê n° %SCRIBAUNSUBPROGRAMAQUEELIMINEUNELEMENTOENUNAPILA#ONSIDERETODOSLOS CASOSQUESEPUEDANPRESENTAR Ê ™° $IBUJELOSDISTINTOSESTADOSDEUNAESTRUCTURATIPOPILASISELLEVANACABOLASSI GUIENTESOPERACIONES-UESTRECØMOVANQUEDANDOLAPILAYELPUNTEROALTOPEDE LA MISMA #ONSIDERE QUE LA PILA ESTÈ INICIALMENTE VACÓA 4/0%   Y TIENE UNA CAPACIDADMÈXIMAPARAELEMENTOS

106 >«‰ÌՏœÊÎÊ Ê Ê 1*-"4:$0-"4 A B C D E F G H I

)NSERTAR0),! 8 )NSERTAR0),! 9 %LIMINAR0),! : %LIMINAR0),! 4 %LIMINAR0),! 5 )NSERTAR0),! 6 )NSERTAR0),! 7 %LIMINAR0),! 0 )NSERTAR0),! 2 ◗ ◗

z#ONCUÈNTOSELEMENTOSQUEDØLAPILA z(UBOALGÞNCASODEERRORDESBORDAMIENTOOSUBDESBORDAMIENTO 3IOCURRIØ ALGÞNERROR EXPLÓQUELO

£ä°%SCRIBAUNSUBPROGRAMAQUEELIMINELOSELEMENTOSREPETIDOSDEUNAPILA,OSELE MENTOSREPETIDOSOCUPANPOSICIONESSUCESIVAS ££°%SCRIBAUNSUBPROGRAMAQUEINVIERTALOSELEMENTOSDEUNAPILA £Ó°$ElNALACLASE0ILA USANDOALGÞNLENGUAJEORIENTADOAOBJETOS CONBASEENLOSAL GORITMOSPRESENTADOSPARAPROGRAMARLOSMÏTODOSPARAINSERTAR ELIMINARYVERIlCAR ELESTADODELAPILA

#OLAS £Î°3EA#UNACOLACIRCULARDEELEMENTOS)NICIALMENTELACOLAESTÈVACÓA&2%.4% &).!, $IBUJEELESTADODE#LUEGODEREALIZARCADAUNADELASSIGUIENTES OPERACIONES A )NSERTARLOSELEMENTOS!! ""Y## B %LIMINARELELEMENTO!! C )NSERTARLOSELEMENTOS$$ %%Y&& D )NSERTARELELEMENTO'' E )NSERTARELELEMENTO(( F %LIMINARLOSELEMENTOS""Y## ◗ ◗

z#ONCUÈNTOSELEMENTOSQUEDØ# z(UBOALGÞNCASODEERRORDESBORDAMIENTOOSUBDESBORDAMIENTO 3IOCU RRIØALGÞNERROR EXPLÓQUELO

£{°%SCRIBAUNSUBPROGRAMAQUEINSERTEUNELEMENTOENUNACOLACIRCULAR#ONSIDERE TODOSLOSCASOSQUESEPUEDANPRESENTAR £x°%SCRIBAUNSUBPROGRAMAQUEELIMINEUNELEMENTODEUNACOLACIRCULAR#ONSIDERE TODOSLOSCASOSQUESEPUEDANPRESENTAR

&+&3$*$*04

107

£È°5TILICEUNAESTRUCTURADECOLAPARASIMULARELMOVIMIENTODECLIENTESENUNACOLA DEESPERADEUNBANCOˆSEPUEDEAUXILIARCONLOSSUBPROGRAMASESCRITOSENLOS EJERCICIOSYˆ £Ç°%SCRIBAUNSUBPROGRAMAQUEINVIERTALOSELEMENTOSDEUNACOLA £n°Ê$ElNAUNALGORITMOPARAINSERTARUNELEMENTOENUNADOBLECOLA £™°$ElNAUNALGORITMOPARAELIMINARUNELEMENTODEUNADOBLECOLA Óä°Ê3EA#UNADOBLECOLACIRCULARDEELEMENTOS)NICIALMENTELADOBLECOLAESTÈVACÓA &2%.4%&).!, $IBUJEELESTADODELACOLADESPUÏSDEREALIZARCADAUNA DELASSIGUIENTESOPERACIONES A B C D

)NSERTARPORELEXTREMODERECHOTRESELEMENTOS! "Y# %LIMINARPORELEXTREMOIZQUIERDOUNELEMENTO )NSERTARPORELEXTREMOIZQUIERDODOSELEMENTOS$Y% %LIMINARPORLADERECHAUNELEMENTO

Ó£°$ElNALACLASE#OLA MEDIANTEALGÞNLENGUAJEDEPROGRAMACIØNORIENTADOAOBJETOS TOMANDO COMO BASE PARA PROGRAMAR LOS MÏTODOS LOS ALGORITMOS ESTUDIADOS PARA INSERTAR ELIMINARYVERIlCARELESTADODELACOLA ÓÓ°3ETIENEUNACOLADEIMPRESIØNDONDESEALMACENANLASCLAVESDELOSDOCUMENTOS QUESEDEBENIMPRIMIR%NLAMEDIDAENQUELLEGAUNNUEVOTRABAJO ÏSTESEENCOLA #UANDOLAIMPRESORASELIBERASETOMAUNTRABAJODELACOLAYSEIMPRIME5TILICELA CLASEPREVIAMENTEDElNIDAPARADECLARARELOBJETO#OLA)MPRESIØNYEMPLÏELOENEL DESARROLLODELAAPLICACIØNDESCRITA

#APÓTULO

{

2%#523)¼.  ).42/$5##)¼. ,ARECURSIØNORECURSIVIDADESUNCONCEPTOAMPLIO CONMUCHASVARIANTES YDIFÓCILDE PRECISARCONPOCASPALABRAS!PARECEENNUMEROSASACTIVIDADESDELAVIDADIARIAPOR EJEMPLO ENUNAFOTOGRAFÓADONDESEOBSERVAOTRAFOTOGRAFÓA/TROCASOILUSTRATIVOESEL QUESEPRESENTAENLOSPROGRAMASDETELEVISIØN ENLOSCUALESUNPERIODISTATRANSlEREEL CONTROLDELANOTICIAAOTROPERIODISTAQUESEENCUENTRAENOTRACIUDAD YÏSTE ASUVEZ HACELOMISMOCONUNTERCERO#UANDOESTEÞLTIMOTERMINASUPARTICIPACIØNREGRESAEL CONTROL AL SEGUNDO Y CUANDO ÏSTE TAMBIÏN lNALIZA SU INTERVENCIØN REGRESA EL CONTROL ALPRIMERO%NESTECAPÓTULONOSLIMITAREMOSATRATARLARECURSIØNCOMOHERRAMIENTADE PROGRAMACIØN ,ARECURSIØNESUNRECURSOMUYPODEROSOQUEPERMITEEXPRESARSOLUCIONESSIMPLES YNATURALESACIERTOSTIPOSDEPROBLEMAS%SIMPORTANTECONSIDERARQUENOTODOSLOSPRO BLEMASSONNATURALMENTERECURSIVOSALGUNOSSÓLOSONYOTROSNO 5NOBJETORECURSIVOESAQUELQUEAPARECEENLADElNICIØNDESÓMISMO ASÓCOMOEL QUESELLAMAASÓMISMO,OSÈRBOLES POREJEMPLO QUESEESTUDIARÈNENELCAPÓTULO REPRESENTANLASESTRUCTURASDEDATOS NOLINEALESYDINÈMICAS MÈSElCIENTESQUEEXISTEN ACTUALMENTEENCOMPUTACIØN,ACARACTERÓSTICADELOSÈRBOLESESQUESONESTRUCTURASIN HERENTEMENTERECURSIVAS%SDECIR ENCUALQUIERACTIVIDADDEPROGRAMACIØNQUESEREALICE CONÈRBOLESSEUTILIZALARECURSIVIDAD ,ARECURSIØNSEPUEDEPRESENTARDEDOSMANERASDIFERENTES A $IRECTAELPROGRAMAOSUBPROGRAMASELLAMADIRECTAMENTEASÓMISMO0OREJEM PLO OBSERVEQUEENLAlGURA0REPRESENTAUNPROGRAMAYENALGUNAPARTEDEÏL APARECEUNALLAMADAASÓMISMO B )NDIRECTA EL SUBPROGRAMA LLAMA A OTRO SUBPROGRAMA Y ÏSTE EN ALGÞN MOMENTO LLAMANUEVAMENTEALPRIMERO0OREJEMPLO ENLAlGURAELSUBPROGRAMA0LLAMAAL SUBPROGRAMA1YÏSTE ASUVEZ INVOCAALPRIMEROESDECIR ELCONTROLREGRESAA0 %NTODADElNICIØNRECURSIVADEUNPROBLEMASIEMPRESEDEBENESTABLECERDOSPASOS DIFERENTESYMUYIMPORTANTESELPASOBÈSICOYELPASORECURSIVO%LPRIMERO UNOO VARIOS DEPENDIENDODELPROBLEMA SEUTILIZACOMOCONDICIØNDEPARADAOlNDELARECUR SIVIDAD!ÏSTELLEGAMOSCUANDOENCONTRAMOSLASOLUCIØNDELPROBLEMAOCUANDODECI DIMOSQUEYANOVAMOSASEGUIR PORQUENOESTÈNDADASLASCONDICIONESPARAHACERLO%L

110 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ &)'52! 2ECURSIØNDIRECTA

PASOSEGUNDO POROTRAPARTE PROPICIALARECURSIVIDAD3EPUEDENPRESENTARUNOOVARIOS NUEVAMENTEDEPENDIENDODELPROBLEMAARESOLVER #UANDOSEANALIZALASOLUCIØNRECURSIVADEUNPROBLEMAESIMPORTANTEDETERMINAR CONPRECISIØNCUÈLESSERÈNLOSPASOSBÈSICOYRECURSIVO%NCADAVUELTADELCICLOESIM PORTANTEQUENOSACERQUEMOSCADAVEZMÈSALASOLUCIØNDELPROBLEMA OSEA ALPASO BÈSICO3IESTONOOCURRE ENTONCESPODEMOSESTARANTEUNCICLOEXTRA×O%SDECIR ELPRO BLEMAESTARÓAMALDElNIDOY ENTALCASO LAMÈQUINASEQUEDARÓAEJECUTANDOPORTIEMPO INDElNIDOELPROGRAMAENQUEESTUVIERA YSØLOTERMINARÓAALAGOTARSELAMEMORIA !CONTINUACIØNSEPRESENTANALGUNOSEJEMPLOSQUENOSPUEDENAYUDARACOMPREN DERMÈSRÈPIDAMENTEELCONCEPTORECURSIØN

%JEMPLO

&ACTORIALDEUNNÞMERO %LFACTORIALDEUNNÞMEROENTEROPOSITIVONSEDElNECOMOELPRODUCTODELOSNÞMEROS COMPRENDIDOSENTREYN4AMBIÏNCOMONPORELFACTORIALDENn ASÓAPARECEEL CONCEPTODERECURSIØN,AEXPRESIØNNSIMBOLIZAELFACTORIALDEN!CONTINUACIØNSE ILUSTRAESTECASO 0ORDElNICIØN  

&)'52! 2ECURSIØNINDIRECTA

→0ASOBÈSICO →0ASOBÈSICO

 */530%6$$*Î/

111

               NN Nn c Nn x     →0ASORECURSIVO !LCALCULAR POREJEMPLO ELFACTORIALDE DECIMOSQUEESIGUALA !LFACTO RIALDE LOCALCULAMOSCOMO !LFACTORIALDE COMO  YASÓSUCESIVAMENTE HASTALLEGARAUNPASOBÈSICOQUEDETIENELARECURSIVIDAD,LEGAMOSADElNIR ENTONCES ELFACTORIALDEUNNÞMERONENTÏRMINOSDELFACTORIALDELNÞMERONn  ▼ &ØRMULA



3INON

0ASOBÈSICO

N Nn 

3IN

0ASORECURSIVO

N

!CONTINUACIØNSEPRESENTAELALGORITMORECURSIVODELCÈLCULODELFACTORIAL !LGORITMO &ACTORIAL?REC &ACTORIAL?REC. [%STEALGORITMOCALCULAELFACTORIALDEUNNÞMERO.ENFORMARECURSIVA DONDE.ESUNVALOR NUMÏRICOENTERO POSITIVOONULO]  3I. ENTONCES (ACER&ACTORIAL?REC←[0ASOBÈSICO] SINO (ACER&ACTORIAL?REC←. &ACTORIAL?REC.n [,LAMADAˆPASOˆRECURSIVA]  [&INDELCONDICIONALDELPASO]

#UANDO SE REALIZA UNA LLAMADA RECURSIVA SE UTILIZA EN FORMA IMPLÓCITA UNA ES TRUCTURA TIPO PILA PARA ALMACENAR LAS INSTRUCCIONES PENDIENTES DE EJECUTAR CON TODOS LOSVALORESQUETIENENLASVARIABLESOCONSTANTESENESEMOMENTO#UANDOSETERMINALA EJECUCIØNSELLEGAALESTADOBÈSICO SETOMALAINSTRUCCIØNQUESEENCUENTRAENELTOPEDE LAPILAYSECONTINÞAOPERANDO%STAACCIØNSEREPITEHASTAQUELAPILAQUEDEVACÓA

112 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ %NLAlGURASEPUEDEOBSERVARENFORMAGRÈlCAELSEGUIMIENTODELALGORITMO PARA. /BSERVEQUEENLAPILAELNÞMEROQUESEENCUENTRAENTRECORCHETESENLAPRIMERACO LUMNADELAIZQUIERDAHACEREFERENCIAALALLAMADARECURSIVAQUESEREALIZA%STESÓMBOLO PERMITEOBSERVARELORDENENQUESEREALIZANLASLLAMADASRECURSIVAS0OREJEMPLO ;= EXPRESAQUEESAESLAPRIMERALLAMADARECURSIVA ;=REPRESENTALASEGUNDALLAMADAYASÓ SUCESIVAMENTE0OROTRAPARTE ELMISMONÞMEROENTRECORCHETESALAIZQUIERDARELACIONA LALLAMADARECURSIVACONELVALORQUEINGRESAALALGORITMOENCADALLAMADA !CONTINUACIØNSEPRESENTALAVARIANTEITERATIVADELCÈLCULODELFACTORIAL.UNCAHAY QUEDESCARTARLASVARIANTESITERATIVASDELASOLUCIØNDEUNPROBLEMA PORQUEAUNCUANDO ÏSTESEPUEDERESOLVERNATURALMENTEDEFORMARECURSIVA ESIMPORTANTETENERSIEMPREEN CUENTAQUELARECURSIØNNECESITADEUNAPILAPARASUFUNCIONAMIENTOYQUEÏSTACONSUME ESPACIODEMEMORIA%NALGUNOSLENGUAJESDEPROGRAMACIØN ELESPACIODEDICADOALA PILAESMUYPEQUE×O PORLOQUESIELPROBLEMAQUESEINTENTARESOLVERREQUIEREDEUNA CANTIDADDEESPACIOMAYORˆPILAˆQUELAQUEOFRECEELLENGUAJE ELPROBLEMANOSE PODRÈRESOLVERPORFALTADEMEMORIA%NTALCASO UNAFORMAPARAREMEDIARESTEINCONVE NIENTEESUTILIZANDOITERATIVIDADENLUGARDERECURSIVIDAD !LGORITMO &ACTORIAL?ITE &ACTORIAL?ITE. [%STEALGORITMOCALCULAELFACTORIALDEUNNÞMERO.ENFORMAITERATIVA DONDE.ESUNVALOR NUMÏRICOENTERO POSITIVOONULO] [&!#4ESUNAVARIABLEDETIPOENTERO]  (ACER&!#4←  -IENTRAS. 2EPETIR[#ICLOPARACALCULAR.] (ACER&!#4←. &!#4Y.←.n  [&INDELCICLODELPASO]  %SCRIBIR&!#4

&)'52! &UNCIONAMIENTO INTERNODELARECUR SIØN FACTORIAL

 */530%6$$*Î/

113

,ASIGUIENTETABLAPRESENTALOSVALORESQUEVANADQUIRIENDOLASVARIABLES DURANTE ELCÈLCULODE 4!",!

.

&!#4

#ÉLCULODELFACTORIAL ENFORMAITERATIVA





















%JEMPLO

3UCESIØNDE&IBONACCI/TROPROBLEMACLÈSICODERECURSIVIDADESELDELCÈLCULODELA SUCESIØNDE,EONARDODE0ISA CONOCIDOCOMO&IBONACCI           ETCÏTERA !LGUNASPROPIEDADESDEESTASUCESIØN SEGÞN7IKIPEDIA LAENCICLOPEDIALIBRE SON ◗

◗ ◗ ◗ ◗

%L COCIENTE ENTRE UN TÏRMINO Y EL INMEDIATAMENTE ANTERIOR VARÓA CONTINUAMENTE PEROSEESTABILIZAENUNNÞMEROIRRACIONALCONOCIDOCOMORAZØNÈUREAONÞMERO ÈUREO QUEESLASOLUCIØNPOSITIVADELAECUACIØNX£nXn YSEPUEDEAPROXIMAR POR #UALQUIERNÞMERONATURALSEPUEDEESCRIBIRMEDIANTELASUMADEUNNÞMEROLIMITA DODETÏRMINOSDELASUCESIØNDE&IBONACCI CADAUNODEELLOSDISTINTOALOSDEMÈS 0OREJEMPLO       4ANSØLOUNTÏRMINODECADATRESESPAR UNODECADACUATROESMÞLTIPLODE UNODE CADACINCOESMÞLTIPLODE ETC%STOSEPUEDEGENERALIZAR DEFORMAQUELASUCESIØN DE&IBONACCIESPERIØDICAENLASCONGRUENCIASMØDULOM PARACUALQUIERM 3I&IBONACCIDEP &P ESUNNÞMEROPRIMO PTAMBIÏNLOES CONUNAÞNICAEXCEP CIØN& ESPRIMO PERONOLOES ,ASUMAINlNITADELOSTÏRMINOSDELASUCESIØN&N NESEXACTAMENTE

%L&IBONACCIDEUNNÞMEROSEOBTIENEDELASUMADELOSDOSNÞMEROS&IBONACCI ANTERIORES0ORDElNICIØN &IBONACCI  →0ASOBÈSICO &IBONACCI  →0ASOBÈSICO &IBONACCI &IBONACCI &IBONACCI

     &IBONACCI &IBONACCI &IBONACCI

     &IBONACCI &IBONACCI &IBONACCI

      &IBONACCIN &IBONACCINn &IBONACCINn →0ASORECURSIVO

114 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ ,AFØRMULAPRESENTAUNADElNICIØNRECURSIVADELASERIEDE&IBONACCI ▼ &ØRMULA

N

SI

N ON

&IBONACCIN 

&IBONACCINn &IBONACCINn SI

N

%NESTEEJEMPLOELPASOBÈSICOSEPRESENTACUANDONON%NELPASORECUR SIVODELAFØRMULASEUTILIZAELCONCEPTODE&IBONACCIAPLICADOANn YNn 0OR SERNUNNÞMEROENTEROPOSITIVOSERÈNNn YNn VALORESMÈSCERCANOSALESTADO BÈSICO %LALGORITMOPRESENTAUNASOLUCIØNRECURSIVADELCÈLCULODEUNNÞMERO&IBO NACCIN !LGORITMO &IBONACCI?REC &IBONACCI?REC. [%STEALGORITMOCALCULAELNÞMERO&IBONACCICORRESPONDIENTEA.ENFORMARECURSIVA DONDE. ESUNVALORNUMÏRICOENTERO POSITIVOONULO]  3I. O. ENTONCES (ACER&IBONACCI?REC←.[0ASOBÈSICO] SINO (ACER&IBONACCI?REC←&IBONACCI?REC.n &IBONACCI?REC.n [,LAMADASRECURSIVAS]  [&INDELCONDICIONALDELPASO]

%NLAlGURASEPUEDEOBSERVARELSEGUIMIENTODELALGORITMOPARA. /BSERVEQUEENLAPILAELNÞMEROQUESEENCUENTRAENTRECORCHETESHACEREFERENCIA ALALLAMADARECURSIVAQUESEREALIZA0OREJEMPLO ;=EXPRESAQUEÏSAESLAPRIMERA LLAMADARECURSIVA ;=LASEGUNDALLAMADAYASÓSUCESIVAMENTE0OROTRAPARTE ELMISMO NÞMEROENTRECORCHETESALAIZQUIERDA &IBONACCI?REC. RELACIONALALLAMADARECURSIVA CONELVALORQUEINGRESAALALGORITMOENCADALLAMADA &IBONACCIREPRESENTAELCASODEUNALGORITMOQUESEPUEDERESOLVERNATURALMENTE DEMANERARECURSIVA PEROQUERESULTAINElCIENTEHACERLODEESTAFORMATANTOENCUANTOA TIEMPOCOMOAESPACIOQUESEUTILIZAENLAPILAPARAALMACENARLASLLAMADASPENDIENTES DEEJECUTAR!DEMÈS OBSERVEQUEENMUCHASOCASIONESSETIENEQUERESOLVERELMISMO

 */530%6$$*Î/

115

&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNNÞMEROS&IBONACCI

PROBLEMA AUNCUANDOYATENGAMOSUNASOLUCIØNPARAESECASO YESTORESULTACOMPLETA MENTEIMPRÈCTICOADEMÈSDEINElCIENTE%NELEJEMPLOQUESEMUESTRAENLAlGURA &IBONACCI?REC SETUVOQUERESOLVERENCINCOOCASIONES LLAMADASRECURSIVAS   Y !CONTINUACIØNSEPRESENTAUNAVARIANTEITERATIVAPARARESOLVERELPROBLEMADELOS NÞMEROSDE&IBONACCI !LGORITMO &IBONACCI?ITE &IBONACCI?ITE. [%STEALGORITMOCALCULAELNÞMERO&IBONACCICORRESPONDIENTEA.ENFORMAITERATIVA.ESUN VALORNUMÏRICOENTERO POSITIVOONULO] [&)"/ &)"! &)""E)SONVARIABLESDETIPOENTERO]

116 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/  3I. O. ENTONCES (ACER&)"/←. SINO (ACER&)"!← &)""←E)←  [&INDELCONDICIONALDELPASO]  -IENTRAS)≤. 2EPETIR (ACER&)"/←&)"" &)"! &)"!←&)"" &)""←&)"/E)←)   [&INDELCICLODELPASO]  %SCRIBIR&)"/

%NLATABLASEPRESENTANLOSVALORESQUEVANADQUIRIENDOLASVARIABLESDURANTEEL CÈLCULODELNÞMERO&IBONACCI. 4!",!

.

#ÉLCULODELOSNÞMEROS &IBONACCIENFORMAITERATIVA



%JEMPLO

&)"/

&)"!

&)""

)















































)MPRESIØNDEUNARREGLO $ADOCOMODATOUNARREGLOUNIDIMENSIONALDETIPOENTERO ESCRIBAELCONTENIDODELAS CASILLASDELMISMODEIZQUIERDAADERECHA !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO !RREGLO?IMP !RREGLO?IMP! . [%LALGORITMOESCRIBEDEIZQUIERDAADERECHALOSELEMENTOSDEUNARREGLOUNIDIMENSIONAL!DE TIPOENTERO.REPRESENTAELTAMA×ODELARREGLO]  3I.≠ ENTONCES !RREGLO?IMP! .n %SCRIBIR!;.=  [&INDELCONDICIONALDELPASO]

 */530%6$$*Î/

117

&)'52! &UNCIONAMIENTOIN TERNODELARECURSIØN IMPRESIØNDEARREGLOS

%N LA lGURA  SE PUEDE OBSERVAR EL SEGUIMIENTO DEL ALGORITMO PARA UN ARREGLO UNIDIMENSIONALDETIPOENTERODESIETEELEMENTOS /BSERVEQUE%;.=ENLAPILASEUTILIZAPARAMOSTRARELORDENENQUESEREALIZANLAS LLAMADASRECURSIVAS0OROTRAPARTE EN)MPRESIØNDERESULTADOS ELMISMOSÓMBOLOSE UTILIZAPARARELACIONARLALLAMADARECURSIVACONELVALORQUESEIMPRIME

%JEMPLO

)MPRESIØNDEUNARREGLO $ADOCOMODATOUNARREGLOUNIDIMENSIONALDETIPOENTERO ESCRIBAELCONTENIDODELAS CASILLASDELMISMODEDERECHAAIZQUIERDA !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO !RREGLO?IMP !RREGLO?IMP! . [%LALGORITMOESCRIBEDEDERECHAAIZQUIERDALOSELEMENTOSDEUNARREGLOUNIDIMENSIONAL!DE TIPOENTERO.REPRESENTAELTAMA×ODELARREGLO]  3I.≠ ENTONCES %SCRIBIR!;.= !RREGLO?IMP! .n  [&INDELCONDICIONALDELPASO]

%SIMPORTANTESE×ALARQUE ENESTECASO ADIFERENCIADELALGORITMO NOSEUTILIZA LAPILAˆINTERNAMENTEˆPARAIRGUARDANDOINSTRUCCIONESPENDIENTESDEEJECUCIØN,UE GODEEVALUARSELACONDICIØN SIÏSTARESULTAVERDADERASEESCRIBEELVALORDELAPOSICIØN.

118 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ DELARREGLOYSELLAMANUEVAMENTEALAFUNCIØN AHORACON.n5NAVEZQUESEALCANZA ELESTADOBÈSICO ELALGORITMOTERMINA

%JEMPLO

3UMADEUNARREGLO $ADOCOMODATOUNARREGLOUNIDIMENSIONALDETIPOENTERO OBTENGALASUMADELMISMO !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO !RREGLO?SUM !RREGLO?SUM! . [%LALGORITMOOBTIENELASUMADELOSELEMENTOSDEUNARREGLOUNIDIMENSIONAL!DETIPOENTERO .REPRESENTAELTAMA×ODELARREGLO]  3I. ENTONCES (ACER!RREGLO?SUM← SINO (ACER!RREGLO?SUM←!;.= !RREGLO?SUM6 .n  [&INDELCONDICIONALDELPASO]

%NLAlGURASEOBSERVAELSEGUIMIENTODELALGORITMOPARAUNARREGLOUNIDIMEN SIONALDETIPOENTERODESIETEELEMENTOS

&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNSUMADEARREGLOS

 */530%6$$*Î/

119

/BSERVENUEVAMENTEQUEELNÞMEROENTRECORCHETESENLA0ILA SEUTILIZAPARAMOS TRARELORDENCONQUESEREALIZANLASLLAMADASRECURSIVAS%LNÞMEROENTRECORCHETESQUE SEENCUENTRAEN!RREGLO?SUM! . RELACIONALALLAMADARECURSIVACONLOSVALORESQUE RECIBELAFUNCIØN

%JEMPLO

%UCLIDES %LALGORITMODE%UCLIDESREPRESENTAUNMÏTODOEFECTIVOPARAENCONTRARELMÈXIMOCO MÞNDIVISORMCD ENTREDOSNÞMEROSENTEROSPOSITIVOS%LALGORITMOCONSISTEENVARIAS DIVISIONESEUCLIDIANASSUCESIVAS%NLAPRIMERADIVISIØNSETOMACOMODIVIDENDOELMA YORDELOSNÞMEROSYCOMODIVISORELOTROAHORRANDOASÓUNPASO,UEGOELDIVISORYEL RESTOSIRVEN RESPECTIVAMENTE DEDIVIDENDOYDIVISORDELASIGUIENTEDIVISIØN%LPROCESO SEDETIENECUANDOSEOBTIENEUNRESTONULO ,AFØRMULAPRESENTALADElNICIØNRECURSIVADELALGORITMODE%UCLIDES%SIM PORTANTEMENCIONARQUEDEBECUMPLIRSEQUE-≥.!CONTINUACIØNSEPRESENTAELALGO RITMOCORRESPONDIENTE ▼ &ØRMULA

- 3I.

%UCLIDES- .

%UCLIDES. --/$.

%NCUALQUIEROTROCASO

!LGORITMO %UCLIDES %UCLIDES- . [%STEALGORITMOCALCULAELMÈXIMOCOMÞNDIVISORDEDOSNÞMEROSENTEROSPOSITIVOS-Y.SON VALORESNUMÏRICOSENTEROSPOSITIVOS]  3I. ENTONCES (ACER%UCLIDES←SINO (ACER%UCLIDES←%UCLIDES. --/$.  [&INDELCONDICIONALDELPASO]

%NLAlGURASEOBSERVAELSEGUIMIENTODELALGORITMOPARADOSCORRIDASDIFEREN TES%NLAPRIMERA -Y.%NLASEGUNDA -Y. %SIMPORTANTESE×ALARQUE ENESTECASO NOSEUTILIZALAPILAINTERNAMENTEPARAIR GUARDANDOINSTRUCCIONESPENDIENTESDEEJECUCIØN5NAVEZQUESEALCANZAELESTADOBÈ SICO ELALGORITMOTERMINADANDOELRESULTADOlNAL

120 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ &)'52! &UNCIONAMIENTOINTERNODE LARECURSIØNALGORITMO DE%UCLIDES

%JEMPLO

!CKERMANN ,A FUNCIØN DE!CKERMANN UTILIZADA EN LA TEORÓA DE LA COMPUTACIØN ES UNA FUNCIØN RECURSIVAQUETOMADOSNÞMEROSNATURALESCOMOARGUMENTOSYDEVUELVEUNNÞMERONA TURAL,AFØRMULAPRESENTALADElNICIØNRECURSIVADELAFUNCIØNDE!CKERMANN

«N  ® !  M N  ¬ !  M   ® ­ !  M  !  M N 

▼ &ØRMULA

SI M   SI M   Y N   SI M   Y N  

3EGÞN7IKIPEDIA LAFUNCIØNCRECERÈPIDAMENTE0ARADARSEUNAIDEADELAMAGNI TUDDELOSVALORESQUEAPARECENDELAlLAENADELANTECUANDOMESIGUALA SEPUEDE DESTACARQUE POREJEMPLO !  ESMAYORQUEELNÞMERODEPARTÓCULASQUEFORMANEL UNIVERSOELEVADOALAPOTENCIAYELRESULTADODE!  NOSEPUEDEESCRIBIRDADO QUENOCABRÓAENELUNIVERSOFÓSICO%NGENERAL PORENCIMADELAlLAYANOESPOSIBLE ESCRIBIRTODOSLOSDÓGITOSDELRESULTADODELAFUNCIØN %NLATABLASEPRESENTA CONELOBJETODEQUEELLECTORPUEDAOBSERVARLACOM PLEJIDADDELAFUNCIØNCUANDOLOSVALORESSEINCREMENTAN ELRESULTADODELAFUNCIØN DE!CKERMANNYELNIVELDEPROFUNDIDADQUESEALCANZACUANDO-Y.TOMANCIERTOS VALORES

4!",!

-

.

!CKERMANN

0ROFUNDIDAD

!CKERMANNYVALORES DE-Y.































 CONTINÞA

 */530%6$$*Î/ 4!",! CONTINÞACIØN

-

.

!CKERMANN























































121

0ROFUNDIDAD



!CONTINUACIØNSEPRESENTAELALGORITMOQUERESUELVEELPROBLEMADE!CKERMANN !LGORITMO !CKERMANN !CKERMANN- . [%STE ALGORITMO CALCULA LA FUNCIØN DE !CKERMANN - Y . SON VALORES NUMÏRICOS ENTEROS POSITIVOSONULOS]  3I- ENTONCES (ACER!CKERMANN←.  [%STADOBÈSICO] SINO  3I. ENTONCES (ACER!CKERMANN←!CKERMANN-n  SINO (ACER!CKERMANN←!CKERMANN-n !CKERMANN- .n  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%NLAlGURASEPUEDEOBSERVARELSEGUIMIENTODELALGORITMODE!CKERMANNPARA VALORESDE-Y. #ONSIDERE NUEVAMENTE QUE EL NÞMERO ENTRE CORCHETES TANTO EN LA PILA COMO EN !CKERMANN. SEUTILIZAPARAOBSERVARELORDENCONQUESEREALIZANLASLLAMADASRECUR SIVAS

%JEMPLO

!LGORITMODEPARTICIØN %STEALGORITMO RECIENTEMENTEDESCUBIERTO PERMITECONOCERTODASLASFORMASENLASCUA LESUNNÞMEROENTEROPOSITIVOPUEDESERDESCOMPUESTOCOMOLASUMADEVARIOSSUMAN

122 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/

&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNFUNCIØNDE!CKERMANN

DOS,ASOLUCIØNENCONTRADAAESTEPROBLEMAPUEDESERVIRTANTOALAFÓSICADEPARTÓCULAS COMOALASEGURIDADINFORMÈTICA 3EGÞNEL.EW3CIENTIST +ARL-AHLBURG ESTUDIANTEDELA5NIVERSIDADDE7ISCONSIN HADEDICADOUNA×OPARASOLUCIONARELPROBLEMAQUEIMPLICATRABAJARCONPATRONESDENÞ MEROSh(ELLENADODECÈLCULOSYECUACIONESCUADERNOTRASCUADERNOv DICE-AHLBURG ,OSPATRONESFUERONDESCUBIERTOSPORPRIMERAVEZPOR2AMANUJAN  UN HINDÞQUEFUEEXPULSADODELAUNIVERSIDADPORDESCUIDARLOSESTUDIOSDETODOLOQUENO FUERANMATEMÈTICAS3UPASIØNPORLASMATEMÈTICASLELLEVØASEGUIRINVESTIGANDOYAES CRIBIRAMATEMÈTICOSINGLESESEXPONIENDOSUSTEORÓAS!UTODIDACTO EMPEZØATRABAJAREN EL-ADRAS0ORT4RUST YLUEGO EN FUEADMITIDOENLA5NIVERSIDADDE#AMBRIDGE 0OSTERIORMENTEFUEELEGIDOMIEMBRODELA2OYAL3OCIETYYDEL4RINITY#OLLEGE0OCOS A×OSDESPUÏSREGRESØALA)NDIA DONDEFALLECIØTRASUNAMISTERIOSAENFERMEDAD !CONTINUACIØNSEPRESENTALAFØRMULACORRESPONDIENTE

 */530%6$$*Î/

123

▼ &ØRMULA



3I-



3I.

0ARTICIØN- .

0ARTICIØN- -

3I-.

 0ARTICIØN- n-

3I-.

0ARTICIØN- .n 0ARTICIØN-n. . 3I-. !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE

!LGORITMO 0ARTICIØN 0ARTICIØN- . [%STEALGORITMOCALCULADECUANTASFORMASDIFERENTESSEPUEDEDESCOMPONERUNNÞMEROENTERO POSITIVO-Y.SONVALORESNUMÏRICOSENTEROSPOSITIVOS!LINICIARELALGORITMO-.]  3I- O. ENTONCES (ACER0ARTICIØN←[%STADOBÈSICO] SINO 3I-. ENTONCES (ACER0ARTICIØN- - SINO  3I-. ENTONCES (ACER0ARTICIØN← 0ARTICIØN- -n SINO (ACER0ARTICIØN←0ARTICIØN- .n 0ARTICIØN-n. .  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%NLAlGURASEPRESENTAELSEGUIMIENTODELALGORITMOPARAOBTENERELNÞMERODE FORMASENQUESEPUEDEDESCOMPONERELNÞMERO -. /BSERVE NUEVAMENTE QUE EL NÞMERO ENTRE CORCHETES TANTO EN LA PILA COMO EN 0ARTICIØN- . SEUTILIZAPARAOBSERVARELORDENCONQUESEREALIZANLASLLAMADASRE CURSIVAS

124 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/

&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNALGORITMODEPARTICIØN

%JEMPLO

,OSNÞMEROSDE#ATALAN %STOSNÞMEROSSEUTILIZANENUNAGRANVARIEDADDEPROBLEMASDECOMBINATORIA4IENEN VARIASAPLICACIONESPOREJEMPLO DADOSCOMODATOSNMATRICES PERMITENENCONTRAREL NÞMERODEFORMASENQUESEPODRÓANMULTIPLICAR/TRAAPLICACIØNCONSISTEENDETERMINAR ELNÞMERODEFORMASENQUEUNPOLÓGONOCONN LADOSSEPUEDEDESCOMPONERENN TRIÈNGULOS %N COMBINATORIA LOS NÞMEROS DE #ATALAN FORMAN UNA SECUENCIA DE NÞMEROS NA TURALESQUEAPARECEENVARIOSPROBLEMASDECONTEOQUEHABITUALMENTESONRECURSIVOS /BTIENENSUNOMBREDELMATEMÈTICOBELGA%UGÒNE#HARLES#ATALAN   %LENÏSIMONÞMERODE#ATALANSEOBTIENESEGÞNLASIGUIENTEFØRMULA

#N 

 ¥ N´ N  ¦§ N µ¶

▼ &ØRMULA CON N r 

5NAMANERARECURSIVADEEXPRESARLOSNÞMEROSDE#ATALANSEOBSERVAENLASIGUIENTE FØRMULA

 */530%6$$*Î/

125

▼ &ØRMULA



3I.

#ATALAN. . 

¤

#ATALAN) #ATALAN.n) %NCUALQUIEROTROCASO

) 

,OSPRIMEROSNÞMEROSDE#ATALANSIGUIENDOLAFØRMULARECURSIVASON           %LPROBLEMA SINEMBARGO LOREPRESENTALAGRANCANTIDADDELLAMADASRECURSIVASQUE SENECESITANREALIZARPARAALCANZARESTOSRESULTADOS0OREJEMPLO SI.QUEARROJARÓA COMOVALORELNÞMERO SENECESITARÓACASIUNACENTENADELLAMADASRECURSIVAS !CONTINUACIØNSEPRESENTAELALGORITMOQUERESUELVEESTEPROBLEMA !LGORITMO #ATALAN #ATALAN. [%STEALGORITMOOBTIENEELRESULTADODELOSNÞMEROSDE#ATALAN.ESUNVALORNUMÏRICOENTERO POSITIVO] [)Y3SONVARIABLESDETIPOENTERO]  3I. ENTONCES (ACER#ATALAN←[%STADOBÈSICO] SINO (ACER3←  2EPETIRCON)DESDEHASTA. (ACER#ATALAN←3 #ATALAN) #ATALAN.n)  [&INDELCICLODELPASO]  [&INDELCONDICIONALDELPASO]

,AlGURAMUESTRAELSEGUIMIENTODELALGORITMODE#ATALANPARA.

%JEMPLO

#OElCIENTESBINOMIALES %LTRIÈNGULODE0ASCALESUNTRIÈNGULODENÞMEROSENTEROS INlNITOYSIMÏTRICOCUYAS DIEZPRIMERASLÓNEASSEPUEDENOBSERVARENLAlGURA

126 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/

&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNLOSNÞMEROSDE#ATALAN

%LTRIÈNGULOSECONSTRUYEDELASIGUIENTEMANERAPRIMEROSEESCRIBEELDELPRIMER RENGLØN LACIMADELTRIÈNGULO!PARTIRDELASIGUIENTELÓNEAENTRECADANÞMEROSEDEJA UN NÞMERO DETERMINADO DE ESPACIOS EN BLANCO TRES EN ESTE CASO PARA DAR CLARIDAD #ADANÞMEROQUESEESCRIBEENUNRENGLØNESLASUMADELOSDOSQUESEENCUENTRANEN ELRENGLØNDEARRIBA0OREJEMPLO ELQUESEENCUENTRAENMEDIODELSEGUNDORENGLØN REPRESENTALASUMADELOSDOSNÞMEROSQUESEENCUENTRANARRIBADEÏL%LDELQUINTO RENGLØNSEDERIVADELASUMADELOSDOSNÞMEROSDEARRIBA Y%LPRIMERDELSEXTO RENGLØNSEDERIVADELASUMADELOSDOSNÞMEROSQUESEENCUENTRANARRIBA Y YASÓ SUCESIVAMENTE 3EPUEDEOBSERVAR ADEMÈS QUELOSLADOSEXTERIORESDELTRIÈNGULOESTÈNFORMADOS POR3ILEQUITAMOSELLADODELCOSTADOIZQUIERDO ENTONCESNOSQUEDANLOSNÞMEROS NATURALESENORDENCRECIENTEDELAL0ODEMOSHACERLOMISMOCONELOTROCOSTADO YA QUEEXISTEUNEJEDESIMETRÓAVERTICALQUEPASAPORELVÏRTICEDELTRIÈNGULO

 */530%6$$*Î/

127

&)'52! 4RIÉNGULODE0ASCAL

,A FØRMULA QUE DA EL DESARROLLO DE A B  SEGÞN LAS POTENCIAS CRECIENTES DE A Y DECRECIENTES DE B SE LLAMA BINOMIO DE .EWTON %N ESTA EXPRESIØN LO ÞNICO QUE SE DESCONOCESONLOSCOElCIENTESDELOSMONOMIOSAKBNnK,ADElNICIØNHABITUALDELOS COElCIENTESBINOMIALESSEEXPRESAENTÏRMINOSDEFACTORIALES COMOSEPUEDEOBSERVAR ENLAFØRMULA

K N #   b K b N N K   N K 

▼ &ØRMULA

3INEMBARGO TAMBIÏNESPOSIBLEPRESENTARUNADElNICIØNRECURSIVA COMOSEMUES TRAENLASIGUIENTEFØRMULA ▼ &ØRMULA

 3I#".  O#. .

#". +

87.n + #".n +n 3I.+

%LALGORITMODESCRIBELASOLUCIØNDELPROBLEMADELOSCOElCIENTESBINOMIA LES

128 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ !LGORITMO #" #". + [%STE ALGORITMO OBTIENE EL RESULTADO DE LOS COElCIENTES BINOMIALES . Y + SON VALORES NUMÏRICOSENTEROSPOSITIVOSONULOS]  3I+ O.+ ENTONCES (ACER#"←[%STADOBÈSICO] SINO (ACER#"←#".n +n #".n +  [&INDELCONDICIONALDELPASO]

%NLAlGURA SEPUEDEOBSERVARELSEGUIMIENTODELALGORITMOPARA.Y+  .OOLVIDEQUELOSNÞMEROSQUEAPARECENENTRECORCHETESSONPARAILUSTRARELORDEN ENQUESEREALIZANLASLLAMADASRECURSIVAS

&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNCOElCIENTESBINOMIALES

 &-130#-&."%&-"45033&4%&)"/0*

129

 %,02/",%-!$%,!34/22%3$%(!./) %LPROBLEMADELAS4ORRESDE(ANOIESUNPROBLEMACLÈSICODERECURSIØN YAQUEPERTE NECEALACLASEDEPROBLEMASCUYASOLUCIØNSESIMPLIlCANOTABLEMENTEALUTILIZARESTE CONCEPTO 3ETIENENTRESTORRESYUNCONJUNTODE.DISCOSDEDIFERENTESTAMA×OS#ADAUNO DEELLOSTIENEUNAPERFORACIØNENELCENTROQUELEPERMITEDESLIZARSEPORCUALQUIERADE LASTORRES)NICIALMENTELOS.DISCOSESTÈNORDENADOSDEMAYORAMENORENUNADELAS TORRES %LOBJETIVODELPROBLEMACONSISTEENPASARLOS.DISCOSDELATORREDEORIGENAUNA TORREDESTINO UTILIZANDOLAOTRATORREDISPONIBLE COMOAUXILIAR!CONTINUACIØNSEPRE SENTANLASREGLASQUESEDEBENRESPETARENCADAMOVIMIENTO  %NCADAMOVIMIENTOSØLOPUEDEINTERVENIRUNDISCOPORLOTANTO SIEMPRESERÈEL DISCOSUPERIORELQUEPUEDAMOVERSE  .OPUEDEQUEDARUNDISCOSOBREOTRODEMENORTAMA×O 3UPONGAMOS QUE LAS TORRES SE IDENTIlCAN CON LOS NOMBRES ! " Y # ,OS DISCOS INICIALMENTESEENCUENTRANENLATORRE!ˆORIGENˆ%LOBJETIVO COMOSE×ALAMOSANTE RIORMENTE CONSISTEENTRANSFERIRTODOSLOSDISCOSALATORRE"ˆDESTINOˆ UTILIZANDOLA TORRE#COMOAUXILIAR%NLASlGURASAYBSEPRESENTANELESTADOINICIALYELESTADO lNAL RESPECTIVAMENTE DELPROBLEMADELAS4ORRESDE(ANOIPARACINCODISCOS %SIMPORTANTEOBSERVAR SISEANALIZADETENIDAMENTEELPROBLEMA QUEÏSTESEPUEDE DESCOMPONER EN TRES SUBPROBLEMAS UNO DE LOS CUALES EL SEGUNDO SE CONSIDERA TRI VIALIDAD PORQUE IMPLICA ÞNICAMENTE UN MOVIMIENTO 3E MUESTRAN A CONTINUACIØN LOS DIFERENTESSUBPROBLEMAS  4RANSFERIR.n DISCOSDELATORRE!ˆORIGENˆALATORRE#ˆAUXILIARˆ  -OVERUNDISCODELATORRE!ˆORIGENˆALATORRE"ˆDESTINOˆ  4RANSFERIR.n DISCOSDELATORRE#ˆAUXILIARˆALATORRE"ˆDESTINOˆ %NLAlGURASEPRESENTALASOLUCIØNALPROBLEMADELAS4ORRESDE(ANOIPARA DOSDISCOS . /BSERVEQUESEREALIZANTRESMOVIMIENTOS -OVERDE!A# -OVERDE!A" -OVERDE#A" %NLAlGURA POROTRAPARTE SEILUSTRALASOLUCIØNDELPROBLEMADELAS4ORRES DE(ANOIPARATRESDISCOS .0RIMEROSETRANSlERENDOS.n DISCOSDELATORRE! ALATORREAUXILIAR#lGURASB CYD 0OSTERIORMENTESEREALIZAELMOVIMIENTODEL DISCODELATORRE!ALATORREDESTINO"lGURAE &INALMENTESERESUELVEELTERCER SUBPROBLEMA SETRANSlEREN.n DISCOSDELATORRE#ˆAUXILIARˆALATORRE!lGURAS F G H 

130 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ &)'52! 4ORRESDE(ANOI A %STADOINICIAL B Ê%STADOlNAL

,OSMOVIMIENTOSQUESEREALIZANPARARESOLVERESTEPROBLEMASONMOVERDE!A# -OVERDE!A" -OVERDE"A# -OVERDE!A" -OVERDE#A! -OVERDE#A" -OVERDE!A" ,UEGODEREALIZARNUMEROSASPRUEBASPARADISTINTOSVALORESDE. SEPUEDECONCLUIR QUEPARACUALQUIER. ELNÞMERODEMOVIMIENTOS.- ESTÈDADOPORLASIGUIENTEFØR MULA

.-Nn

▼ &ØRMULA

!SÓ POREJEMPLO PARACINCODISCOSSEEFECTUARÈNMOVIMIENTOS PARADIEZDISCOS MOVIMIENTOSYPARADISCOSMOVIMIENTOS !CONTINUACIØNSEPRESENTAELALGORITMORECURSIVOQUEPERMITERESOLVERESTEPRO BLEMA

 &-130#-&."%&-"45033&4%&)"/0* &)'52! 4ORRESDE(ANOI.  A %STADOINICIALB ,UEGO DEMOVERUNDISCODE!A #C ,UEGODEMOVERUN DISCODE!A"D %STADO lNAL

131

132 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ &)'52! 4ORRESDE(ANOI.  A %STADOINICIAL B ,UEGODEMOVERUNDISCO DE!A" C ,UEGODEMOVERUNDISCO DE!A# D ,UEGODEMOVERUNDISCO DE"A#

 &-130#-&."%&-"45033&4%&)"/0* &)'52! CONTINUACIØN E ,UEGODEMOVERUNDISCO DE!A" F ,UEGODEMOVERUNDISCO DE#A! G ,UEGODEMOVERUNDISCO DE#A" H %STADOlNAL

133

134 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ !LGORITMO (ANOI (ANOI. /2)'%. $%34)./ !58),)!2 [%STEALGORITMOOBTIENEYESCRIBELOSMOVIMIENTOSQUESEDEBENREALIZARPARATRANSFERIRLOS. DISCOSDELATORRE/2)'%.ALATORRE$%34)./ CONAYUDADELATORRE!58),)!2]  3I. ENTONCES %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v[%STADOBÈSICO] SINO [-OVER.nDISCOSDELATORRE/2)'%.ALATORRE!58),)!2] (ANOI.n /2)'%. !58),)!2 $%34)./ %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v [-OVER.nDISCOSDELATORRE!58),)!2ALATORRE$%34)./] (ANOI.n !58),)!2 $%34)./ /2)'%.  [&INDELCONDICIONALDELPASO]

%NLAlGURASEMUESTRAELSEGUIMIENTODELALGORITMOPARACUATRODISCOS &)'52! &UNCIONAMIENTOINTERNODELARECURSIØNTORRESDE(ANOI

 &-130#-&."%&-"45033&4%&)"/0*

135

%LALGORITMORECURSIVOANTERIOROFRECEUNASOLUCIØNCLARAYCOMPACTAALPROBLEMA DELAS4ORRESDE(ANOI3INEMBARGO ESPOSIBLETAMBIÏNPRESENTARUNASOLUCIØNITERATIVA AESTEPROBLEMA PEROESCONVENIENTEMENCIONARQUEENESTECASOESMÈSCOMPLICADAY EXTENSA 5NSUBPROGRAMAGENERALMENTETRABAJACONVARIABLESLOCALESYPARÈMETROS#UANDO SEHACEUNALLAMADARECURSIVAALSUBPROGRAMA LOSVALORESACTUALESDEVARIABLESYPARÈ METROSSEDEBENCONSERVAR!DEMÈSSEDEBEALMACENARLADIRECCIØNALACUALSETENDRÈ QUEREGRESARELCONTROLUNAVEZQUESETERMINADEEJECUTAR %L ALGORITMO ANTERIOR TRABAJA CON CUATRO PARÈMETROS . /2)'%. $%34)./ Y !58),)!20ARACONSTRUIRELALGORITMOITERATIVO SISEQUIERENCONSERVARLOSVALORESDE LOSPARÈMETROSENCADALLAMADARECURSIVA SEDEBERÈDElNIRUNAPILAPARACADAUNODE ELLOS/TRAALTERNATIVASERÓADElNIRUNAÞNICAPILA ENLAQUECADAELEMENTOFUERACAPAZ DEALMACENARLOSCUATROPARÈMETROS%NELALGORITMOQUESEVAAPRESENTARSETRABAJACON CUATROPILAS 0),!.PARAALMACENARIMÈGENESDE. 0),!/PARAALMACENARIMÈGENESDE/2)'%. 0),!$PARAALMACENARIMÈGENESDE$%34)./ 0),!8PARAALMACENARIMÈGENESDE!58),)!2 4AMBIÏN SERÈ NECESARIO MANEJAR UN 4/0% PARA LAS PILAS %L SIGUIENTE ALGORITMO PRESENTAUNASOLUCIØNITERATIVAALPROBLEMADELAS4ORRESDE(ANOI !LGORITMO (ANOI?ITE

(ANOI?ITE. /2)'%. $%34)./ !58),)!2 [%STEALGORITMORESUELVEELPROBLEMADELAS4ORRESDE(ANOIDEMANERANORECURSIVA/2)'%. $%34)./Y!58),)!2SONPARÈMETROSQUEREPRESENTANLASTRESTORRES.SIMBOLIZAELNÞMERO DEDISCOS] [0),!. 0),!/ 0),!$Y0),!8SONESTRUCTURASDEDATOSTIPOPILA4/0%ESUNAVARIABLE DE TIPO ENTERO6!2!58 ES UNA VARIABLE DE TIPO CARÈCTER "!.$ ES UNA VARIABLE DE TIPO BOOLEANO]  (ACER4/0%←Y"!.$←&!,3/  -IENTRAS. Y"!.$&!,3/ 2EPETIR  -IENTRAS. 2EPETIR (ACER4/0%←4/0%  0),!.;4/0%=←. 0),!/;4/0%=←/2)'%. 0),!$;4/0%=←$%34)./ 0),!8;4/0%=←!58),)!2 [3IMULALLAMADAA(ANOICON.n /2)'%. !58),)!2Y$%34)./] (ACER.←.n 6!2!58←$%34)./ $%34)./←!58),)!2 Y!58),)!2←6!2!58  [&INDELCICLODELPASO] %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v (ACER"!.$←6%2$!$%2/  3I4/0% [,ASPILASNOESTÈNVACÓAS]

136 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ ENTONCES [3EEXTRAENLOSELEMENTOSDEL4/0%DELAPILAS] (ACER.←0),!.;4/0%= /2)'%.←0),!/;4/0%= $%34)./←0),!$;4/0%= !58),)!2←0),!!;4/0%= Y4/0%←4/0%n %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v [3IMULALLAMADAA(ANOICON.n !58),)!2 $%34)./Y/2)'%.] (ACER.←.n 6!2!58←/2)'%. /2)'%.←!58),)!2 !58),)!2←6!2!58Y"!.$←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

%NLAlGURASEMUESTRAELSEGUIMIENTODELALGORITMOPARATRESDISCOS

&)'52! 3EGUIMIENTODELALGORITMO ITERATIVO4ORRESDE(ANOI

 3&$634*7*%"%&/03%&/"$*Î/:#Ò426&%"

137

 2%#523)6)$!$%.­2"/,%3 ,OSÈRBOLESREPRESENTANLASESTRUCTURASDEDATOSDINÈMICASYNOLINEALESMÈSINTERESAN TESDECOMPUTACIØN,AESTRUCTURADEÈRBOLESBALANCEADOSO!6,ESLAESTRUCTURADE DATOSMÈSElCIENTEPARATRABAJARENLAMEMORIARÈPIDADELACOMPUTADORA0OROTRAPARTE LAESTRUCTURADEDATOS«RBOLES " REPRESENTALAESTRUCTURADEDATOSMÈSElCIENTEPARA TRABAJARENMEMORIASECUNDARIAˆDISPOSITIVOSDEALMACENAMIENTOSECUNDARIOˆ ,OS ÈRBOLES SON UNA ESTRUCTURA INHERENTEMENTE RECURSIVA Y TODAS LAS OPERACIONES QUESEREALIZANENÈRBOLESSEDEBENPROGRAMARENFORMARECURSIVA!DIFERENCIADEOTRAS ESTRUCTURASDEDATOSENLASCUALESLASOPERACIONESSEPUEDENIMPLEMENTARTANTOENFORMA RECURSIVACOMOITERATIVA INDEPENDIENTEMENTEDELASDIFERENCIASQUESEPUEDENOBSERVAR CONRESPECTOALAElCIENCIA ENLOSÈRBOLESSØLOSEPUEDETRABAJARDEMANERARECURSIVA %NELCAPÓTULOCORRESPONDIENTEAÈRBOLESELLECTORPODRÈPRACTICARENFORMAINTENSA LARECURSIVIDAD

 2%#523)6)$!$%./2$%.!#)¼.9"Â315%$! %NLOSCAPÓTULOSYELLECTORPODRÈAPLICARNUEVAMENTEELCONCEPTODERECURSIVIDAD%N ELCAPÓTULOSEPRESENTAELMÏTODOMÈSElCIENTEDEORDENACIØN 1UICKSORT QUEFUNCIONA DEMANERARECURSIVA %NELCAPÓTULO CORRESPONDIENTEABÞSQUEDA ELLECTORPODRÈESTUDIARNUEVAMENTE GRANCANTIDADDEALGORITMOSRECURSIVOS

138 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/

▼ %*%2#)#)/3 Ê £° )NVERSIØN DE CAPITAL 3E HA DEPOSITADO EN UNA INSTITUCIØN BANCARIA UN MONTO DE CAPITALMPORELCUALSERECIBEUN8DEINTERÏSANUAL%LPROBLEMACONSISTEENDE TERMINARELCAPITALQUESETENDRÈALCABODENA×OS%SCRIBAUNSUBPROGRAMARECUR SIVOQUERESUELVAESTEPROBLEMA2ECUERDEQUEDEBEESTABLECERLOSESTADOSBÈSICOY RECURSIVODELPROBLEMA Ê Ó° 2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO Ê Î° %SCRIBA UN SUBPROGRAMA RECURSIVO QUE INVIERTA EL ORDEN DE LOS ELEMENTOS DE UN ARREGLODE.NÞMEROSENTEROS%SDECIR QUEELELEMENTOQUEESTÈENLAPOSICIØNSE INTERCAMBIECONELQUEESTÈENLAPOSICIØN. ELDELAPOSICIØN CONELDELA.n YASÓSUCESIVAMENTE Ê {° 2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO Ê x° %SCRIBAUNSUBPROGRAMARECURSIVOQUEINVIERTAELORDENDEUNACADENADECARACTE RES0OREJEMPLO SILACADENADEENTRADAES2/-! ELRESULTADOQUEDEBEARROJAREL PROGRAMAES!-/2

Ê È° 3ETIENENTRESARREGLOS352 #%.42/Y./24%QUEALMACENANLOSNOMBRESDE LOSPAÓSESDE3UR #ENTROY.ORTEAMÏRICA RESPECTIVAMENTE,OSTRESARREGLOSESTÈN ORDENADOSENFORMAALFABÏTICA%SCRIBAUNSUBPROGRAMARECURSIVOQUEMEZCLELOS TRESARREGLOSANTERIORES FORMANDOUNCUARTOARREGLO !-²2)#! ENELCUALAPA REZCANLOSNOMBRESDETODOSLOSPAÓSESDELCONTINENTEORDENADOSALFABÏTICAMENTE #OMPAREESTASOLUCIØNCONLADESARROLLADAPARAELPROBLEMADELCAPÓTULO Ê Ç° $ADOCOMODATOELSIGUIENTEPROGRAMA SÓGALOYDIGAQUÏIMPRIMEPARALOSSIGUIEN TESVALORESDE88 8 8 08 [8ESUNPARÈMETRODETIPOENTEROPOSITIVO]  3I8 ENTONCES 0←8n SINO (ACER0←008   [&INDELCONDICIONALDELPASO]

&+&3$*$*04

139

Ê n° %SCRIBAUNSUBPROGRAMARECURSIVOQUELEPERMITACALCULARELDETERMINANTEDEUNA MATRIZCUADRADADEDIMENSIØNN Ê ™° %SCRIBAUNSUBPROGRAMARECURSIVOQUEBUSQUEUNVALOR8ENUNARREGLOUNIDIMEN SIONALDEENTEROS ORDENADOENFORMADECRECIENTE £ä°%SCRIBAUNSUBPROGRAMARECURSIVOTALQUEDADOCOMODATOUNARREGLOUNIDIMENSIO NALDEENTEROSPOSITIVOSDEDIMENSIØN. DETERMINESILASSUMASDELASDOSMITADES DELELEMENTOAL.YDELELEMENTO. AL. SONIGUALES ££°%SCRIBAUNSUBPROGRAMARECURSIVOQUEQUITETODOSLOSESPACIOSENBLANCODEUNA CADENADECARACTERES £Ó°$ADOSCOMODATOSDOSNÞMEROSENTEROSPOSITIVOS!Y"ˆELSEGUNDOPUEDESER TAMBIÏNNULOˆ ESCRIBAUNSUBPROGRAMARECURSIVOQUECALCULE!"

£Î°%SCRIBAUNSUBPROGRAMAQUERESUELVALAFUNCIØNDE!CKERMANNENFORMAITERATIVA #OMPARESUSOLUCIØNCONLAANALIZADAENESTELIBRO £{°%SCRIBAUNSUBPROGRAMARECURSIVOQUE DADOCOMODATOUNNÞMEROENTEROPOSITIVO REGRESESITODOSLOSDÓGITOSDEDICHONÞMEROSONPARESYENOTROCASO £x°2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO £È°%SCRIBAUNSUBPROGRAMARECURSIVOQUE DADOCOMODATOUNNÞMEROENTEROPOSITIVO REGRESESIELNÞMEROESDIVISIBLEPORYENOTROCASO%LCRITERIOQUEDEBERÈ USARSEPARADETERMINARSIESDIVISIBLEESQUELADIFERENCIAENTRELASUMADELOSDÓ GITOSQUEOCUPANPOSICIONESPARESYLASUMADELOSDÓGITOSQUEOCUPANPOSICIONES IMPARESSEAUNMÞLTIPLODE0OREJEMPLO SIELNÞMEROES SETIENEQUE   n  YESMÞLTIPLODE £Ç°2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO £n°%SCRIBAUNSUBPROGRAMARECURSIVOQUE DADOCOMODATOUNNÞMEROENTEROPOSITIVO REGRESECOMORESULTADOLASUMADESUSDIVISORES £™°2ETOMEELALGORITMOˆ#ONV?POSTlJAˆOELˆ#ONV?PRElJAˆ DELCAPÓTULO  YDESARROLLEUNAVERSIØNRECURSIVADELMISMO#OMPARESUSOLUCIØNCONLAANALI ZADAENESTELIBRO)DENTIlQUEVENTAJASYDESVENTAJASDECADAUNADEELLAS Óä°%SCRIBAUNSUBPROGRAMARECURSIVOQUEINVIERTAELORDENDELOSELEMENTOSDEUNA PILA0UEDEUTILIZARCUALQUIERESTRUCTURADEDATOSCOMOAUXILIAR SILOREQUIERE

140 >«‰ÌՏœÊ{Ê Ê Ê 3&$634*Î/ Ó£°%SCRIBAUNMÏTODORECURSIVO PARALACLASE#OLA QUEIMPRIMATODOSLOSELEMENTOS DEUNACOLACIRCULAR ÓÓ°2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO Óΰ%SCRIBAUNMÏTODORECURSIVO PARALACLASE#OLA QUEINVIERTAELORDENDELOSELE MENTOSDEUNACOLA0UEDEUTILIZARCUALQUIERESTRUCTURADEDATOSCOMOAUXILIAR SILO REQUIERE

#APÓTULO

x

,)34!3  ).42/$5##)¼. ,ASESTRUCTURASDEDATOSPRESENTADASHASTAELMOMENTO ARREGLOSYREGISTROS SEDENOMI NANESTÈTICAS2ECIBENESTENOMBREDEBIDOAQUEDURANTELACOMPILACIØNSELESASIGNAUN ESPACIODEMEMORIA YÏSTEPERMANECEINALTERABLEDURANTELAEJECUCIØNDELPROGRAMA %NESTECAPÓTULOSEPRESENTALAESTRUCTURADEDATOSLISTA%STEESUNTIPODEESTRUCTURA LINEALYDINÈMICADEDATOS,INEALPORQUEACADAELEMENTOLEPUEDESEGUIRSØLOOTROELE MENTODINÈMICAPORQUESEPUEDEMANEJARLAMEMORIADEMANERAmEXIBLE SINNECESIDAD DERESERVARESPACIOCONANTELACIØN ,APRINCIPALVENTAJADEMANEJARUNTIPODINÈMICODEDATOSESQUESEPUEDENADQUI RIRPOSICIONESDEMEMORIAAMEDIDAQUESENECESITANÏSTASSELIBERANCUANDOYANOSE REQUIEREN!SÓESPOSIBLECREARESTRUCTURASDINÈMICASQUESEEXPANDANOCONTRAIGAN SE GÞNSELESAGREGUEOELIMINEELEMENTOS%LDINAMISMODEESTASESTRUCTURASSOLUCIONAEL PROBLEMADEDECIDIRCUÈLESLACANTIDADØPTIMADEMEMORIAQUESEDEBERESERVARPARAUN PROBLEMAESPECÓlCO3INEMBARGO ESIMPORTANTEDESTACARQUELASESTRUCTURASDINÈMICAS NOPUEDENREEMPLAZARALOSARREGLOSENTODASSUSAPLICACIONES%XISTENNUMEROSOSCASOS QUEPODRÓANFÈCILMENTESERSOLUCIONADOSAPLICANDOARREGLOS MIENTRASQUESISEUTILIZARAN ESTRUCTURASDINÈMICAS COMOLASLISTAS LASOLUCIØNDEESTOSPROBLEMASSECOMPLICARÓA ,AS LISTAS LIGADAS SON COLECCIONES DE ELEMENTOS LLAMADOS NODOS EL ORDEN ENTRE ÏSTOSSEESTABLECEPORMEDIODEUNTIPODEDATOSDENOMINADOPUNTEROS APUNTADORES DIRECCIONESOREFERENCIASAOTROSNODOS0ORTANTO SIEMPREESIMPORTANTEDISTINGUIREN TREUNDATODETIPOAPUNTADORYELDATOCONTENIDOENLACELDAALCUALÏSTEAPUNTA3EUSARÈ LANOTACIØN0←>$PARAINDICARQUE0ESUNAPUNTADORALNODO$ #REAR0 PARASE×ALAR ELPROCESODEASIGNACIØNDEMEMORIAALNODO0 Y1UITAR0 PARAINDICARELPROCESO INVERSOESDECIR CUANDOSELIBERAUNAPOSICIØNDEMEMORIAAPUNTADAPOR0 ,ASOPERACIONESMÈSIMPORTANTESQUESEREALIZANENLASESTRUCTURASDEDATOSSONLAS DEBÞSQUEDA INSERCIØNYELIMINACIØN3EUTILIZANTAMBIÏNPARACOMPARARLAElCIENCIA DELASESTRUCTURASDEDATOSYDEESTAFORMAOBSERVARCUÈLESLAESTRUCTURAQUEMEJORSE ADAPTAALTIPODEPROBLEMAQUESEQUIERARESOLVER,ABÞSQUEDA POREJEMPLO ESUNA OPERACIØNQUENOSEPUEDEREALIZARENFORMAElCIENTEENLASLISTAS0OROTRAPARTE LAS OPERACIONESDEINSERCIØNYELIMINACIØNSEEFECTÞANDEMANERAElCIENTEENESTETIPODE ESTRUCTURASDEDATOS %STECAPÓTULOSEDEDICARÈALASESTRUCTURASDINÈMICASLINEALESLLAMADASLISTASEN TREELLASSEDISTINGUENTRESTIPOSLISTASSIMPLEMENTELIGADAS LISTASDOBLEMENTELIGADAS

142 >«‰ÌՏœÊxÊ Ê Ê -*45"4 YLISTASCIRCULARES%NELSIGUIENTECAPÓTULOSEPRESENTARÈNLASESTRUCTURASDINÈMICAS NOLINEALES DENOMINADASÈRBOLES

 ,)34!33)-0,%-%.4%,)'!$!3 5NALISTASIMPLEMENTELIGADACONSTITUYEUNACOLECCIØNDEELEMENTOSLLAMADOSNODOS %LORDENENTREÏSTOSSEESTABLECEPORMEDIODEPUNTEROSESDECIR DIRECCIONESOREFE RENCIASAOTROSNODOS5NTIPOESPECIALDELISTASIMPLEMENTELIGADAESLALISTAVACÓA,A lGURAPRESENTALAESTRUCTURADEUNNODODEUNALISTASIMPLEMENTELIGADA %NGENERAL UNNODOCONSTADEDOSPARTES ◗ ◗

5NCAMPO).&/2-!#)».QUESERÈDELTIPODELOSDATOSQUESEQUIERAALMACENAR ENLALISTA 5NCAMPO,)'! DETIPOPUNTERO QUESEUTILIZAPARAESTABLECERLALIGAOELENLACE CONOTRONODODELALISTA3IELNODOFUERAELÞLTIMODELALISTA ESTECAMPOTENDRÈ COMOVALOR.),ˆVACÓOˆ!LEMPLEARSEELCAMPOLIGAPARARELACIONARDOSNODOS NOSERÈNECESARIOALMACENARFÓSICAMENTEALOSNODOSENESPACIOSCONTIGUOS

%NLAlGURASEPRESENTAUNEJEMPLODEUNALISTASIMPLEMENTELIGADAQUEALMACE NAAPELLIDOS%LPRIMERNODODELALISTAESAPUNTADOPORUNAVARIABLE0 DETIPOAPUNTADOR ˆ0ALMACENALADIRECCIØNDELPRIMERNODOˆ%LCAMPOLIGADELÞLTIMONODODELALISTA TIENEUNVALOR.), QUEINDICAQUEDICHONODONOAPUNTAANINGÞNOTRO%LAPUNTADOR ALINICIODELALISTAESIMPORTANTEPORQUEPERMITEPOSICIONARNOSENELPRIMERNODODELA MISMAYTENERACCESOALRESTODELOSELEMENTOS3I PORALGUNARAZØN ESTEAPUNTADORSE EXTRAVIARA ENTONCESPERDERÓAMOSTODALAINFORMACIØNALMACENADAENLALISTA0OROTRA PARTE SI LA LISTA SIMPLEMENTE LIGADA ESTUVIERA VACÓA ENTONCES EL APUNTADOR AL INICIO TENDRÈELVALOR.),

 /PERACIONESCONLISTASSIMPLEMENTELIGADAS ,ASOPERACIONESQUEPUEDENEFECTUARSEENUNALISTASIMPLEMENTELIGADASON ◗ ◗ ◗ ◗

&)'52! %STRUCTURADEUNNODO

2ECORRIDODELALISTA )NSERCIØNDEUNELEMENTO "ORRADODEUNELEMENTO "ÞSQUEDADEUNELEMENTO

 -*45"44*.1-&.&/5&-*("%"4

143

&)'52! %JEMPLODELISTA

!NTESDEANALIZARCADAUNADEESTASOPERACIONES SEPRESENTARÈUNALGORITMOQUE PERMITECREARUNALISTASIMPLEMENTELIGADA ALINCORPORARCADANUEVONODOALINICIO !LGORITMO #REA?INICIO #REA?INICIO [%STEALGORITMOPERMITECREARUNALISTASIMPLEMENTELIGADA AGREGANDOCADANUEVONODOAL INICIODELAMISMA] [0Y1SONVARIABLESDETIPOPUNTERO,OSCAMPOSDELNODOSON).&/ QUESERÈDELTIPODE DATOSQUESEQUIERAALMACENARENLALISTA Y,)'!DETIPOAPUNTADOR0APUNTAALINICIODELA LISTA2%3ESUNAVARIABLEDETIPOENTERO]  #REAR0 [3ECREAELPRIMERNODODELALISTASIMPLEMENTELIGADA]  ,EER0>).&/  (ACER0>,)'!←.),  %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov  ,EER2%3  -IENTRAS2%3 2EPETIR #REAR1 ,EER1>).&/ (ACER1>,)'!←0Y0←1 %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov ,EER2%3  [&INDELCICLODELPASO]

6EAMOSUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEESTEALGORITMO

%JEMPLO

$ADOSLOSSIGUIENTESDATOS'ARCÓA 0ÏREZ ,ØPEZY3ANTOS GENEREUNALISTASIMPLEMENTE LIGADAMEDIANTEELALGORITMO%NLASIGUIENTElGURASEPUEDEOBSERVAR PASOAPASO CØMOSEVACONSTRUYENDOLALISTA #OMOSEAPRECIAENLAlGURAD LALISTAQUEDØENORDENINVERSOCONRESPECTOAL ORDENENELQUEFUERONDADOSLOSDATOS0ARALOGRARQUELOSDATOSQUEDENENELORDENEN ELQUEFUERONDADOS SEDEBEAGREGARCADANODOALlNALDELALISTA!CONTINUACIØNSE PRESENTAUNALGORITMOQUEPERMITECREARUNALISTASIMPLEMENTELIGADA ALINCORPORARCADA NUEVONODOALlNAL

144 >«‰ÌՏœÊxÊ Ê Ê -*45"4 &)'52! #REACIØNDELISTASA ,UEGO DECREARELPRIMERNODO B ,UEGODEINSERTARAh0Ï REZvC ,UEGODEINSERTAR Ah,ØPEZvD ,UEGODE INSERTARAh3ANTOSv .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ALINSERTARUNNUEVOELEMENTO ALINICIODELALISTA

!LGORITMO #REA?lNAL #REA?lNAL [%STEALGORITMOPERMITECREARUNALISTASIMPLEMENTELIGADA AGREGANDOCADANUEVONODOAL lNALDELAMISMA] [0 1Y4SONVARIABLESDETIPOAPUNTADOR,OSCAMPOSDELNODOSON).&/ QUESERÈDELTIPO DEDATOSQUESEQUIERAALMACENARENLALISTA Y,)'!DETIPOAPUNTADOR0APUNTAALINICIODELA LISTA2%3ESUNAVARIABLEDETIPOENTERO]  #REAR0 [3ECREAELPRIMERNODODELALISTA]  ,EER0>).&/  (ACER0>,)'!←.),Y4←0  %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov  ,EER2%3  -IENTRAS2%3 2EPETIR #REAR1 ,EER1>).&/ (ACER1>,)'!←.), 4>,)'!←1Y4←1[4APUNTAALÞLTIMONODO] %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov ,EER2%3  [&INDELCICLODELPASO]

 -*45"44*.1-&.&/5&-*("%"4

145

6EAMOSUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEESTEALGORITMO

%JEMPLO

3EUTILIZANLOSDATOSDELEJEMPLOANTERIORPARACREARUNALISTAAPLICANDOELALGORITMO %SIMPORTANTEOBSERVARQUEENESTEALGORITMOSEUTILIZAOTRAVARIABLEDETIPOAPUNTADOR PARAMANTENERLADIRECCIØNDELÞLTIMONODODELALISTA DETALMANERAQUESEPUEDAES TABLECERELENLACEENTREÏSTEYELNUEVONODO%NLAlGURASEPUEDEOBSERVAR PASOA PASO CØMOSEVACONSTRUYENDOESALISTA

&)'52! #REACIØNDELISTASA ,UEGO DECREARELPRIMERNODO B ,UEGODEINSERTARAh0Ï REZvC ,UEGODEINSERTAR Ah,ØPEZvD ,UEGODE INSERTARAh3ANTOSv .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ALINSERTARUNNUEVOELEMENTO ALlNALDELALISTA

 2ECORRIDODEUNALISTASIMPLEMENTELIGADA ,AOPERACIØNDERECORRIDOENUNALISTASIMPLEMENTELIGADACONSISTEENVISITARCADAUNO DELOSNODOSQUEFORMANLALISTA,AVISITAPUEDEIMPLICARUNAOPERACIØNSIMPLEPOR EJEMPLO IMPRIMIRLAINFORMACIØNDELNODO OUNACOMPLEJA DEPENDIENDODELPROBLEMA QUESEINTENTERESOLVER 0ARA RECORRER TODOS LOS NODOS DE UNA LISTA SIMPLEMENTE LIGADA SE COMIENZA CON EL PRIMERO 3E TOMA EL VALOR DEL CAMPO ,)'! DE ÏSTE Y SE AVANZA AL SEGUNDO Y ASÓ SUCESIVAMENTEHASTALLEGARALÞLTIMONODO CUYOCAMPO,)'!TIENEELVALOR.),%N GENERAL LADIRECCIØNDEUNNODO EXCEPTOELPRIMERO ESTÈDADAPORELCAMPO,)'!DE SUPREDECESOR %L ALGORITMO  PRESENTA LOS PASOS NECESARIOS PARA RECORRER UNA LISTA EN FORMA ITERATIVA

146 >«‰ÌՏœÊxÊ Ê Ê -*45"4 !LGORITMO 2ECORRE?ITERATIVO 2ECORRE?ITERATIVO0 [%STEALGORITMORECORREUNALISTACUYOPRIMERNODOESTÈAPUNTADOPOR0] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA]  (ACER1←0  -IENTRAS1≠.), 2EPETIR %SCRIBIR1>).&/ (ACER1←1>,)'![!PUNTAALSIGUIENTENODODELALISTA]  [&INDELCICLODELPASO]

,ASLISTASSEPUEDENMANEJARFÈCILMENTECONPROCESOSRECURSIVOS%LALGORITMO CONSTITUYEUNAVERSIØNRECURSIVAPARARECORRERUNALISTASIMPLEMENTELIGADA !LGORITMO 2ECORRE?RECURSIVO 2ECORRE?RECURSIVO0 [%STEALGORITMORECORREUNALISTASIMPLEMENTELIGADAENFORMARECURSIVA0ESUNAPUNTADORAL NODOQUESEVAAVISITAR,APRIMERAVEZTRAELADIRECCIØNDELPRIMERNODODELALISTA] [).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA]  3I0≠.),ENTONCES %SCRIBIR0>).&/ ,LAMARA2ECORRE?RECURSIVOCON0>,)'! [,LAMADARECURSIVACONELAPUNTADORALSIGUIENTENODODELALISTA]  [&INDELCONDICIONALDELPASO]

6EAMOSAHORALAOPERACIØNDEINSERCIØNENLISTASSIMPLEMENTELIGADAS

 )NSERCIØNENLISTASSIMPLEMENTELIGADAS ,AOPERACIØNDEINSERCIØNENLISTASSIMPLEMENTELIGADASCONSISTEENAGREGARUNNUEVO NODOALALISTA3INEMBARGO DEPENDIENDODELAPOSICIØNENLAQUESEDEBAINSERTAREL NODO SEPUEDENPRESENTARDIFERENTESCASOS COMOLOSQUESESE×ALANACONTINUACIØN ◗ ◗ ◗ ◗

)NSERTARUNNODOALINICIODELALISTA )NSERTARUNNODOALlNALDELALISTA )NSERTARUNNODOANTESQUEOTROCUYAINFORMACIØNES8 )NSERTARUNNODODESPUÏSQUEOTROCUYAINFORMACIØNES8

 -*45"44*.1-&.&/5&-*("%"4

147

.OSECONSIDERARÈENESTOSALGORITMOSELCASODEQUELALISTAESTÏVACÓAESTACON DICIØN SE PUEDE INCLUIR YA SEA AL INICIO DEL ALGORITMO O EN EL PROGRAMA PRINCIPAL 3E CONSIDERARÈENTONCESQUELALISTAENLACUALSEVAAINSERTARELNUEVONODOYAEXISTEˆPOR LOMENOSTIENEUNNODOˆ

>®Ê ˜ÃiÀVˆ˜Ê>Êˆ˜ˆVˆœÊ`iÊ՘>ʏˆÃÌ>ÊÊ Ê Ãˆ“«i“i˜Ìiʏˆ}>`> %N ESTE CASO ELNUEVONODOSECOLOCAALPRINCIPIODELALISTASIMPLEMENTELIGADA CON VIRTIÏNDOSEENELPRIMERODEELLA%LPROCESOESRELATIVAMENTESIMPLE COMOSEPUEDE OBSERVARENELSIGUIENTEALGORITMO !LGORITMO )NSERTA?INICIO )NSERTA?INICIO0 $!4/ [%STEALGORITMOINSERTAUNNODOALINICIODEUNALISTASIMPLEMENTELIGADA0ESELAPUNTADORAL PRIMERNODODELAMISMA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA]  #REAR1  (ACER1>).&/←$!4/ 1>,)'!←0Y0←1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALINICIODELALISTA

L )NSERCIØNALlNALDEUNALISTASIMPLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAALlNALDELALISTASIMPLEMENTELIGADA CONVIRTIÏN DOSEENELÞLTIMO%LALGORITMODESCRIBEESTEPROCESO

&)'52! )NSERCIØNALINICIODELA LISTA .OTA,AmECHADISCONTINUA INDICALOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOALINICIODELALISTA

148 >«‰ÌՏœÊxÊ Ê Ê -*45"4 !LGORITMO )NSERTA?lNAL )NSERTA?lNAL0 $!4/ [%STEALGORITMOINSERTAUNNODOALlNALDEUNALISTASIMPLEMENTELIGADA0ESELAPUNTADORAL PRIMERNODODELALISTA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO] [1Y4SONVARIABLESDETIPOPUNTERO).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA]  (ACER4←0  -IENTRAS4>,)'!≠.), 2EPETIR [2ECORRELALISTAHASTALLEGARALÞLTIMOELEMENTO] (ACER4←4>,)'!  [&INDELCICLODELPASO]  #REAR1  (ACER1>).&/←$!4/ 1>,)'!←.),Y4>,)'!←1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALlNALDELALISTA 3IENCADALISTASIMPLEMENTELIGADASEUTILIZARANDOSAPUNTADORES UNOALPRIMER NODOYOTROALÞLTIMOlGA ENTONCESELPROCESODEINSERCIØNALlNALSESIMPLIl CARÓA YAQUENOSERÓANECESARIORECORRERLATODAPARALLEGARALlNAL%LNUEVONODOSE PODRÓAINCORPORARDIRECTAMENTEVERlGB COMOENELCASODEINSERCIØNALINICIODE LALISTA

C®Ê )NSERCIØNDEUNNODOANTESQUEOTROENUNALISTA

SIMPLEMENTELIGADA %NESTETIPODEINSERCIØNENLISTASSIMPLEMENTELIGADAS ELNUEVONODOSEDEBECOLOCAR ANTES DE OTRO NODO DADO COMO REFERENCIA 3E PUEDEN PRESENTAR DIFERENTES CASOS POR EJEMPLO QUEELNODODADOCOMOREFERENCIANOSEENCUENTREENLALISTAOQUEELNUEVO NODOAINSERTARSECONVIERTAENELPRIMERO3EASUME COMOSEHASE×ALADOANTERIORMEN TE QUELALISTANOESTÈVACÓA

&)'52! )NSERCIØNALlNALDELALISTA .OTA,AmECHADISCONTINUA INDICANLOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOALlNALDELALISTA

 -*45"44*.1-&.&/5&-*("%"4

149

&)'52! )NSERCIØNENUNALISTACON PUNTEROSALINICIOYALlNAL DELAMISMAA ,ISTACON PUNTEROALINICIO 0 YAL lNAL 4B ,ISTALUEGODE LAINSERCIØNDEUNNUEVO ELEMENTOALlNALDELA MISMA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOALlNALDELALISTA

!LGORITMO )NSERTA?ANTES?8 )NSERTA?ANTES?80 $!4/ 8 [%STEALGORITMOINSERTAUNNODOANTESDEUNNODODADOCOMOREFERENCIAENUNALISTASIMPLE MENTELIGADA0ESELAPUNTADORALPRIMERNODODELALISTA $!4/INDICALAINFORMACIØNQUE SEALMACENARÈENELNUEVONODO Y8REPRESENTAELCONTENIDOˆINFORMACIØNˆDELNODODADO COMOREFERENCIA] [1 8Y4SONVARIABLESDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELA LISTA"!.$ESUNAVARIABLEDETIPOENTERO]  (ACER1←0Y"!.$←  -IENTRAS1>).&/≠8 Y"!.$ 2EPETIR  3I1>,)'!≠.), ENTONCES (ACER4←1Y1←1>,)'! SINO (ACER"!.$←  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.$ ENTONCES #REAR8 (ACER8>).&/←$!4/  3I01 [%LNODODADOCOMOREFERENCIAESELPRIMERO] ENTONCES (ACER8>,)'!←0Y0←8 SINO

150 >«‰ÌՏœÊxÊ Ê Ê -*45"4

(ACER4>,)'!←8Y8>,)'!←1  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LNODODADOCOMOREFERENCIANOSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNDEUNNODOANTESQUEOTRODADO COMOREFERENCIAENUNALISTASIMPLEMENTELIGADA APLICANDOELALGORITMOANTERIOR

D Ê )NSERCIØNDEUNNODODESPUÏSDEOTRO

ENUNALISTASIMPLEMENTELIGADA %NESTETIPODEINSERCIØNENLISTASSIMPLEMENTELIGADAS ELNUEVONODOSEDEBECOLO CARDESPUÏSDEOTRODADOCOMOREFERENCIA3EPUEDENPRESENTARDIFERENTESCASOSPOR EJEMPLO QUEELNODODADOCOMOREFERENCIANOSEENCUENTREENLALISTAOQUEELNUEVO SECONVIERTAENELÞLTIMODELALISTA3EASUME COMOSEHASE×ALADO QUELALISTANOESTÈ VACÓA!CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO )NSERTA?DESPUÏS?8 )NSERTA?DESPUÏS?80 $!4/ 8 [%STEALGORITMOINSERTAUNNODODESPUÏSDEOTRODADOCOMOREFERENCIAENUNALISTASIMPLEMENTE LIGADA 0 ES EL APUNTADOR AL PRIMER NODO DE LA LISTA $!4/ INDICA LA INFORMACIØN QUE SE

&)'52! )NSERCIØNDENODOS .OTA,ASmECHASDISCON TINUASINDICANLOSCAMBIOS ORIGINADOSPORLAINSERCIØN DEUNNUEVONODOPRECE DIENDOAOTRO DADOCOMO REFERENCIA

 -*45"44*.1-&.&/5&-*("%"4

151

ALMACENARÈENELNUEVONODO Y8REPRESENTAELCONTENIDOˆINFORMACIØNˆDELNODODADO COMOREFERENCIA] [1Y4SONVARIABLESDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELALISTA "!.$ESUNAVARIABLEDETIPOENTERO]  (ACER1←0Y"!.$←  -IENTRASF>).&/≠8 Y"!.$ 2EPETIR  3I1>,)'!≠.), ENTONCES (ACER1←1>,)'! SINO (ACER"!.$←  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.$ ENTONCES #REAR4 (ACER4>).&/←$!4/ 4>,)'!←1>,)'!Y1>,)'!←4 SINO %SCRIBIRh%LNODODADOCOMOREFERENCIANOSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

%JEMPLO

&)'52! )NSERCIØNDENODOS .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOSUCEDIENDOAOTRODADO COMOREFERENCIA

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNDEUNNODODESPUÏSDEOTRODADO COMOREFERENCIA ENLISTASSIMPLEMENTELIGADASAPLICANDOELALGORITMOANTERIOR #ABESE×ALARQUEENLASOPERACIONESDELISTASTRATADASHASTAELMOMENTO NOSEHA CONSIDERADOELORDENENTRELOSELEMENTOS3ISESUPONEQUELALISTAESTÈORDENADA ENEL MOMENTODEINSERTARUNNUEVONODOHABRÈQUEMANTENERELORDENPREVIAMENTEESTABLE CIDO

152 >«‰ÌՏœÊxÊ Ê Ê -*45"4

 %LIMINACIØNENLISTASSIMPLEMENTELIGADAS ,AOPERACIØNDEELIMINACIØNENLISTASSIMPLEMENTELIGADASCONSISTEENELIMINARUNNODO DELALISTAYLIBERARELESPACIODEMEMORIACORRESPONDIENTE$EPENDIENDODELAPOSICIØN ENLAQUEÏSTESEENCUENTRE SEPUEDENPRESENTARDIFERENTESCASOS COMOLOSQUESESE×A LANACONTINUACIØN ◗ ◗ ◗ ◗ ◗

%LIMINARELPRIMERNODO %LIMINARELÞLTIMONODO %LIMINARUNNODOCONINFORMACIØN8 %LIMINARELNODOANTERIORALNODOCONINFORMACIØN8 %LIMINARELNODOPOSTERIORALNODOCONINFORMACIØN8

#ABEDESTACARQUEENLOSALGORITMOSQUESEPRESENTANACONTINUACIØNNOSECON SIDERAQUELALISTAESTÏVACÓA%STACONDICIØNSEPUEDEEVALUARFÈCILMENTEALINICIODEL ALGORITMOOBIENENELPROGRAMAPRINCIPAL

A Ê %LIMINARELPRIMERNODODEUNALISTA

SIMPLEMENTELIGADA %STAOPERACIØNESMUYSENCILLA YAQUESØLOESNECESARIOREDElNIRELAPUNTADORALINICIO DELALISTA3IÏSTAQUEDARAVACÓAESDECIR SILALISTATENÓASØLOUNELEMENTO ENTONCES APUNTARÓAA.),%NELSIGUIENTEALGORITMOSEDESCRIBEESTECASO !LGORITMO %LIMINA?INICIO %LIMINA?INICIO0 [%STEALGORITMOPERMITEELIMINARELPRIMERELEMENTODEUNALISTASIMPLEMENTELIGADA0ESEL APUNTADORALPRIMERNODODELALISTA] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELALISTA]  (ACER1←0 [3ILALISTATUVIERASØLOUNELEMENTOENTONCESA0SELEASIGNARÓA.), QUEESELVALORDE 1>,)'!%NCASOCONTRARIO QUEDACONLADIRECCIØNDELSIGUIENTENODO]  (ACER0←1>,)'![2EDElNEELPUNTEROALINICIODELALISTA]  1UITAR1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELPRIMERNODODEUNALISTA SIMPLEMENTELIGADA APLICANDOELALGORITMOANTERIOR

 -*45"44*.1-&.&/5&-*("%"4

153

&)'52! %LIMINACIØNDELPRIMER NODODEUNALISTA

B Ê %LIMINARELÞLTIMONODODEUNALISTA

SIMPLEMENTELIGADA %NESTECASOSEDEBEELIMINARELÞLTIMONODODEUNALISTASIMPLEMENTELIGADA%SIMPOR TANTEOBSERVARQUEPARAALCANZARELÞLTIMONODO SEDEBERECORRERTODALALISTA EXCEPTOSI SEUSARAUNAPUNTADORQUEINDIQUESUlNAL!CONTINUACIØNSEPRESENTAUNALGORITMODE SOLUCIØN CONSIDERANDOQUESOLAMENTESETIENEUNAPUNTADORALINICIODELALISTA !LGORITMO %LIMINA?ÞLTIMO %LIMINA?ÞLTIMO0 [%STE ALGORITMO PERMITE ELIMINAR EL ÞLTIMO NODO DE UNA LISTA SIMPLEMENTE LIGADA 0 ES EL APUNTADORALPRIMERNODODELALISTA] [1 Y 4 SON VARIABLES DE TIPO APUNTADOR ).&/ Y ,)'! SON LOS CAMPOS DE LOS NODOS DE LA LISTA]  (ACER1← 0  3I0>,)'!.), [3EVERIlCASILALISTATIENESØLOUNNODO] ENTONCES (ACER0←.), SINO  -IENTRAS1>,)'!≠.), 2EPETIR (ACER4←1Y1←1>,)'!  [&INDELCICLODELPASO] (ACER4>,)'!←.),  [&INDELCONDICIONALDELPASO]  1UITAR1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELÞLTIMONODODEUNALISTA SIMPLEMENTELIGADA

154 >«‰ÌՏœÊxÊ Ê Ê -*45"4 &)'52! %LIMINACIØNDELÞLTIMO NODODEUNALISTA .OTA,AmECHADISCONTINUA INDICALOSCAMBIOSORIGINADOS PORLAELIMINACIØNDELÞLTIMO NODODELALISTA

C Ê %LIMINARUNNODOCONINFORMACIØN8ÊÊ Ê DEUNALISTASIMPLEMENTELIGADA ,AELIMINACIØNDEUNNODOCONINFORMACIØN8ESUNODELOSCASOSCOMPLICADOSDEESTA OPERACIØN PORQUESEPUEDENPRESENTARDIFERENTESVARIANTES0OREJEMPLO ELNODOPUEDE SERELPRIMERO ELÞLTIMO ELÞNICOONOENCONTRARSEENLALISTA%LALGORITMODESCRIBE ESTEPROCESO !LGORITMO %LIMINA?8 %LIMINA?80 8 [%STEALGORITMOELIMINAUNNODOCONINFORMACIØN8DEUNALISTASIMPLEMENTELIGADA0ESEL APUNTADORALPRIMERNODODELALISTA] [1Y4SONVARIABLESDETIPOAPUNTADOR"!.$ESUNAVARIABLEDETIPOENTERO).&/Y,)'! SONLOSCAMPOSDELOSNODOSDELALISTA]  (ACER1←0Y"!.$←  -IENTRAS1>).&/≠8 Y"!.$ 2EPETIR  3I1>,)'!≠.), ENTONCES (ACER4←1Y1←1>,)'! SINO (ACER"!.$←  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.$ ENTONCES %SCRIBIRh%LELEMENTOCONINFORMACIØN8NOSEENCUENTRAENLALISTAv SINO  3I01 [3EVERIlCASIELELEMENTOAELIMINARESELPRIMERO] ENTONCES (ACER0←1>,)'! SINO (ACER4>,)'!←1>,)'!  [&INDELCONDICIONALDELPASO] 1UITAR1  [&INDELCONDICIONALDELPASO]

 -*45"44*.1-&.&/5&-*("%"4

155

&)'52! %LIMINACIØNDEUNNODOCON INFORMACIØN8 .OTA,AmECHADISCONTINUA INDICALOSCAMBIOSORIGINADOS PORLAELIMINACIØNDELNODO

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDEUNNODOCONINFORMACIØN8 ENUNALISTASIMPLEMENTELIGADA

D Ê %LIMINARELNODOANTERIORALNODOCONINFORMACIØN8

ENUNALISTASIMPLEMENTELIGADA %STEESELCASODEELIMINACIØNMÈSCOMPLICADOENLISTASSIMPLEMENTELIGADAS PORQUE TIENEMUCHASVARIANTES0OREJEMPLO ELNODOCONINFORMACIØN8PUEDESERELPRIMERO ˆENTONCESNOHAYNADAQUEELIMINARˆ ELSEGUNDOˆENTONCESHAYQUEELIMINARELPRI MERODELALISTAˆ ESTARENCUALQUIEROTRAPOSICIØN OBIENNOENCONTRARSEENLALISTA !LGORITMO %LIMINA?ANTES?8 %LIMINA?ANTES?80 8 [%STEALGORITMOPERMITEELIMINARELNODOANTERIORALNODOQUECONTIENELAINFORMACIØN8EN UNALISTASIMPLEMENTELIGADA0ESELAPUNTADORALPRIMERNODODELALISTA] [1 4Y2SONVARIABLESDETIPOAPUNTADOR"!.$ESUNAVARIABLEDETIPOENTERO).&/Y,)'! SONLOSCAMPOSDELOSNODOSDELALISTA]  3I0>).&/8 ENTONCES %SCRIBIRh.OEXISTEUNNODOQUEPRECEDAALQUECONTIENEA8v SINO (ACER1←0 4←0Y"!.$←  -IENTRAS1>).&/≠8 Y"!.$ 2EPETIR  3I1>,)'!≠.), ENTONCES (ACER2←4 4←1Y1←1>,)'! SINO (ACER"!.$←  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.$

156 >«‰ÌՏœÊxÊ Ê Ê -*45"4 ENTONCES %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv SINO  3I0>,)'!1 [%LELEMENTOAELIMINARESELPRIMERO] ENTONCES (ACER0←1 SINO (ACER2>,)'!←1  [&INDELCONDICIONALDELPASO] 1UITAR4  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELNODOANTERIORAOTRODADO COMOREFERENCIA MEDIANTEELALGORITMO 3EDEJAALLECTORLACONSTRUCCIØNDELALGORITMOPARAELIMINARUNNODODESPUÏSDE OTRODADOCOMOREFERENCIA%STEALGORITMOESDEMENORCOMPLEJIDADQUEELPRESENTADO ANTES

 "ÞSQUEDAENLISTASSIMPLEMENTELIGADAS ,AOPERACIØNDEBÞSQUEDADEUNELEMENTOENUNALISTASIMPLEMENTELIGADAESMUYFÈCIL DEREALIZAR AUNQUEINElCIENTEYAQUESELLEVAACABODEFORMASECUENCIAL3EDEBEIR RECORRIENDOLOSNODOSHASTAENCONTRARELQUEESTAMOSBUSCANDOOHASTAQUESELLEGAAL lNALDELALISTA%LALGORITMOESSIMILARALOSQUESEDESARROLLARONPARARECORRERUNALISTA ENFORMAITERATIVAORECURSIVA !LIGUALQUEENELCASODELASOPERACIONESVISTASANTERIORMENTE EXISTEDIFERENCIA ENLOSALGORITMOSSILASLISTASSEENCUENTRANORDENADASODESORDENADAS3ECOMENZARÈ EN PRIMERTÏRMINO CONELALGORITMODEBÞSQUEDAPARALISTASSIMPLEMENTELIGADASQUESE ENCUENTRANDESORDENADAS &)'52! %LIMINACIØNDENODOS .OTA,AmECHADISCONTINUAINDICALOSCAMBIOSORIGINADOSPORLAELIMINACIØNDELNODOANTERIORAUN NODODADOCOMOREFERENCIA

 -*45"44*.1-&.&/5&-*("%"4

157

!LGORITMO "ÞSQUEDA?DESORDENADA "ÞSQUEDA?DESORDENADA0 8 [%STEALGORITMOPERMITEBUSCARELELEMENTOCONINFORMACIØN8ENUNALISTASIMPLEMENTELIGADA QUESEENCUENTRADESORDENADA0ESELAPUNTADORALPRIMERNODODELALISTA] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONCAMPOSDELOSNODOSDELALISTA]  (ACER1←0  -IENTRAS1≠.), Y1>).&/≠8 (ACER1←1>,)'!  [&INDELCICLODELPASO]  3I1.), ENTONCES %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv SINO %SCRIBIRh%LELEMENTOSÓSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

%SIMPORTANTEDESTACARQUECONUNASIMPLEMODIlCACIØNENLACONDICIØNDELCICLO DELPASOSEADAPTEESTEALGORITMOPARALABÞSQUEDADEELEMENTOSENLISTASSIMPLEMENTE LIGADASQUESEENCUENTRANORDENADAS!CONTINUACIØNSEPRESENTAELALGORITMODEBÞS QUEDAENLISTASSIMPLEMENTELIGADASQUESEENCUENTRANORDENADASENFORMAASCENDENTE !LGORITMO "ÞSQUEDA?ORDENADA

"ÞSQUEDA?ORDENADA0 8 [%STEALGORITMOPERMITEBUSCARELELEMENTOCONINFORMACIØN8ENUNALISTASIMPLEMENTELIGADA QUESEENCUENTRAORDENADAENFORMAASCENDENTE0ESELAPUNTADORALPRIMERNODODELALISTA] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELALISTA]  (ACER1←0  -IENTRAS1≠.), Y1>).&/8 (ACER1←1>,)'!  [&INDELCICLODELPASO]  3I1.), O1>).&/8 ENTONCES %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv SINO %SCRIBIRh%LELEMENTOSÓSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

158 >«‰ÌՏœÊxÊ Ê Ê -*45"4 4ODOSLOSALGORITMOSPRESENTADOSTANTOPARALABÞSQUEDA INSERCIØNYELIMINACIØN SEPUEDENIMPLEMENTARDEFORMARECURSIVA!CONTINUACIØNSEMUESTRAUNAVERSIØNRE CURSIVADELALGORITMO !LGORITMO "ÞSQUEDA?RECURSIVO "ÞSQUEDA?RECURSIVO0 8 [%STEALGORITMOPERMITEBUSCARRECURSIVAMENTEAUNELEMENTOCONINFORMACIØN8ENUNALISTA SIMPLEMENTELIGADAQUESEENCUENTRADESORDENADA0ESELAPUNTADORALPRIMERELEMENTODE LALISTA]  3I0≠.), ENTONCES  3I0>).&/8 ENTONCES %SCRIBIRh%LELEMENTOSEENCUENTRAENLALISTAv SINO ,LAMARA"ÞSQUEDA?RECURSIVOCON0>,)'!Y8  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

 ,)34!3#)2#5,!2%3 ,ASLISTASCIRCULARESSONSIMILARESALASLISTASSIMPLEMENTELIGADAS3INEMBARGO TIENEN LA CARACTERÓSTICA DE QUE EL ÞLTIMO ELEMENTO DE LA LISTA APUNTA AL PRIMERO EN LUGAR DE APUNTARALVACÓOO.), 3EDElNEUNALISTASIMPLEMENTELIGADACIRCULARCOMOUNACOLECCIØNDEELEMENTOS LLAMADOSNODOS ENLACUALELÞLTIMONODOAPUNTAALPRIMERO%NLAlGURASEPRE SENTAUNAGRÈlCADEUNALISTACIRCULAR ,ASOPERACIONESENLISTASCIRCULARESSONSIMILARESALASOPERACIONESENLISTASLINEA LESPORTANTO NOSETRATARÈNNUEVAMENTEENESTASECCIØN3INEMBARGO ESIMPORTANTE

&)'52! ,ISTACIRCULAR



 -*45"4%0#-&.&/5&-*("%"4

159

&)'52! ,ISTACIRCULARCONNODO DECABECERA

SE×ALAR QUE PARA EL CASO DE LA OPERACIØN DE RECORRIDO DE LISTAS CIRCULARES SE NECESITA CONSIDERARALGÞNCRITERIOPARADETECTARCUÈNDOSEHANVISITADOTODOSLOSNODOSDELALISTA %STOÞLTIMOCONELPROPØSITODEEVITARCAERENCICLOSINlNITOS5NAPOSIBLESOLUCIØNAL PROBLEMAPLANTEADOCONSISTEENUSARUNNODOEXTRA LLAMADONODODECABECERA PARA INDICARELINICIODELALISTA%STENODOCONTENDRÈINFORMACIØNESPECIAL DETALMANERAQUE SEDISTINGADELOSDEMÈSYASÓPODRÈHACERREFERENCIAALPRINCIPIODELALISTA,AlGURA PRESENTAUNAGRÈlCADEUNALISTACIRCULARCONNODODECABECERA %NLOSALGORITMOSPRESENTADOSPARAOPERARCONLISTASSIMPLEMENTELIGADASSEPUEDE APRECIAR QUE SØLO SE TIENE ACCESO A UN NODO Y AL SUCESOR DE ÏSTE 3I SE NECESITARA SU PREDECESOR POREJEMPLO SETENDRÓANQUEUSARVARIABLESAUXILIARESVÏASEELALGORITMO  5NAMANERADEEVITARESTASITUACIØN ESTENIENDOACCESOALOSNODOSENCUALQUIER ORDENˆANTECESOROSUCESORˆ YADEMÈSRECORRERLALISTADELINICIOALlN OVICEVERSA ,ASLISTASQUECUENTANCONESTAFACILIDADSONLASDOBLEMENTELIGADAS!CONTINUACIØNSE PRESENTAESTETIPODEESTRUCTURAS

 ,)34!3$/",%-%.4%,)'!$!3 5NALISTADOBLEMENTELIGADAESUNACOLECCIØNDENODOS ENLACUALCADAUNODEELLOS TIENEDOSAPUNTADORESlGA UNOAPUNTANDOASUPREDECESOR,)'!):1 YOTROA SUSUCESOR,)'!$%2 0ORMEDIODEESTOSPUNTEROSSEPODRÈENTONCESAVANZARORE TROCEDERATRAVÏSDELALISTA SEGÞNSETOMENLASDIRECCIONESDEUNOUOTROAPUNTADOR,A lGURABREPRESENTAUNALISTADOBLEMENTELIGADAQUEALMACENAAPELLIDOS 0ARA TENER UN FÈCIL ACCESO A LA INFORMACIØN DE LA LISTA ES RECOMENDABLE USAR DOS APUNTADORES 0Y& QUEAPUNTENALPRINCIPIOYALlNALDEÏSTA RESPECTIVAMENTE

 /PERACIONESCONLISTASDOBLEMENTELIGADAS ,ASOPERACIONESQUESEPUEDENLLEVARACABOCONESTETIPODEESTRUCTURASSONLASMISMAS QUECONLISTASSIMPLEMENTELIGADAS%NESTASECCIØNSEPRESENTARÈNLASOPERACIONESDE ◗ ◗ ◗

2ECORRIDODELALISTA )NSERCIØNDEUNELEMENTO "ORRADODEUNELEMENTO

160 >«‰ÌՏœÊxÊ Ê Ê -*45"4 &)'52! %JEMPLODELISTADOBLEMEN TELIGADAA %STRUCTURA DEUNNODOB %JEMPLODE LISTADOBLEMENTELIGADA



 2ECORRIDODEUNALISTADOBLEMENTELIGADA !LTENERCADANODOUNADOBLELIGA LALISTASEPUEDERECORRERTANTODELINICIOALlNAL ME DIANTELASLIGASDERECHAS COMOENSENTIDOINVERSOESDECIR DELlNALALPRINCIPIO CONLAS LIGASIZQUIERDAS#UALQUIERAQUESEALADIRECCIØNDELRECORRIDO ELALGORITMOESSIMILARAL QUESEPRESENTAPARALISTASSIMPLEMENTELIGADAS3EDEJAALLECTORSUDISE×O

 )NSERCIØNENLISTASDOBLEMENTELIGADAS ,AINSERCIØNDEUNELEMENTOCONSISTEENAGREGARUNNUEVONODOALALISTAYESTABLECER LOSAPUNTADORESCORRESPONDIENTES.OSECONSIDERARÈELCASODELISTAVACÓA,AINSERCIØN SEPUEDELLEVARACABO ◗ ◗ ◗

!LINICIODELALISTADOBLEMENTELIGADA !LlNALDELALISTADOBLEMENTELIGADA !NTESDESPUÏSDEUNNODOCONINFORMACIØN8

A Ê )NSERCIØNALINICIODELALISTADOBLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAALPRINCIPIODELALISTAYSEESTABLECENLASLIGAS CORRESPONDIENTES%LNUEVONODOINSERTADOSECONVIERTE ENTONCES ENELPRIMERODELA LISTADOBLEMENTELIGADA%LALGORITMODESCRIBEESTEPROCESO !LGORITMO )NSERTA?PRINCIPIO )NSERTA?PRINCIPIO0 $!4/ [%STEALGORITMOINSERTAUNNODOALINICIODEUNALISTADOBLEMENTELIGADA0ESELAPUNTADORAL PRIMERNODODELALISTAY$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO]

 -*45"4%0#-&.&/5&-*("%"4

161

[1ESUNAVARIABLEDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDECADA NODODELALISTA]  #REAR1 (ACER1>).&/2←$!4/ 1>,)'!$%2←0 0>,)'!):1←1 1>,)'!):1←.),Y0←1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALINICIODEUNALISTADOBLEMENTE LIGADA

B Ê )NSERCIØNALlNALDEUNALISTADOBLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAALlNALDELALISTADOBLEMENTELIGADA CONVIRTIÏNDO SEENELÞLTIMO%LALGORITMODESCRIBEESTEPROCESO !LGORITMO )NSERTA?lNAL )NSERTA?lNAL& $!4/ [%STEALGORITMOINSERTAUNNODOALlNALDEUNALISTADOBLEMENTELIGADA&ESELAPUNTADORAL ÞLTIMONODODELALISTA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO] [1ESUNAVARIABLEDETIPOPUNTERO).&/2 ,)'!):1Y,)'!$%2SONLOSCAMPOSDECADA NODODELALISTA]  #REAR1  (ACER1>).&/2←$!4/ &>,)'!$%2←1 1>,)'!):1←& 1>,)'!$%2←.),Y&←1

%JEMPLO

&)'52! )NSERCIØNALINICIODELA LISTA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAINSERCIØNDEUNNUEVO NODOALINICIODELAMISMA

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALlNALDEUNALISTADOBLEMENTE LIGADA

162 >«‰ÌՏœÊxÊ Ê Ê -*45"4 &)'52! )NSERCIØNALlNALDELALISTA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAINSERCIØNDEUNNUEVO NODO

!LTRABAJARCONUNAPUNTADORALÞLTIMOELEMENTODELALISTA & LAOPERACIØNDEINSER CIØNSESIMPLIlCANOTABLEMENTEYAQUESEEVITARECORRERTODALALISTA

C Ê )NSERCIØNDEUNNODOANTESQUEOTRO

ENUNALISTADOBLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAPRECEDIENDOAOTRODADOCOMOREFERENCIA#ABE SE×ALARQUESØLOSEPRESENTARÈLAOPERACIØNDEINSERCIØNDEUNNODOANTESDEOTRODADO COMOREFERENCIA YAQUELASOPERACIONES!NTES?QUE?OTRO?Y$ESPUÏS?QUE?OTROSONSI MÏTRICAS !LGORITMO )NSERTA?ANTES?8 )NSERTA?ANTES?80 $!4/ 8 [%STEALGORITMOINSERTAUNNODOANTESDEOTRODADOCOMOREFERENCIA CONINFORMACIØN80 ESELAPUNTADORALPRIMERNODODELALISTA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENEL NUEVONODO] [1 4Y2SONVARIABLESDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDE CADANODODELALISTA]  (ACER1←0  -IENTRAS1>,)'!$%2≠.), Y1>).&/2≠8 2EPETIR (ACER1←1>,)'!$%2  [&INDELCICLODELPASO]  3I1>).&/28 ENTONCES #REAR4 [3ECREAELNUEVONODO] (ACER4>).&/2←$!4/ 4>,)'!$%2←1 2←1>,)'!):1 Y1>,)'!):1←4  3I01 ENTONCES (ACER0←4Y4>,)'!):1←.), SINO (ACER2>,)'!$%2←4Y4>,)'!):1←2

 -*45"4%0#-&.&/5&-*("%"4

163

 [&INDELCONDICIONALDELPASO] SINO ESCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØN APLICANDOELALGORITMO

 %LIMINACIØNENLISTASDOBLEMENTELIGADAS ,AOPERACIØNDEELIMINACIØNDEUNNODOENUNALISTADOBLEMENTELIGADA ALIGUALQUE EN EL CASO DE LAS LISTAS SIMPLEMENTE LIGADAS CONSISTE EN ELIMINAR UN ELEMENTO DE LA LISTA REDElNIENDOLOSAPUNTADORESCORRESPONDIENTESYLIBERANDOELESPACIODEMEMORIA OCUPADOPORELNODO%NLAELIMINACIØNSEPUEDENPRESENTARDIFERENTESCASOS AUNQUE ALGUNOSDEELLOSSONSIMÏTRICOS YAQUECADANODOTIENEAPUNTADORESHACIADELANTEˆDE RECHAˆYATRÈSˆIZQUIERDAˆ ◗ ◗ ◗ ◗

%LIMINARELPRIMERNODO %LIMINARELÞLTIMONODO %LIMINARELNODOCONINFORMACIØN8 %LIMINARELNODOANTERIORPOSTERIORALNODOCONINFORMACIØN8

%NLOSALGORITMOSQUEPRESENTANLASOLUCIØNALOSDIFERENTESCASOSDEBORRADODEUN ELEMENTODEUNALISTA NOSECONSIDERAQUEÏSTASEENCUENTREVACÓA%STECASO COMOYA SEHAREPETIDOENVARIASOCASIONES SEPUEDECONTROLARENELPROGRAMAPRINCIPALOBIEN CONUNACONDICIØNSIMPLEALINICIODECADAALGORITMO

&)'52! )NSERCIØNDENODOS .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAINSERCIØNDEUNNUEVO NODO

164 >«‰ÌՏœÊxÊ Ê Ê -*45"4

A Ê %LIMINARELPRIMERNODODEUNALISTA

DOBLEMENTELIGADA #ONSISTEENQUITARELPRIMERNODODELALISTA CUALQUIERAQUESEASUINFORMACIØN REDEl NIENDOELPUNTEROALINICIODELAMISMA%LALGORITMODESCRIBEESTEPROCESO !LGORITMO %LIMINA?INICIO %LIMINA?INICIO0 & [%STE ALGORITMO ELIMINA EL PRIMER ELEMENTO DE UNA LISTA DOBLEMENTE LIGADA 0 Y & SON LOS APUNTADORESALPRIMERYÞLTIMONODOSDELALISTA RESPECTIVAMENTE] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDECADA NODODELALISTA]  (ACER1←0  3I1>,)'!$%2≠.), [6ERIlCASILALISTATIENESØLOUNNODO] ENTONCES (ACER0←1>,)'!$%2Y0>,)'!):1←.), SINO (ACER0←.),Y&←.),  [&INDELCONDICIONALDELPASO]  1UITAR1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELPRIMERNODODEUNALISTA DOBLEMENTELIGADA MEDIANTEELALGORITMO

B Ê %LIMINARELÞLTIMONODODEUNALISTA

DOBLEMENTELIGADA %STECASOESSIMÏTRICOALANTERIORCONSISTEENELIMINARELÞLTIMONODODEUNALISTADOBLE MENTELIGADAYREDElNIRELAPUNTADORALlNALDEELLA &)'52! %LIMINACIØNDELPRIMER NODODEUNALISTA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAELIMINACIØNDELPRIMER NODO

 -*45"4%0#-&.&/5&-*("%"4

165

!LGORITMO %LIMINA?ÞLTIMO %LIMINA?ÞLTIMO0 & [%STE ALGORITMO ELIMINA EL ÞLTIMO ELEMENTO DE UNA LISTA DOBLEMENTE LIGADA 0 Y & SON LOS APUNTADORESALPRIMEROYÞLTIMONODOSDELALISTA RESPECTIVAMENTE] [1ESUNAVARIABLEDETIPOPUNTERO).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDECADA NODODELALISTA]  (ACER1←&  3I1>,)'!):1≠.), [6ERIlCASILALISTATIENEUNSOLONODO] ENTONCES (ACER&←1>,)'!):1Y&>,)'!$%2←.), SINO (ACER&←.),Y0←.),  [&INDELCONDICIONALDELPASO]  1UITAR1

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELÞLTIMONODODEUNALISTA DOBLEMENTELIGADAAPLICANDOELALGORITMOANTERIOR

C Ê %LIMINARUNNODOCONINFORMACIØN8 %STECASOCONSISTEENELIMINARELNODOQUECONTENGALAINFORMACIØN8 YESTABLECERLOS APUNTADORES CORRESPONDIENTES ENTRE SU ANTECESOR Y SU SUCESOR RESPECTIVAMENTE %STE CASOTIENEALGUNASVARIANTES%LNODOQUESEQUIEREELIMINARPUEDEQUENOSEENCUENTRE ENLALISTA OBIENQUESEHALLEYSEAELPRIMERO ELÞLTIMO ELÞNICO OQUEESTÏENCUAL QUIERPOSICIØNINTERMEDIADELAESTRUCTURA

&)'52! %LIMINACIØNDELÞLTIMONODODEUNALISTA .OTA,ASmECHASDISCONTINUASINDICANLOSCAMBIOSORIGINADOSENLALISTADOBLEMENTELIGADAPORLA ELIMINACIØNDELÞLTIMONODO

166 >«‰ÌՏœÊxÊ Ê Ê -*45"4 !LGORITMO %LIMINA?8 %LIMINA?80 & 8 [%STEALGORITMOELIMINAELNODOCONINFORMACIØN8DEUNALISTADOBLEMENTELIGADA0Y&SON LOSAPUNTADORESALPRIMEROYÞLTIMONODOSDELALISTA RESPECTIVAMENTE] [1 4Y2SONVARIABLESDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDE CADANODODELALISTA]  (ACER1←0  -IENTRAS1>,)'!$%2≠.), Y1>).&/2≠8 2EPETIR (ACER1←1>,)'!$%2  [&INDELCICLODELPASO]  3I1>).&/28 ENTONCES  3I10 Y1& [,ALISTATIENEUNSOLONODO] ENTONCES (ACER0←.),Y&←.), SINO  3I10 [%SELPRIMERO] ENTONCES (ACER0←1>,)'!$%2Y0>,)'!):1←.), SINO  3I1& [%SELÞLTIMO] ENTONCES (ACER&←1>,)'!):1Y&>,)'!$%2←.), SINO[%SUNNODOINTERMEDIO] (ACER4←1>,)'!):1 2←1>,)'!$%2 4>,)'!$%2←2Y2>,)'!):1←4  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] 1UITAR1 SINO %SCRIBIRh%LELEMENTOCONINFORMACIØN8NOSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

%JEMPLO

%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDEUNNODOCONINFORMACIØN8 ENUNALISTADOBLEMENTELIGADA

D Ê %LIMINARELNODOANTERIORALNODO

CONINFORMACIØN8 %NESTECASOSETRATADEELIMINARELNODOANTERIORAUNODADOCOMOREFERENCIAQUECON TENGALAINFORMACIØN8%LCASOTAMBIÏNTIENEALGUNASVARIANTES0UEDESERQUEELNODO CONINFORMACIØN8NOSEENCUENTREENLALISTAOBIENSEENCUENTRE YSEAELPRIMEROˆEN

 -*45"4%0#-&.&/5&-*("%"4

167

&)'52! %LIMINACIØNDEUNNODOCONINFORMACIØN8A %LNODOESELPRIMEROB %LNODOESEL ÞLTIMOC %LNODOESINTERMEDIO .OTA,ASmECHASDISCONTINUASINDICANLOSCAMBIOSORIGINADOSENLALISTADOBLEMENTELIGADA PORLA ELIMINACIØNDEUNNODO

ESECASONOHAYNADAQUEELIMINARˆ ELSEGUNDOˆSEELIMINAELPRIMERODELALISTAˆ O SEENCUENTREENCUALQUIEROTRAPOSICIØN%LALGORITMODESCRIBELOSPASOSNECESARIOS PARALLEVARACABOESTAOPERACIØN !LGORITMO %LIMINA?ANTES?8

%LIMINA?ANTES?80 8 [%STEALGORITMOELIMINA SISEPUEDE ELNODOANTERIORAAQUELQUECONTIENELAINFORMACIØN8 0ESELAPUNTADORALPRIMERNODODELALISTA] [1 4Y2SONVARIABLESDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDE CADANODODELALISTA]

168 >«‰ÌՏœÊxÊ Ê Ê -*45"4  (ACER1←0  -IENTRAS1>,)'!$%2≠.), Y1>).&/2≠8 2EPETIR (ACER1←1>,)'!$%2  [&INDELCICLODELPASO]  3I1>).&/28 ENTONCES  3I01 ENTONCES %SCRIBIRh.OEXISTENODOANTERIORALPRIMEROv SINO (ACER4←1>,)'!):1  3I04 [%SELPRIMERNODODELALISTA] ENTONCES (ACER0←1Y0>,)'!):1←.), SINO (ACER2←4>,)'!):1 1>,)'!):1←2Y 2>,)'!$%2←1  [&INDELCONDICIONALDELPASO] 1UITAR4  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LELEMENTOCONINFORMACIØN8NOSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

%JEMPLO

,AlGURACONTIENEUNEJEMPLODEELIMINACIØN MEDIANTEELALGORITMOANTERIOR

&)'52! %LIMINACIØNDENODOS .OTA,ASmECHASDISCONTINUASINDICANLOSCAMBIOSORIGINADOSENLALISTADOBLEMENTELIGADA PORLA ELIMINACIØNDEUNNODO

 -*45"4%0#-&.&/5&-*("%"4$*3$6-"3&4

169

&)'52! ,ISTADOBLEMENTE LIGADACIRCULAR

 ,)34!3$/",%-%.4%,)'!$!3#)2#5,!2%3 %NLASLISTASDOBLEMENTELIGADASCIRCULARES ELCAMPOLIGAIZQUIERDADELPRIMERNODO DELALISTAAPUNTAALÞLTIMO YELCAMPOLIGADERECHADEÏSTEAPUNTAALPRIMERO,AlGURA REPRESENTAUNAESTRUCTURADEESTETIPO ,APRINCIPALVENTAJADELASLISTASCIRCULARESESQUEPERMITENLANAVEGACIØNENCUAL QUIERSENTIDOATRAVÏSDELAMISMAY ADEMÈS SEPUEDERECORRERTODALALISTAPARTIENDO DECUALQUIERNODO SIEMPREQUETENGAMOSUNAPUNTADORAÏSTE3INEMBARGO DEBEMOS DESTACARQUEESNECESARIOESTABLECERCONDICIONESADECUADASPARADETENERELRECORRIDODE UNALISTAYEVITARCAERENCICLOSINlNITOS!LIGUALQUEENELCASODELISTASSIMPLEMENTE LIGADASCIRCULARES SESUELEUTILIZARUNNODODECABECERAlG  %STENODOTENDRÈLASCARACTERÓSTICASDESCRITASANTERIORMENTEYSERVIRÈCOMOREFEREN CIAPARADETECTARCUÈNDOSEHARECORRIDOTOTALMENTELALISTA (ASTAESTEMOMENTOSEHANESTUDIADOLASPRINCIPALESCARACTERÓSTICASDELAESTRUCTURA TIPOLISTA CONSIDERANDOTODASSUSVARIANTESlG 

&)'52! ,ISTADOBLEMENTE LIGADACIRCULARCON NODODECABECERA

&)'52!



SIMPLEMENTELIGADASCIRCULARES ,ISTAS

SIMPLEMENTELIGADAS

DOBLEMENTELIGADAS

DOBLEMENTELIGADASCIRCULARES

170 >«‰ÌՏœÊxÊ Ê Ê -*45"4 !DEMÈSSEHANPRESENTADOLOSALGORITMOSUTILIZADOSPARAREALIZARLASOPERACIONES MÈSIMPORTANTESDELISTAS,ASSIGUIENTESSONALGUNASAPLICACIONESDELISTAS

 !0,)#!#)/.%3$%,)34!3 $OSDELASAPLICACIONESMÈSCONOCIDASDELISTASSONLASSIGUIENTES ◗ ◗

2EPRESENTACIØNDEPOLINOMIOS 2ESOLUCIØNDECOLISIONESHASH 

%NGENERALSEPUEDESE×ALARQUELASLISTASSONMUYÞTILESPARAAQUELLASAPLICACIONES ENLASQUESENECESITEDINAMISMOENELCRECIMIENTOYREDUCCIØNDELAESTRUCTURADEDATOS USADAPARAELALMACENAMIENTODELAINFORMACIØN

 2EPRESENTACIØNDEPOLINOMIOS ,ASLISTASSEPUEDENEMPLEARPARAALMACENARLOSCOElCIENTESDIFERENTESDECERODELPO LINOMIO JUNTOALEXPONENTE!SÓ POREJEMPLO DADOELPOLINOMIO 0X 8 8 8n SUREPRESENTACIØNMEDIANTELISTASQUEDACOMOSEMUESTRAENLAlGURA %LCAMPOINFORMACIØNDECADANODODELALISTACONTENDRÈDOSCAMPOSELCAMPO #/%&)#)%.4%YELCAMPO%80/.%.4% #ABEDESTACARQUEENELEJEMPLOANTERIORSEUTILIZØUNALISTASIMPLEMENTELIGADA PEROSEPUDOHABERUSADOUNACIRCULAROTAMBIÏNUNALISTADOBLEMENTELIGADA

 3OLUCIØNDECOLISIONESÊHASH %NELCAPÓTULO ALTRATARELMÏTODODEBÞSQUEDAPORTRANSFORMACIØNDECLAVES SEUTI LIZARONLISTASPARARESOLVERCOLISIONESˆMÏTODODEENCADENAMIENTOˆ#ONELOBJETO SE EVITAR LA REITERACIØN Y LA REDUNDANCIA DE INFORMACIØN SE SUGIERE REMITIRSE A DICHO CAPÓTULO &)'52! 2EPRESENTACIØNDEPOLINO MIOSUSANDOLISTAS

 -"$-"4&-/

171

 ,!#,!3%,)34! ,ACLASE,ISTATIENEATRIBUTOSYMÏTODOS AMBOSDEPENDENDELTIPODELISTAQUESEESTÏ DElNIENDO%NESTASECCIØNSEDECLARALACLASECORRESPONDIENTEAUNALISTASIMPLEMENTE LIGADA#ONSECUENTEMENTE LOSATRIBUTOSSONLOSAPUNTADORESALPRIMEROYÞLTIMONODOS DELALISTA MIENTRASQUELOSMÏTODOSREPRESENTANTODASLASOPERACIONESANALIZADASAN TERIORMENTE#REA?INICIO )NSERTA?INICIO )NSERTA?lNAL x 2ECORRE?ITERATIVO x %LIMI NA?INICIO %LIMINA?lNAL x ,ACLASE,ISTAUTILIZALACLASE.ODOPARADECLARARELTIPODESUSATRIBUTOS LACUAL REPRESENTA A LOS NODOS DE LA LISTA %S DECIR CADA NODO TIENE DOS ATRIBUTOS UNO PARA ALMACENARLAINFORMACIØNYELOTROPARAGUARDARLADIRECCIØNDELSIGUIENTENODO,OS MÏTODOSDEESTACLASESONLASOPERACIONESVÈLIDASSOBRESUSMIEMBROS%NLASlGURAS YSEPUEDEOBSERVARLAREPRESENTACIØNGRÈlCADELASCLASES.ODOY,ISTA RES PECTIVAMENTE 3ETIENEACCESOALOSMIEMBROSDEUNOBJETODELACLASE,ISTAPORMEDIODELANO TACIØNDEPUNTOS#UANDOSEASUMEQUELAVARIABLE,)34!/"*ESUNOBJETODELACLASE ,ISTA PREVIAMENTECREADO SEPUEDEHACER &)'52! #LASE.ODO

&)'52! #LASE,ISTA

172 >«‰ÌՏœÊxÊ Ê Ê -*45"4 ,)34!/"*)NSERTA?INICIOARGUMENTO PARAINVOCARELMÏTODOQUEINSERTAUNNUEVO ELEMENTOALINICIODELALISTA%NESTEMÏTODOHAYUNSOLOARGUMENTOQUEREPRESENTAEL VALORAGUARDARENELNUEVONODO4ODOSLOSOTROSVALORESREQUERIDOSSONMIEMBROSDE LACLASE ,)34!/"*%LIMINA?INICIOARGUMENTO PARAINVOCARELMÏTODOQUEELIMINAELPRI MERNODODELALISTA%NESTEMÏTODOHAYUNÞNICOARGUMENTO QUEESPARAREGRESAREL VALORELIMINADOTODOSLOSOTROSVALORESREQUERIDOSSONMIEMBROSDELACLASE

&+&3$*$*04

173

▼ %*%2#)#)/3 Ê £° $ElNA UN ALGORITMO PARA INSERTAR SI ES POSIBLE UN ELEMENTO ANTES DE OTRO NODO DADOCOMOREFERENCIAENUNALISTAORDENADA Ê Ó° $ElNAUNALGORITMOPARAINSERTAR SIESPOSIBLE UNELEMENTOSIGUIENDOAOTRODADO COMOREFERENCIA ENUNALISTAORDENADA Ê Î° $ElNAUNALGORITMOPARAINSERTARUNELEMENTOENUNALISTAORDENADA DETALMANERA QUENOSEALTEREELORDENDELAMISMA Ê {° $ElNAUNALGORITMOPARAELIMINARUNNODODEUNALISTAORDENADA Ê x° %SCRIBAUNSUBPROGRAMAQUELEADOSLISTASQUESEENCUENTRANORDENADASYFORMEUNA TERCERAQUERESULTEDELAMEZCLADELOSELEMENTOSDEAMBASLISTAS Ê È° %SCRIBAUNSUBPROGRAMARECURSIVOQUE DADASDOSLISTASORDENADASASCENDENTEMEN TE LASMEZCLEYGENEREUNANUEVALISTAORDENADAENFORMADESCENDENTE Ê Ç° %SCRIBAUNSUBPROGRAMAQUE DADAUNALISTAQUECONTIENENÞMEROS LADIVIDAENDOS LISTASINDEPENDIENTES UNAFORMADAPORLOSNÞMEROSPOSITIVOSYOTRAPORLOSNÞMEROS NEGATIVOS Ê n° %SCRIBAUNSUBPROGRAMARECURSIVOPARAIMPRIMIRTODALAINFORMACIØNDEUNALISTA Ê ™° %SCRIBAUNSUBPROGRAMARECURSIVOQUEBUSQUEUNELEMENTO8ENUNALISTADOBLE MENTELIGADA £ä°%SCRIBAUNSUBPROGRAMAQUEELIMINEUNELEMENTO8DEUNALISTACIRCULAR ££°$ElNAUNALGORITMOPARAINSERTARELEMENTOSENUNALISTACIRCULAR £Ó°%SCRIBALOSSUBPROGRAMASh-ETE?0ILAvYh3ACA?0ILAvPARAINSERTARYELIMINAR RES PECTIVAMENTE UNELEMENTODEUNAPILAIMPLEMENTADAPORMEDIODEUNALISTA £Î°%SCRIBAUNSUBPROGRAMARECURSIVOQUEPERMITARECORRERUNALISTADOBLEMENTELIGADA ENAMBOSSENTIDOS £{°$ElNAUNALGORITMORECURSIVOPARAINSERTARUNELEMENTOSIGUIENDOAOTRONODODADO COMOREFERENCIA ENUNALISTADOBLEMENTELIGADA £x°%SCRIBAUNSUBPROGRAMARECURSIVOPARAEVALUARUNPOLINOMIOREPRESENTADOPORME DIODEUNALISTALINEAL

174 >«‰ÌՏœÊxÊ Ê Ê -*45"4 £È°$ElNALOSALGORITMOSNECESARIOSPARAIMPLEMENTARUNAESTRUCTURATIPOCOLAMEDIAN TELISTAS £Ç°3EHADElNIDOLASIGUIENTEESTRUCTURADEDATOS

%NELARREGLOh0/342%3vSEALMACENANNOMBRESDEPOSTRES ORDENADOSALFA BÏTICAMENTE!SUVEZ CADAELEMENTODELARREGLOTIENEUNALISTADETODOSLOSINGRE DIENTESQUEREQUIEREDICHOPOSTRE %SCRIBAUNPROGRAMAQUE A $ADOELNOMBREDEUNPOSTRE IMPRIMALALISTADETODOSSUSINGREDIENTES B $ADO EL NOMBRE DE UN POSTRE INSERTE NUEVOS INGREDIENTES A SU CORRESPONDIENTE LISTA C $ADOELNOMBREDEUNPOSTRE ELIMINEALGUNODESUSINGREDIENTES D $ÏDEALTAUNPOSTRECONTODOSSUSINGREDIENTES E $ÏDEBAJAUNPOSTRECONTODOSSUSINGREDIENTES .OTA%NCADAUNODELOSPUNTOSANTERIORESVERIlQUETODOSLOSCASOSQUEPUDIERAN PRESENTARSE £n°%SCRIBAUNSUBPROGRAMAQUEELIMINELOSELEMENTOSREPETIDOSDEUNAESTRUCTURATIPO COLAIMPLEMENTADAPORMEDIODELISTAS £™°2ETOMELACLASEDElNIDAPREVIAMENTEPARALISTASSIMPLEMENTELIGADASYPROGRÈMELA ENALGÞNLENGUAJEORIENTADOAOBJETOS Óä°2ETOMELACLASEDELPROBLEMAANTERIORYADÈPTELAPARALISTASSIMPLEMENTELIGADAS CIRCULARESCONNODODECABECERA

&+&3$*$*04

175

Ó£°$ElNAUNACLASEPARALISTASDOBLEMENTELIGADAS)NCLUYALOSATRIBUTOSYTODOSLOS MÏTODOSQUECONSIDERECONVENIENTE0ROGRÈMELAENALGÞNLENGUAJEDEPROGRAMA CIØNORIENTADOAOBJETOS ÓÓ°2ETOMELACLASEDElNIDADELPROBLEMAANTERIORYADÈPTELAPARALISTASDOBLEMENTE LIGADASCIRCULARESCONNODODECABECERA Óΰ#ONSIDERE QUE SE TIENE UNA LISTA DE NÞMEROS ENTEROS ORDENADOS CRECIENTEMENTE COMOLAQUESEMUESTRAACONTINUACIØN/BSERVEQUEFALTANALGUNOSNÞMEROSPARA TENERTODOSLOSVALORESCOMPRENDIDOSENTREELPRIMERO  YELÞLTIMO %SCRIBA UNPROGRAMAQUEhCOMPLETEvLALISTA DETALMANERAQUELAMISMA UNAVEZMODIlCA DA ALMACENETODOSLOSVALORESAPARTIRDELNÞMERODELPRIMERNODOHASTAELNÞMERO DELÞLTIMO0ARAELEJEMPLO LALISTAGUARDARÈLOSNÞMEROS     Y 5TILICELACLASEDELISTASSIMPLEMENTELIGADASPREVIAMENTEDElNIDA

#APÓTULO

È

­2"/,%3  ).42/$5##)¼. (ASTAELMOMENTOSØLOSEHANESTUDIADOESTRUCTURASDEDATOSLINEALES TANTOESTÈTICAS COMODINÈMICASACADAELEMENTOSIEMPRELESUCEDEOLEPRECEDECOMOMÈXIMOOTRO ELEMENTO!LESTUDIARLAESTRUCTURADEDATOSÈRBOLESSEINTRODUCEELCONCEPTODERAMIl CACIØNENTRECOMPONENTESONODOS%SDECIR AUNELEMENTOLEPUEDENPRECEDEROSUCEDER VARIOSELEMENTOS ,OSÈRBOLESSONLASESTRUCTURASDEDATOSNOLINEALESYDINÈMICASDEDATOSMÈSIM PORTANTESDELÈREADECOMPUTACIØN$INÈMICAS PUESTOQUELASMISMASPUEDENCAMBIAR TANTODEFORMACOMODETAMA×ODURANTELAEJECUCIØNDELPROGRAMA.OLINEALES PUESTO QUECADAELEMENTODELÈRBOLPUEDETENERMÈSDEUNSUCESOR,OSÈRBOLESBALANCEADOS O!6,SONLAESTRUCTURADEDATOSMÈSElCIENTEPARATRABAJARCONLAMEMORIAPRINCIPAL ˆINTERNAˆDELPROCESADOR MIENTRASQUELOSÈRBOLES"Y ESPECIALMENTELAVERSIØN" REPRESENTANLAESTRUCTURADEDATOSMÈSElCIENTEPARATRABAJARENMEMORIASECUNDARIAO EXTERNA %N LA TABLA  SE PRESENTAN LAS PRINCIPALES ESTRUCTURAS DE DATOS CLASIlCADAS DE ACUERDO CON SU CAPACIDAD PARA CAMBIAR EN FORMA Y TAMA×O DURANTE LA EJECUCIØN DEL PROGRAMA %SDEOBSERVARQUELASPILASYCOLASNOFUERONCONSIDERADASENESTACLASIlCACIØN PUESTO QUE DEPENDEN DE LA ESTRUCTURA QUE SE UTILICE PARA IMPLEMENTARLAS 3I SE USAN ARREGLOS SETRATARÈNCOMOESTRUCTURASESTÈTICAS3ISEIMPLEMENTANCONLISTAS SERÈNES TRUCTURASDINÈMICAS%NAMBOSCASOSSONLINEALES %NLATABLASEPRESENTANLASPRINCIPALESESTRUCTURASDEDATOSCLASIlCADASSEGÞN LADISTRIBUCIØNDESUSELEMENTOS

4!",!

%STRUCTURASESTÈTICAS

%STRUCTURASDINÈMICAS

%STRUCTURASDEDATOS ESTÉTICASYDINÉMICAS

!RREGLOS

,ISTAS

2EGISTROS

«RBOLES 'RÈlCAS

178 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 4!",! %STRUCTURASDEDATOS LINEALESYNOLINEALES

%STRUCTURASLINEALES

%STRUCTURASNOLINEALES

!RREGLOS

«RBOLES

2EGISTROS

'RÈlCAS

0ILAS #OLAS ,ISTAS

 ­2"/,%3%.'%.%2!, 5N ÈRBOL SE PUEDE DElNIR COMO UNA ESTRUCTURA JERÈRQUICA APLICADA SOBRE UNA COLEC CIØNDEELEMENTOSUOBJETOSLLAMADOSNODOS UNODELOSCUALESESCONOCIDOCOMORAÓZ !DEMÈSSECREAUNARELACIØNOPARENTESCOENTRELOSNODOSDANDOLUGARATÏRMINOSCOMO PADRE HIJO HERMANO ANTECESOR SUCESOR ANCESTRO ETCÏTERA &ORMALMENTESEDElNEUNÈRBOLDETIPO4COMOUNAESTRUCTURAHOMOGÏNEARE SULTADODELACONCATENACIØNDEUNELEMENTODETIPO4CONUNNÞMEROlNITODEÈRBO LESDISJUNTOS LLAMADOSSUBÈRBOLES5NAFORMAPARTICULARDEÈRBOLESELÈRBOLVACÓO ,OSÈRBOLESSONESTRUCTURASRECURSIVAS YAQUECADASUBÈRBOLESASUVEZUNÈRBOL ,OSÈRBOLESSEPUEDENAPLICARPARALASOLUCIØNDEUNAGRANCANTIDADDEPROBLEMAS 0OREJEMPLO SEPUEDENUTILIZARPARAREPRESENTARFØRMULASMATEMÈTICAS PARAREGISTRARLA HISTORIADEUNCAMPEONATODETENIS PARACONSTRUIRUNÈRBOLGENEALØGICO PARAELANÈLISIS DECIRCUITOSELÏCTRICOSYPARAENUMERARLOSCAPÓTULOSYSECCIONESDEUNLIBRO 5NÈRBOLSEPUEDEREPRESENTARDEDIFERENTESFORMASYTODASELLASSECONSIDERANEQUI VALENTES%NLAlGURASEPRESENTANCINCONOTACIONESDIFERENTESCORRESPONDIENTESAUN MISMOÈRBOL%NLAlGURAASEUTILIZAUNDIAGRAMADE6ENNENLAlGURABLAANI DACIØNDEPARÏNTESISENLAlGURACLANOTACIØNDECIMALDE$EWEYENLAlGURADLA NOTACIØNINDENTADA Y PORÞLTIMO ENLAlGURAEUNGRAFO%STAÞLTIMAREPRESENTACIØN ESLAQUECOMÞNMENTESEUTILIZA YHAORIGINADOELTÏRMINOÈRBOLPORSUPARECIDOABSTRAC TOCONELVEGETALˆRAÓZ RAMAS HOJASˆ APESARDEQUELARAÓZSEDIBUJAARRIBA AUNQUE ENELVEGETALSEENCUENTREABAJO %NELGRAFOSEDISTINGUENNODOSˆCÓRCULOSˆYARCOSˆLÓNEASCONmECHASˆ,OS PRIMEROSSEUSANPARAALMACENARLAINFORMACIØNYLOSÞLTIMOSPARAESTABLECERLARELACIØN ENTRELOSNODOS%NELEJEMPLODELAlGURAELOSNODOSGUARDANLETRASYLOSARCOS PERMITENIRDECIERTOSNODOSAOTROS

 #ARACTERÓSTICASYPROPIEDADESDELOSÉRBOLES ,AESTRUCTURATIPOÈRBOLTIENECIERTASCARACTERÓSTICASYPROPIEDADESQUELADISTINGUEN! CONTINUACIØNSEPRESENTANLASMÈSIMPORTANTES A 4ODOÈRBOLQUENOESVACÓOTIENEUNÞNICONODORAÓZ

 Ç3#0-&4&/(&/&3"-

179

   

&)'52! $IFERENTESFORMASDEREPRESENTARUNAESTRUCTURADEÉRBOLA $IAGRAMASDE6ENNB !NIDACIØNDEPARÏNTESISC .OTACIØNDECIMALDE$EWEYD .OTACIØNINDENTADAE 'RAFO

B 5NNODO8ESDESCENDIENTEDIRECTODEUNNODO9 SIELNODO8ESAPUNTADOPOREL NODO9%NESTECASOESCOMÞNUTILIZARLAEXPRESIØN8ESHIJODE9 C 5NNODO8ESANTECESORDIRECTODEUNNODO9 SIELNODO8APUNTAALNODO9%NESTE CASOESCOMÞNUTILIZARLAEXPRESIØN8ESPADREDE9 D 3EDICEQUETODOSLOSNODOSQUESONDESCENDIENTESDIRECTOSˆHIJOSˆDEUNMISMO NODOˆPADREˆSONHERMANOS E 4ODONODOQUENOTIENERAMIlCACIONESˆHIJOSˆ SECONOCECONELNOMBREDETER MINALUHOJA F 4ODONODOQUENOESRAÓZNITERMINALUHOJASECONOCECONELNOMBREDEINTERIOR G 'RADOESELNÞMERODEDESCENDIENTESDIRECTOSDEUNDETERMINADONODO H 'RADODELÈRBOLESELMÈXIMOGRADODETODOSLOSNODOSDELÈRBOL I .IVELESELNÞMERODEARCOSQUEDEBENSERRECORRIDOSPARALLEGARAUNDETERMINADO NODO0ORDElNICIØNLARAÓZTIENENIVEL J !LTURADELÈRBOLESELMÈXIMONÞMERODENIVELESDETODOSLOSNODOSDELÈRBOL

180 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 !CONTINUACIØNSEPRESENTAUNEJEMPLOPARACLARIlCARESTOSCONCEPTOS

%JEMPLO

$ADOELÈRBOLGENERALDELAlGURA SEPUEDEAlRMARLOSIGUIENTE  !ESLARAÓZDELÈRBOL 



"ESHIJODE! #ESHIJODE! $ESHIJODE" %ESHIJODE" ,ESHIJODE(





!ESPADREDE" "ESPADREDE$ $ESPADREDE) #ESPADREDE' (ESPADREDE,





"Y#SONHERMANOS $ %Y&SONHERMANOS 'Y(SONHERMANOS *Y+SONHERMANOS

 ) % * + 'Y,SONNODOSTERMINALESUHOJAS  " $ & #Y(SONNODOSINTERIORES 



%LGRADODELNODO!ES %LGRADODELNODO"ES %LGRADODELNODO#ES %LGRADODELNODO$ES %LGRADODELNODO%ES %LGRADODELÈRBOLES





%LNIVELDELNODO!ES %LNIVELDELNODO"ES %LNIVELDELNODO$ES %LNIVELDELNODO#ES %LNIVELDELNODO,ES

 ,AALTURADELÈRBOLES

 ,ONGITUDDECAMINOINTERNOYEXTERNO 3EDElNELALONGITUDDECAMINODELNODO8COMOELNÞMERODEARCOSQUESEDEBENRE CORRERPARALLEGARDESDELARAÓZHASTAELNODO80ORDElNICIØNLARAÓZTIENELONGITUDDE

 Ç3#0-&4&/(&/&3"-

181

&)'52! ­RBOLGENERAL

CAMINO SUSDESCENDIENTESDIRECTOSLONGITUDDECAMINOYASÓSUCESIVAMENTE#ONSI DEREELÈRBOLDELAlGURA%LNODO"TIENELONGITUDDECAMINO ELNODO)LONGITUD DECAMINOYELNODO(LONGITUDDECAMINO

,ONGITUDDECAMINOINTERNO ,ALONGITUDDECAMINOINTERNO,#) DELÈRBOLESLASUMADELASLONGITUDESDECAMINO DE TODOS LOS NODOS DEL ÈRBOL %STA MEDIDA ES IMPORTANTE PORQUE PERMITE CONOCER LOS CAMINOSQUETIENEELÈRBOL3ECALCULAPORMEDIODELASIGUIENTEFØRMULA H

,#)  ¤ NI I

▼ &ØRMULA

I 

DONDEIREPRESENTAELNIVELDELÈRBOL HSUALTURAYNIELNÞMERODENODOSENELNIVELI ,A,#)DELÈRBOLDELAlGURASECALCULADEESTAFORMA ,#)        !HORA BIEN LA MEDIA DE LA LONGITUD DE CAMINO INTERNO ,#)- SE CALCULA DIVI DIENDOLA,#)ENTREELNÞMERODENODOSDELÈRBOLN ,AMEDIAESIMPORTANTEPORQUE PERMITECONOCER ENPROMEDIO ELNÞMERODEDECISIONESQUESEDEBENTOMARPARALLEGAR AUNDETERMINADONODOPARTIENDODESDELARAÓZ3EEXPRESA

,#)-,#)N

▼ &ØRMULA

,A,#)-DELÈRBOLDELAlGURASECALCULACOMOSEMUESTRAACONTINUACIØN ,#)-

182 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

,ONGITUDDECAMINOEXTERNO 0ARADElNIRLALONGITUDDECAMINOEXTERNODEUNÈRBOLESNECESARIOPRIMEROEXPLICARLOS CONCEPTOSDEÈRBOLEXTENDIDOYNODOESPECIAL 5NÈRBOLEXTENDIDOESAQUELENELQUEELNÞMERODEHIJOSDECADANODOESIGUALAL GRADODELÈRBOL3IALGUNODELOSNODOSDELÈRBOLNOCUMPLECONESTACONDICIØN ENTON CESDEBENINCORPORARSEALMISMOTANTOSNODOSESPECIALESCOMOSEREQUIERAPARALLEGAR ACUMPLIRLA ,OSNODOSESPECIALESTIENENCOMOOBJETIVOREMPLAZARLASRAMASVACÓASONULAS NO PUEDENTENERDESCENDIENTESYNORMALMENTESEREPRESENTANCONLAFORMADEUNCUADRADO %NLAlGURASEPRESENTAELÈRBOLEXTENDIDODELAlGURA%LNÞMERODENODOSES PECIALESDEESTEÈRBOLES 3EPUEDEDElNIRAHORALALONGITUDDECAMINOEXTERNO,#% DEUNÈRBOLCOMOLA SUMADELASLONGITUDESDECAMINODETODOSLOSNODOSESPECIALESDELÈRBOL3ECALCULAPOR MEDIODELASIGUIENTEFØRMULA H 

,#%  ¤ NEI I

▼ &ØRMULA

I

DONDEIREPRESENTAELNIVELDELÈRBOL HSUALTURAYNEIELNÞMERODENODOSESPECIALESEN ELNIVELI/BSERVEQUEICOMIENZADESDE PUESTOQUELARAÓZSEENCUENTRAENELNIVEL YNOPUEDESERUNNODOESPECIAL ,A,#%DELÈRBOLDELAlGURASECALCULADEESTAMANERA ,#%       

&)'52! ­RBOLEXTENDIDO

!HORABIEN LAMEDIADELALONGITUDDECAMINOEXTERNO,#%- SECALCULADIVI DIENDOLA,#%ENTREELNÞMERODENODOSESPECIALESDELÈRBOLNE /BSERVEELLECTORLA SIGUIENTEFØRMULA

 Ç3#0-&4&/(&/&3"-

,#%-,#%NE

183

▼ &ØRMULA

EINDICAELNÞMERODEARCOSQUESEDEBENRECORRERENPROMEDIOPARALLEGAR PARTIENDODESDE LARAÓZ AUNNODOESPECIALCUALQUIERADELÈRBOL ,A,#%-DELÈRBOLDELAlGURASECALCULADELASIGUIENTEMANERA ,#%- %LSIGUIENTEEJEMPLOCLARIlCARÈLOSCONCEPTOSDELONGITUDDECAMINOINTERNOYEX TERNO

%JEMPLO

$ADOELÈRBOLGENERALDELAlGURAYELÈRBOLEXTENDIDODELAlGURASECALCULALA LONGITUDDECAMINOINTERNO

&)'52! ­RBOLGENERAL

,#)      ,AMEDIADELALONGITUDDECAMINOINTERNO ,#)- &)'52! ­RBOLEXTENDIDO

,ALONGITUDDECAMINOEXTERNO ,#%     

184 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ,AMEDIADELALONGITUDDECAMINOEXTERNO ,#%-

 ­2"/,%3").!2)/3 5NÈRBOLORDENADOESAQUELENELCUALLADISTRIBUCIØNDELASRAMASSIGUEUNCIERTOORDEN ,OSÈRBOLESORDENADOSDEGRADOSONDEESPECIALINTERÏSENELÈREADELACOMPUTACIØN PORQUEPERMITENREPRESENTARLAINFORMACIØNRELACIONADACONLASOLUCIØNDEMUCHOSPRO BLEMAS%STOSÈRBOLESSONCONOCIDOSCONELNOMBREDEÈRBOLESBINARIOS %NUNÈRBOLBINARIOCADANODOPUEDETENERCOMOMÈXIMODOSSUBÈRBOLESYÏSTOSSE DISTINGUENENTRESÓCOMOELSUBÈRBOLIZQUIERDOYELSUBÈRBOLDERECHO SEGÞNSUUBICACIØN CONRESPECTOALNODORAÓZ &ORMALMENTESEDElNEUNÈRBOLBINARIOTIPO4COMOUNAESTRUCTURAHOMOGÏ NEA RESULTADODELACONCATENACIØNDEUNELEMENTODETIPO4 LLAMADORAÓZ CONDOS ÈRBOLES BINARIOS DISJUNTOS LLAMADOS SUBÈRBOL IZQUIERDO Y SUBÈRBOL DERECHO 5N ÈRBOLBINARIOESPECIALESELÈRBOLVACÓO ,OSÈRBOLESBINARIOSTIENENMÞLTIPLESAPLICACIONES3ELESPUEDEUTILIZARPARARE PRESENTAR LA SOLUCIØN DE UN PROBLEMA PARA EL CUAL EXISTEN DOS POSIBLES ALTERNATIVAS ÈRBOL DE DECISIONES PARA REPRESENTAR UN ÈRBOL GENEALØGICO CONSTRUIDO EN FORMA ASCENDENTEYDONDESEMUESTRANLOSANCESTROSDEUNINDIVIDUODADO PARAREPRESENTAR LAHISTORIADEUNCAMPEONATODETENISCONSTRUIDOENFORMAASCENDENTEYDONDEEXISTE UNGANADOR lNALISTAS SEMIlNALISTASYASÓSUCESIVAMENTE YPARAREPRESENTAREX PRESIONESALGEBRAICASCONSTRUIDASCONOPERADORESBINARIOS%STOSØLOPORCITARALGUNOS DESUSMÞLTIPLESUSOS %NLAlGURASEMUESTRANTRESDIAGRAMASCORRESPONDIENTESAUNAESTRUCTURADE ÈRBOLBINARIO%NLAlGURAAHAYUNÈRBOLBINARIODEBÞSQUEDAESTAVARIANTESEPRE SENTARÈCONDETALLEMÈSADELANTE ENLAlGURABELÈRBOLBINARIOQUEREPRESENTALA EXPRESIØN! " #$ >YENLAlGURACUNÈRBOLGENEALØGICO ,OS ÈRBOLES ORDENADOS DE GRADO MAYOR A  REPRESENTAN TAMBIÏN ESTRUCTURAS IM PORTANTES3ECONOCENCONELNOMBREDEÈRBOLESMULTICAMINOSYSERÈNESTUDIADOSMÈS ADELANTEENESTEMISMOCAPÓTULO

 Ç3#0-&4#*/"3*04 &)'52! $ISTINTASAPLICACIONESDE ÉRBOLESBINARIOSA ­RBOLES BINARIOSDEBÞSQUEDA B 2EPRESENTACIØNDEUNA EXPRESIØNALGEBRAICA C ­RBOLGENEALØGICO

185

186 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

 ­RBOLESBINARIOSDISTINTOS SIMILARESYEQUIVALENTES $OSÈRBOLESBINARIOSSONDISTINTOSCUANDOSUSESTRUCTURASˆLADISTRIBUCIØNDENODOSY ARCOSˆSONDIFERENTES%NLAlGURASEPRESENTANDOSEJEMPLOSDEÈRBOLESBINARIOS DISTINTOS &)'52! ­RBOLESBINARIOSDISTINTOS

$OS ÈRBOLES BINARIOS SON SIMILARES CUANDO SUS ESTRUCTURAS SON IDÏNTICAS PERO LA INFORMACIØNQUECONTIENENSUSNODOSDIlEREENTRESÓ%NLAlGURASEPRESENTANDOS EJEMPLOSDEÈRBOLESBINARIOSSIMILARES

&)'52! ­RBOLESBINARIOSSIMILARES

0OR ÞLTIMO LOS ÈRBOLES BINARIOS EQUIVALENTES SE DElNEN COMO AQUELLOS QUE SON SIMILARESYADEMÈSLOSNODOSCONTIENENLAMISMAINFORMACIØN%NLAlGURASEMUES TRANDOSEJEMPLOSDEÈRBOLESBINARIOSEQUIVALENTES &)'52! ­RBOLESBINARIOSEQUIVA LENTES

 Ç3#0-&4#*/"3*04

187

#ONELlNDECLARIlCARLOSCONCEPTOSANTERIORES SEPRESENTAELSIGUIENTEEJEMPLO

%JEMPLO

$ADOSLOSÈRBOLESBINARIOSDELAlGURA SEPUEDEAlRMARLOSIGUIENTE

&)'52! ­RBOLESBINARIOSDISTINTOS SIMILARESYEQUIVALENTES

◗ ◗ ◗

%L ÈRBOL DE LA lGURA C ES DISTINTO DE LOS ÈRBOLES DE LA lGURA A B Y D ,OSÈRBOLESDELAlGURAA BYDSONSIMILARES ,OSÈRBOLESDELAlGURAAYDSONEQUIVALENTES

 ­RBOLESBINARIOSCOMPLETOS 3EDElNEUNÈRBOLBINARIOCOMPLETO!"# COMOUNÈRBOLENELQUETODOSSUSNODOS EXCEPTOLOSDELÞLTIMONIVEL TIENENDOSHIJOSELSUBÈRBOLIZQUIERDOYELSUBÈRBOLDERE CHO%NLAlGURASEPRESENTANDOSEJEMPLOSDEÈRBOLESBINARIOSCOMPLETOS

188 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! ­RBOLESBINARIOSCOMPLE TOSA $EALTURAB $E ALTURA

%LNÞMERODENODOSDEUNÈRBOLBINARIOCOMPLETODEALTURAH SEPUEDECALCULAR APLICANDOLASIGUIENTEFØRMULA

.Á-%2/$%./$/3!"# Hn

▼ &ØRMULA

!SÓ POREJEMPLO UNÈRBOLBINARIOCOMPLETODEALTURATENDRÈNODOS UNODE ALTURATENDRÈNODOSYUNÈRBOLDEALTURATENDRÈNODOS #ABEACLARARQUEEXISTENALGUNOSAUTORESQUEDElNENUNÈRBOLBINARIOCOMPLETODE OTRAFORMAYOTROSQUEUTILIZANELTÏRMINOLLENOPARAREFERIRSEALOQUEENESTELIBROSE DENOMINACOMPLETO

 2EPRESENTACIØNDEÉRBOLESGENERALESCOMOBINARIOS ,OSÈRBOLESBINARIOS PORLASRAZONESYAMENCIONADAS SEAPLICANENLASOLUCIØNCOMPU TACIONALDEMUCHOSPROBLEMAS!DEMÈS SUUSOSEVEFAVORECIDOPORSUDINAMISMO LA NOLINEALIDADENTRESUSELEMENTOSYPORSUSENCILLAPROGRAMACIØN0ORLOTANTO RESULTA MUYÞTILPODERCONVERTIRÈRBOLESGENERALES CONANHIJOS ENÈRBOLESBINARIOS %NESTASECCIØNSEDARÈNLOSPASOSNECESARIOSPARALOGRARLO#ONSIDEREELÈRBOLGE NERALDELAlGURAA,ASOPERACIONESQUESEDEBENAPLICARPARALOGRARLACONVERSIØN DELÈRBOLGENERALALÈRBOLBINARIOCORRESPONDIENTESONLASSIGUIENTES

 Ç3#0-&4#*/"3*04

189

 %NLAZARLOSHIJOSDECADANODOENFORMAHORIZONTALˆLOSHERMANOSˆ  2ELACIONARENFORMAVERTICALELNODOPADRECONELHIJOQUESEENCUENTRAMÈSALA IZQUIERDA!DEMÈS SE DEBE ELIMINAR EL VÓNCULO DE ESE PADRE CON EL RESTO DE SUS HIJOS  2OTARELDIAGRAMARESULTANTE APROXIMADAMENTEGRADOSHACIALAIZQUIERDA YASÓ SEOBTENDRÈELÈRBOLBINARIOCORRESPONDIENTE %NLAlGURABSEVISUALIZAELÈRBOLLUEGODEAPLICARLOSDOSPRIMEROSPASOS%N LAlGURACSEOBSERVAELÈRBOLBINARIO OBTENIDOLUEGODEAPLICARELTERCERPASO

&)'52! #ONVERSIØNDEUNÉRBOL GENERALENUNÉRBOLBINARIO A ­RBOLGENERALB ­RBOL BINARIOLUEGODEAPLICAR LOSPASOSYC ­RBOL BINARIOLUEGODEAPLICAREL PASO

190 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO

&)'52! #ONVERSIØNDEUNÉRBOL GENERALENUNÉRBOLBINARIO A ­RBOLGENERALB ­RBOL BINARIOLUEGODEAPLICAR LOSPASOSYC ­RBOL BINARIOLUEGODEAPLICAREL PASO

$ADOCOMODATOELÈRBOLGENERALDELAlGURAA SEDEBECONVERTIRAUNÈRBOLBINARIO %NLAlGURABSEOBSERVAUNAGRÈlCADELÈRBOLLUEGODEAPLICARLOSDOSPRIMEROSPA SOS%NLAlGURACSEOBSERVAELÈRBOLBINARIOQUESEOBTIENELUEGODEQUESEAPLICA ELTERCERPASO

 Ç3#0-&4#*/"3*04

191

/BSERVEQUEPARATODONODODEUNÈRBOLBINARIO GENERADOAPARTIRDEUNÈRBOLGE NERAL SEDEBECUMPLIRLOSIGUIENTE  3ILARAMADERECHADECADANODO EXCEPTOELNODORAÓZ ESDISTINTADEVACÓOSEEN CUENTRAUNNODOQUEERAHERMANODEÏSTEENELÈRBOLGENERAL$ELAlGURAC PODEMOSDEDUCIRQUE#ERAHERMANODE"!PLICANDOELMISMOCRITERIODEDUCIMOS TAMBIÏNQUE$ERAHERMANODE#Y PORLOTANTO PORTRANSITIVIDAD HERMANODE" /TRAS DEDUCCIONES QUE SE PUEDEN REALIZAR OBSERVANDO LA lGURA C SON LAS SI GUIENTES ◗ %Y&ERANHERMANOS ◗ -Y.ERANHERMANOS ◗ ( ) *Y+ERANHERMANOS %SDENOTARQUELOSHERMANOSSEENCUENTRANENLAGRÈlCAENUNALÓNEAOBLICUA CONTINUA ORIENTADAGRADOSHACIALADERECHA%NLAlGURASEPRESENTANTRES DIAGRAMASDIFERENTESDONDESEPUEDENOBSERVARALGUNOSEJEMPLOS

&)'52! .ODOSHERMANOS

 %NLARAMAIZQUIERDADECADANODOˆSIÏSTAESDISTINTADEVACÓOˆSEENCUENTRAUN NODOQUEERAHIJODEÏSTEENELÈRBOLGENERAL$ELAlGURACPODEMOSDEDUCIR QUE%ERAHIJODE"YCOMOPOR &ERAHERMANODE% PODEMOSAlRMARQUE&ERA TAMBIÏNHIJODE"/TRASDEDUCCIONESQUESEPUEDENREALIZAROBSERVANDOLAlGURA CSONLASSIGUIENTES ◗ " #Y$ERANHIJOSDE! ◗ -Y.ERANHIJOSDE' ◗ 'ERAHIJODE# %SDENOTARQUELOSHIJOSDEUNNODOSEENCUENTRANENLAGRÈlCA PRIMEROENUNA LÓNEAOBLICUACONTINUAORIENTADAGRADOSHACIALAIZQUIERDAYLUEGOENUNALÓNEACON TINUAOBLICUAORIENTADAGRADOSHACIALADERECHA%NLAlGURAHAYTRESDIAGRAMAS DIFERENTESDONDESEOBSERVANALGUNOSEJEMPLOS

192 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %NLAlGURABNOEXISTELÓNEAOBLICUAORIENTADAHACIALADERECHAPORQUE'ESEL ÞNICOHIJODELNODO#

&)'52! .ODOSHIJOS

 2EPRESENTACIØNDEUNBOSQUECOMOÉRBOLBINARIO 5NBOSQUEREPRESENTAUNCONJUNTONORMALMENTEORDENADODEUNOOMÈSÈRBOLESGENE RALES%SPOSIBLEUTILIZARELALGORITMODECONVERSIØNANALIZADOENLASECCIØNANTERIOR CON ALGUNASMODIlCACIONES PARAGENERARUNÈRBOLBINARIOAPARTIRDEUNBOSQUE #ONSIDEREPOREJEMPLOELBOSQUE FORMADOPORTRESÈRBOLESGENERALES DELAlGURA ,OSPASOSQUESEDEBENAPLICARPARALOGRARLACONVERSIØNDELBOSQUEAUNÈRBOL BINARIOSONLOSSIGUIENTES

&)'52! "OSQUEDEÉRBOLESGENERALES

 Ç3#0-&4#*/"3*04

193

 %NLAZARENFORMAHORIZONTALLASRAÓCESDELOSDISTINTOSÈRBOLESGENERALES  2ELACIONARLOSHIJOSDECADANODOˆLOSHERMANOSˆENFORMAHORIZONTAL  %NLAZARENFORMAVERTICALELNODOPADRECONELHIJOQUESEENCUENTRAMÈSALAIZ QUIERDA!DEMÈS SEDEBEELIMINARELVÓNCULODELPADRECONELRESTODESUSHIJOS  2OTARELDIAGRAMARESULTANTEAPROXIMADAMENTEGRADOSHACIALAIZQUIERDAYASÓSE OBTENDRÈELÈRBOLBINARIOCORRESPONDIENTE %NLAlGURAASEMUESTRAELÈRBOLLUEGODEAPLICARLOSTRESPRIMEROSPASOS%NLA lGURABSEOBSERVAELÈRBOLBINARIOOBTENIDOLUEGODEQUESEREALIZAELCUARTOPASO &)'52! #ONVERSIØNDEUNBOSQUEENÉRBOLBINARIOA ­RBOLBINARIOLUEGODEAPLICARLOSPASOS YB ­RBOLBINARIOLUEGODEAPLICARELPASO

194 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO

$ADOCOMODATOELBOSQUEDELAlGURAA SEDESEACONVERTIRLOAUNÈRBOLBINARIO %NLAlGURABSEOBSERVAUNAGRÈlCADELÈRBOLLUEGODEAPLICARLOSTRESPRIMEROS PASOS%NLAlGURACSEPUEDEAPRECIARELÈRBOLBINARIOQUESEOBTIENELUEGODEQUE SEAPLICAELCUARTOPASO

&)'52! #ONVERSIØNDEUNBOSQUEENÉRBOLBINARIOA "OSQUEB ­RBOLLUEGODEAPLICARELPRIME RO SEGUNDOYTERCERPASOSC ­RBOLBINARIOLUEGODEAPLICARELCUARTOPASO

 Ç3#0-&4#*/"3*04

195

%SDENOTARQUEPARATODONODODEUNÈRBOLBINARIO QUESEOBTIENEAPARTIRDEUN BOSQUE SECUMPLENLOSDOSINCISOSSE×ALADOSENLACONVERSIØNDEUNÈRBOLGENERALEN UNÈRBOLBINARIO

 2EPRESENTACIØNDEÉRBOLESBINARIOSENMEMORIA ,ASDOSMANERASMÈSCOMUNESDEREPRESENTARUNÈRBOLBINARIOENMEMORIASON  0ORMEDIODEDATOSTIPOPUNTERO TAMBIÏNCONOCIDOSCOMOVARIABLESDINÈMICAS  0ORMEDIODEARREGLOS %NESTELIBROSEEXPLICARÈYUTILIZARÈLAPRIMERAFORMA PUESTOQUEREPRESENTALAMÈS NATURALPARATRATARUNAESTRUCTURADEDATOSDEESTETIPO !LlNALDELCAPÓTULOSEPRESENTARÈUNABREVEINTRODUCCIØNALOSÈRBOLES DESDEEL PUNTODEVISTADELPARADIGMAORIENTADOAOBJETOS3INEMBARGO LOQUESEESTUDIARÈA CONTINUACIØNSIGUESIENDOVÈLIDOPARALASCLASES#OMOENLASOTRASESTRUCTURASDEDATOS PRESENTADASENESTELIBRO LOSCONCEPTOSEXPLICADOSSONLOSFUNDAMENTOSREQUERIDOSPARA ELUSODELASMISMAS INDEPENDIENTEMENTEDELPARADIGMAYDELLENGUAJEUTILIZADOPARA SUIMPLEMENTACIØN ,OSNODOSDELÈRBOLBINARIOSEREPRESENTANCOMOREGISTROS#ADAUNODEELLOSCON TIENECOMOMÓNIMOTRESCAMPOS%NUNCAMPOSEALMACENARÈLAINFORMACIØNDELNODO ,OSDOSRESTANTESSEUTILIZARÈNPARAAPUNTARLOSSUBÈRBOLESIZQUIERDOYDERECHO RESPEC TIVAMENTE DELNODOENCUESTIØN $ADOELNODO4 4

):1

).&/

$%2

%NÏLSEDISTINGUENTRESCAMPOS ◗ ◗



):1ESELCAMPODONDESEALMACENALADIRECCIØNDELSUBÈRBOLIZQUIERDODELNODO 4 ).&/REPRESENTAELCAMPODONDESEALMACENALAINFORMACIØNDELNODO.ORMAL MENTEENESTECAMPOYENELTRANSCURSODEESTELIBROSEALMACENARÈUNVALORSIMPLE NÞMEROOCARÈCTER3INEMBARGO ENLAPRÈCTICAESCOMÞNALMACENARENESTECAMPO CUALQUIERTIPODEDATO $%2ESELCAMPODONDESEALMACENALADIRECCIØNDELSUBÈRBOLDERECHODELNODO4 ,ADElNICIØNDEUNÈRBOLBINARIOENLENGUAJEALGORÓTMICOESCOMOSIGUE %.,!#%>./$/ ./$/ 2%')342/

):1TIPO%.,!#%

).&/TIPODEDATO

$%2TIPO%.,!#% [&INDELADElNICIØN]

196 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 .OTA%SIMPORTANTEOBSERVARQUESEUTILIZAELSÓMBOLO>PARAREPRESENTARELCON CEPTODEDATOTIPOPUNTERO

%JEMPLO

#ONSIDEREELÈRBOLBINARIODELAlGURAA QUEREPRESENTALAEXPRESIØNALGEBRAICA ! " #$ >3UREPRESENTACIØNENMEMORIAESCOMOLAQUESEMUESTRAENLA lGURAB .OTEELLECTORQUEENLAlGURABSEUTILIZAELTÏRMINO.),PARAHACERREFERENCIA ALÈRBOLVACÓO

&)'52! 2EPRESENTACIØNDEUNÉRBOLBINARIOENMEMORIAA ­RBOLBINARIOB 3UREPRESENTACIØN ENMEMORIA

#OMOTODASLASESTRUCTURASDEDATOS LOSÈRBOLESTIENENASOCIADASCIERTASOPERACIO NES!CONTINUACIØNSEPRESENTANLOSALGORITMOSDEALGUNASDEESTASOPERACIONESYMÈS ADELANTE CUANDOSEESTUDIENOTROSTIPOSDEÈRBOLES SEEXPLICARÈNOTRAS

 /PERACIONESENÉRBOLESBINARIOS 5NADELASOPERACIONESBÈSICASDEUNÈRBOLBINARIOESLACREACIØNDELMISMOENMEMO RIA5NALGORITMOMUYSIMPLEPARAFORMARUNÈRBOL PORMEDIODELACREACIØNDINÈMICA DENODOSYLAASIGNACIØNAÏSTOSDEINFORMACIØN ESELQUESEMUESTRAACONTINUACIØN

 Ç3#0-&4#*/"3*04

197

!LGORITMO #REA?ÈRBOL #REA?ÈRBOL!0./$/ [%LALGORITMOCREAUNÈRBOLBINARIOENMEMORIA!0./$/ESUNAVARIABLEDETIPO%.,!#% ˆPUNTEROAUNNODOˆ,APRIMERAVEZ!0./$/SECREAENELPROGRAMAPRINCIPAL] [).&/ ):1Y$%2SONCAMPOSDELREGISTRO./$/).&/ESDETIPOCARÈCTER):1Y$%2 SONDETIPOPUNTERO,ASVARIABLES2%30Y/42/SONDETIPOCARÈCTERYDETIPO%.,!#% RESPECTIVAMENTE]

 ,EER!0./$/>).&/[,EELAINFORMACIØNYSEGUARDAENELNODO]  %SCRIBIRhz%XISTENODOPORIZQUIERDA3Ó n.O v  ,EER2%30  3I2%30h3Óv ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER!0./$/>):1←/42/ 2EGRESARA#REA?ÈRBOLCON!0./$/>):1[,LAMADARECURSIVA] SINO (ACER!0./$/>):1←.),  [&INDELCONDICIONALDELPASO]  %SCRIBIRhz%XISTENODOPORDERECHA3Ó n.O v  ,EER2%30  3I2%30h3Óv ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER!0./$/>$%2←/42/ 2EGRESARA#REA?ÈRBOLCON!0./$/>$%2[,LAMADARECURSIVA] SINO (ACER!0./$/>$%2←.),  [&INDELCONDICIONALDELPASO]

5NAVEZQUESECREAELÈRBOLBINARIO SEPUEDENREALIZAROTRAS OPERACIONESSOBRE SUSELEMENTOSRECORRERTODOSLOSNODOS INSERTARUNNUEVONODO ELIMINARALGUNODELOS EXISTENTESOBUSCARUNVALORDETERMINADO 5NADELASOPERACIONESMÈSIMPORTANTESQUESEREALIZAENUNÈRBOLBINARIOESELRECO RRIDODELOSMISMOS2ECORRERSIGNIlCAVISITARLOSNODOSDELÈRBOLENFORMAORDENADA DE TALMANERAQUETODOSLOSNODOSDELMISMOSEANVISITADOSUNASOLAVEZ%XISTENTRESFOR MASDIFERENTESDEEFECTUARELRECORRIDOYTODASELLASDENATURALEZARECURSIVAÏSTASSON A 2ECORRIDOENPREORDEN ◗ 6ISITARLARAÓZ ◗ 2ECORRERELSUBÈRBOLIZQUIERDO ◗ 2ECORRERELSUBÈRBOLDERECHO B 2ECORRIDOENINORDEN ◗ 2ECORRERELSUBÈRBOLIZQUIERDO

198 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ◗ 6ISITARLARAÓZ ◗ 2ECORRERELSUBÈRBOLDERECHO C 2ECORRIDOENPOSORDEN ◗ 2ECORRERELSUBÈRBOLIZQUIERDO ◗ 2ECORRERELSUBÈRBOLDERECHO ◗ 6ISITARLARAÓZ %NLAlGURASEMUESTRANTRESÈRBOLESBINARIOSCONELRESULTADOQUESEOBTIENE ALEFECTUARLOSDIFERENTESTIPOSDERECORRIDO%NESTEEJEMPLO LAVISITADELNODOIMPLICØ LAIMPRESIØNDESUCONTENIDO .OTEQUEENUNÈRBOLBINARIOQUEREPRESENTAUNAEXPRESIØNALGEBRAICA POREJEM PLO ELÈRBOLDELAlGURAC LAIMPRESIØNDELAINFORMACIØNDESUSNODOS USANDOEL RECORRIDOPREORDEN PRODUCELANOTACIØNPOLACAPRElJA%NELCASODELRECORRIDOINORDEN SEOBTIENELANOTACIØNCONVENCIONALY PORÞLTIMO ELRECORRIDOPOSORDENPRODUCELANO TACIØNPOLACAPOSlJA!UNQUE CABEACLARAR SINLOSPARÏNTESISRESPECTIVOSQUEINDICANLA PRECEDENCIADELOSDISTINTOSOPERADORES

&)'52! ­RBOLESBINARIOSYSUS RECORRIDOS

 Ç3#0-&4#*/"3*04

199

&)'52! CONTINUACIØN

3EANALIZANACONTINUACIØNLOSALGORITMOSQUEEFECTÞANLOSDIFERENTESTIPOSDERECO RRIDOSENUNÈRBOLBINARIO !LGORITMO 0REORDEN

0REORDEN!0./$/ [%STEALGORITMOREALIZAELRECORRIDOPREORDENDEUNÈRBOLBINARIO!0./$/ESUNDATODETIPO %.,!#%ˆPUNTEROAUNNODOˆ] [).&/ ):1Y$%2SONCAMPOSDELREGISTRONODO).&/ESUNAVARIABLEDETIPOCARÈCTER):1 Y$%2SONVARIABLESDETIPOPUNTERO]  3I!0./$/≠.), ENTONCES 6ISITAREL!0./$/[%SCRIBIR./$/>).&/] 2EGRESARA0REORDENCON!0./$/>):1 [,LAMADARECURSIVAA0REORDENCONLARAMAIZQUIERDADELNODOENCUESTIØN] 2EGRESARA0REORDENCON!0./$/>$%2 [,LAMADARECURSIVAA0REORDENCONLARAMADERECHADELNODOENCUESTIØN]  [&INDELCONDICIONALDELPASO]

.OTA#ABEDESTACARQUEELTÏRMINOVISITARSEPUEDEREEMPLAZARPORCUALQUIEROTRA INSTRUCCIØN VÈLIDA POR EJEMPLO ESCRIBIR SUMAR O COMPARAR LA INFORMACIØN DEL NODO .OTEQUEESTAACLARACIØNSEAPLICATAMBIÏNPARALOSOTROSTIPOSDERECORRIDOS

%JEMPLO

%NLASIGUIENTETABLASEPRESENTANLOSPASOSNECESARIOSPARAOBTENERELRECORRIDOPREOR DENDELÈRBOLBINARIODELAlGURAA UTILIZANDOELALGORITMO %NLACOLUMNA0ILARAMAPENDIENTEDEVISITAR LALLAMADA. INDICAELORDENEN ELCUALLASRAMASPENDIENTESDEVISITARSEINTRODUJERONENLAPILA%NLACOLUMNA.ODO ACTUALLALLAMADA. SE×ALALARAMAQUESEEXTRAJODELAPILA/BSERVEELLECTORQUEEL ORDENENQUELOSNODOSSEVISITARONES ! " $ % # % '

200 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 4!",! 2ECORRIDOPREORDEN

0ASO

.ODO ACTUAL

.ODO VISITADO

2AMAA VISITAR

0ILARAMAPENDIENTE DEVISITAR



!

!

!>):1→"

!>$%2→#



"

"

">):1→$

">$%2→%



$

$

$>):1→.),

$>$%2→.),



.),



 .),



 %

%

%>):1→.),

%>$%2→.),



.),



 .),



 #

#

#>):1→&

#>$%2→'



&

&

&>):1→.),

&>$%2→.),



.),



 .),



 '

'

'>):1→.),

'>$%2→.),



.),



 .),

!LGORITMO )NORDEN

)NORDEN!0./$/ [%STEALGORITMOREALIZAELRECORRIDOINORDENDEUNÈRBOLBINARIO!0./$/ESUNREGISTRODE TIPO%.,!#%ˆPUNTEROAUNNODOˆ] [).&/ ):1Y$%2SONCAMPOSDELREGISTRONODO).&/ESUNAVARIABLEDETIPOCARÈCTER):1 Y$%2SONVARIABLESDETIPOPUNTERO]  3I!0./$/≠.), ENTONCES 2EGRESARA)NORDENCON!0./$/>):1 [,LAMADARECURSIVAA)NORDENCONLARAMAIZQUIERDADELNODOENCUESTIØN] 6ISITAREL!0./$/[%SCRIBIR!0./$/>).&/] 2EGRESARA)NORDENCON!0./$/>$%2 [,LAMADARECURSIVAA)NORDENCONLARAMADERECHADELNODOENCUESTIØN]  [&INDELCONDICIONALDELPASO]

%JEMPLO

%N LA TABLA  SE MUESTRA LA GENERACIØN DEL RECORRIDO INORDEN DEL ÈRBOL DE LA lGURA A USANDOELALGORITMO

 Ç3#0-&4#*/"3*04 4!",! 2ECORRIDOINORDEN

0ASO

.ODO ACTUAL

2AMAAVISITAR

.ODO VISITADO

0ILARAMA

PENDIENTEDEVISITAR



!

!>):1→"

!>$%2→# !

 



"

">):1→$

">$%2→% "

 



$

$>):1→.),

$>$%2→.), $

 



.),

$



 .),

"



 %

%>):1→.), %

 



.),

%



 .),

!



 #

#>):1→&

#>$%2→' #

 



&

&>):1→.),

&>$%2→.), &

 



.),

&



 .),

#



 '

'>$%2→.), '

 



.),



 .),

%>):1→.),

'>):1→.),

201

'

%NLACOLUMNA0ILARAMAPENDIENTEDEVISITAR LALLAMADA. INDICAELORDENENEL CUALLASRAMASPENDIENTESDEVISITARFUERONINTRODUCIDASALAPILA%NLASCOLUMNAS.ODO ACTUALY.ODOVISITADO LASLLAMADAS. INDICANLASINSTRUCCIONESQUESEEXTRAJERONDE LAPILA.OTEQUEESTAOBSERVACIØNTAMBIÏNESVÈLIDAPARALATABLA %LORDENENQUESEVISITARONLOSNODOSES $ " % ! & # ' !LGORITMO 0OSORDEN 0OSORDEN!0./$/ [%STEALGORITMOREALIZAELRECORRIDOPOSORDENDEUNÈRBOLBINARIO!0./$/ESUNDATODETIPO %.,!#%ˆPUNTEROAUNNODOˆ] [).&/ ):1Y$%2SONCAMPOSDELREGISTRONODO).&/ESUNAVARIABLEDETIPOCARÈCTER):1 Y$%2SONVARIABLESDETIPOPUNTERO]

202 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4  3I!0./$/≠.), ENTONCES 2EGRESARA0OSORDENCON!0./$/>):1 [,LAMADARECURSIVAA0OSORDENCONLARAMAIZQUIERDADELNODOENCUESTIØN] 2EGRESARA0OSORDENCON!0./$/>$%2 [,LAMADARECURSIVAA0OSORDENCONLARAMADERECHADELNODOENCUESTIØN] 6ISITAREL!0./$/[%SCRIBIR!0./$/>).&/]  [&INDELCONDICIONALDELPASO]

%JEMPLO

%NLATABLASEPRESENTANLOSPASOSNECESARIOSQUESESIGUIERONPARAEFECTUARELRECO RRIDOPOSORDENDELÈRBOLDELAlGURAA APLICANDOELALGORITMOANTERIOR

.ODO ACTUAL

4!",! 2ECORRIDOPOSORDEN

0ASO 

!

2AMAAVISITAR !>):1→"



"

">):1→$



$

$>):1→.),



.),



 .),



 %



.),



 .),

0ILARAMA PENDIENTEDEVISITAR

.ODO VISITADO

!



!>$%2→#



"



">$%2→%



$



$>$%2→.),



%



%>$%2→.),



#



$ %>):1→.),

%



"



 #

#>):1→&



&

&>):1→.),



.),



 .),



 '



.),



 .),

#>$%2→'



&



&>$%2→.),



'



'>$%2→.),



& '>):1→.),

'



#



!

 Ç3#0-&4#*/"3*04

203

 ­RBOLESBINARIOSDEBÞSQUEDA %NESTASECCIØNSEPRESENTAUNTIPOESPECIALDEÈRBOLESBINARIOS3UPRINCIPALCARACTE RÓSTICA ES QUE LA INFORMACIØN SE ALMACENA EN LOS NODOS CUIDANDO DE MANTENER CIERTO ORDEN &ORMALMENTE SE DElNE UN ÈRBOL BINARIO DE BÞSQUEDA DE LA SIGUIENTE MANERA 0ARATODONODO4DELÈRBOLSEDEBECUMPLIRQUETODOSLOSVALORESALMACENADOSEN ELSUBÈRBOLIZQUIERDODE4SEANMENORESOIGUALESALAINFORMACIØNGUARDADAENEL NODO4$EFORMASIMILAR TODOSLOSVALORESALMACENADOSENELSUBÈRBOLDERECHODE 4DEBENSERMAYORESOIGUALESALAINFORMACIØNGUARDADAENELNODO4,OSVALORES ALOSQUESEHACEREFERENCIAENLADElNICIØNRElERENALCONTENIDODELCAMPODEINFORMA CIØNDELNODO0OREJEMPLO SIENELÈRBOLSEALMACENAINFORMACIØNDELOSEMPLEADOSDE UNAEMPRESA LOSVALORESUTILIZADOSPARAGENERARELÈRBOLDEMANERAORDENADACORRESPON DERÈNALNÞMERODECADAEMPLEADOˆCAMPOCLAVEˆ %LÈRBOLBINARIODEBÞSQUEDAESUNAESTRUCTURADEDATOSOBRELACUALSEPUEDENREA LIZARElCIENTEMENTELASOPERACIONESDEBÞSQUEDA INSERCIØNYELIMINACIØN#OMPARANDO ESTAESTRUCTURACONOTRAS SEPUEDENOBSERVARCIERTASVENTAJAS0OREJEMPLO ENUNARREGLO ESPOSIBLELOCALIZARDATOSElCIENTEMENTESIÏSTOSSEENCUENTRANORDENADOS PEROLASOPE RACIONESDEINSERCIØNYELIMINACIØNRESULTANCOSTOSAS PORQUEINVOLUCRANMOVIMIENTO DELOSELEMENTOSDENTRODELARREGLO%NLASLISTAS POROTRAPARTE DICHASOPERACIONESSE PUEDENLLEVARACABOCONFACILIDAD PEROLAOPERACIØNDEBÞSQUEDA ENESTECASO ESUNA OPERACIØNQUEDEMANDARECURSOS PUDIENDOINCLUSOREQUERIRRECORRERTODOSLOSELEMEN TOSDEELLAPARALLEGARAUNOENPARTICULAR

%JEMPLO

&)'52! ­RBOLBINARIODEBÞSQUEDA

,AlGURACONTIENEUNÈRBOLBINARIODEBÞSQUEDA /BSERVEELLECTORQUESIENDICHOÈRBOLSESUSTITUYENLOSVALORESPOR POR YPOR ELÈRBOLCONTINÞASIENDOUNÈRBOLBINARIODEBÞSQUEDA 0EROPOROTRAPARTE SIENDICHOÈRBOLSEREEMPLAZAELVALORPOR ENTONCESEL ÈRBOLDEJADESERUNÈRBOLBINARIODEBÞSQUEDA PUESTOQUEVIOLAELPRINCIPIOQUEDICE h4ODOSLOSNODOSDELSUBÈRBOLIZQUIERDODELNODO4DEBENALMACENARVALORESMENORESO IGUALESALNODO||ˆENESTECASONOESMENORAˆ

204 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 4AMBIÏNESPOSIBLEOBSERVARQUESISEEFECTÞAUNRECORRIDOINORDENSOBREUNÈRBOL DEBÞSQUEDASEOBTENDRÈUNACLASIlCACIØNDELOSNODOSENFORMAASCENDENTE%LRECORRI DOINORDENDELÈRBOLDELAlGURAPRODUCEELSIGUIENTERESULTADO           

"ÞSQUEDA ,AOPERACIØNDEBÞSQUEDAENUNÈRBOLBINARIODEBÞSQUEDAESMUCHOMÈSElCIENTE QUEENUNÈRBOLBINARIOGENERAL YAQUEALCOMPARARELVALORBUSCADOCONLAINFORMACIØN DELNODOVISITADO SINOESIGUAL SEDEBERÈCONTINUARSØLOPORALGUNODELOSDOSSUBÈRBO LES0OREJEMPLO SISECOMPARAELVALORBUSCADOCONELVALORDELNODOVISITADO LA BÞSQUEDASØLODEBECONTINUARPORELCAMINODELADERECHA%LCAMINODELAIZQUIERDASE DESECHA PORQUECONTIENENODOSCUYOSVALORESSERÈNMENORESOIGUALESA !LGORITMO "ÞSQUEDA?!"" "ÞSQUEDA?!""!0./$/ ).&/2 [%STEALGORITMOLOCALIZAELNODODELÈRBOLBINARIODEBÞSQUEDAQUECONTIENELAINFORMACIØN ).&/2 QUEESTAMOSBUSCANDO!0./$/ESUNPARÈMETRODETIPO%.,!#%ˆLAPRIMERAVEZ APUNTAALARAÓZDELÈRBOLˆ3EASUMEQUEELÈRBOLNOESVACÓO]  3I).&/2!0./$/>).&/ ENTONCES  3I!0./$/>):1.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv SINO 2EGRESARA"ÞSQUEDA?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA]  [&INDELCONDICIONALDELPASO] SINO  3I).&/2!0./$/>).&/ ENTONCES  3I!0./$/>$%2.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv SINO 2EGRESARA"ÞSQUEDA?!""CON!0./$/>$%2E).&/2 [,LAMADARECURSIVA]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNESTÈENELÈRBOLv  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

 Ç3#0-&4#*/"3*04

205

!NALICEELALGORITMODEBÞSQUEDACONELSIGUIENTEEJEMPLO

%JEMPLO

3UPONGAMOSQUESEDESEALOCALIZARLASCLAVESYENELÈRBOLBINARIODEBÞSQUEDA DELAlGURA%NLASTABLASYSEPRESENTANLOSPASOS0 NÞMERODECOM PARACIONES # Y PREGUNTAS Y ACCIONES NECESARIAS PARA LOCALIZAR LAS CLAVES  Y  RESPECTIVAMENTE

4!",!

0

#

,OCALIZACIØNDELACLAVE ).&/2←





0REGUNTASYACCIONES z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),





.O%NTONCESSEREGRESAA"ÞSQUEDACONELSUBÈRBOLIZQUIERDODE  E).&/2



z%S



.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),

  

z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),





.O%NTONCESSEREGRESAA"ÞSQUEDACONELSUBÈRBOLDERECHODE  E).&/2

.O%NTONCESSEREGRESAA"ÞSQUEDACONELSUBÈRBOLIZQUIERDODE  E).&/2



z%S



.Oz%S .O%NTONCES²8)4/

4!",! ,OCALIZACIØNDELACLAVE ).&/2←

0 

#

0REGUNTASYACCIONES



z%S



.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),

  

z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),





.O %NTONCES SE REGRESA A "ÞSQUEDA CON EL SUBÈRBOL DERECHO DE   E).&/2

.O %NTONCES SE REGRESA A "ÞSQUEDA CON EL SUBÈRBOL IZQUIERDO DE   E).&/2



z%S



3Óz%SELSUBÈRBOLIZQUIERDODE.), .), 3Ó%NTONCES&2!#!3/

206 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 /TRAFORMADEESCRIBIRELALGORITMODEBÞSQUEDAPRESENTADOANTERIORMENTEESLAQUE SEMUESTRAACONTINUACIØN%NESTAVARIANTESECONTEMPLAELCASODEQUEELÈRBOLESTÏ VACÓO !LGORITMO "ÞSQUEDA?V?!"" "ÞSQUEDA?V?!""!0./$/ ).&/2 [%LALGORITMOLOCALIZAELNODODELÈRBOLBINARIODEBÞSQUEDAQUECONTIENECIERTAINFORMACIØN ˆ).&/2ˆ 0ARÈMETRO DE TIPO ENTERO !0./$/ ES UNA VARIABLE DE TIPO %.,!#% ,A PRIMERAVEZ APUNTAALARAÓZDELÈRBOL]  3I!0./$/≠.), ENTONCES  3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA"ÞSQUEDA?V?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA] SINO  3I).&/2./$/>).&/ ENTONCES 2EGRESARA"ÞSQUEDA?V?!""CON!0./$/>$%2E).&/2 [,LAMADARECURSIVA] SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]

)NSERCIØNENUNÉRBOLBINARIODEBÞSQUEDA ,AINSERCIØNENUNÈRBOLBINARIODEBÞSQUEDAESUNAOPERACIØNQUESEPUEDEREALIZAR ElCIENTEMENTEENESTETIPODEESTRUCTURADEDATOS,AESTRUCTURACRECECONFORMESEIN SERTANELEMENTOSALÈRBOL,OSPASOSQUESEDEBENREALIZARPARAAGREGARUNNUEVONODO AUNÈRBOLBINARIODEBÞSQUEDASONLOSSIGUIENTES  #OMPARARLACLAVEAINSERTARCONLARAÓZDELÈRBOL3IESMAYOR SESIGUECONELSUB ÈRBOLDERECHO3IESMENOR SECONTINÞACONELSUBÈRBOLIZQUIERDO  2EPETIRSUCESIVAMENTEELPASOHASTAQUESECUMPLAALGUNADELASSIGUIENTESCON DICIONES  %LSUBÈRBOLDERECHO OELSUBÈRBOLIZQUIERDO ESIGUALAVACÓO ENCUYOCASOSE PROCEDERÈAINSERTARELELEMENTOENELLUGARQUELECORRESPONDE

 Ç3#0-&4#*/"3*04

207

 ,ACLAVEQUESEQUIEREINSERTARESTÈENELNODOANALIZADO PORLOTANTONOSE LLEVAACABOLAINSERCIØN%STECASOESVÈLIDOSØLOCUANDOLAAPLICACIØNEXIGE QUENOSEREPITANELEMENTOS

%JEMPLO

3UPONGAMOSQUESEQUIEREINSERTARLASSIGUIENTESCLAVESENUNÈRBOLBINARIODEBÞSQUEDA QUESEENCUENTREVACÓO          ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLAlGURA

&)'52! )NSERCIØNENUNÉRBOLBINARIODEBÞSQUEDA .OTA,ASLÓNEASENCOLORINDICANELELEMENTOQUEACABADEINSERTARSE

208 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN

%LALGORITMODEINSERCIØNESELSIGUIENTE !LGORITMO )NSERCIØN?!"" )NSERCIØN?!""!0./$/ ).&/2 [%LALGORITMOREALIZALAINSERCIØNDEUNNODOENUNÈRBOLBINARIODEBÞSQUEDA!0./$/ES UNAVARIABLEDETIPOPUNTEROYLAPRIMERAVEZDEBESERDISTINTADEVACÓO).&/2ESUNPARÈMETRO DETIPOENTEROQUECONTIENELAINFORMACIØNQUESEQUIEREINSERTARENUNNUEVONODO] [3EUTILIZAADEMÈS COMOAUXILIAR LAVARIABLE/42/DETIPOPUNTERO]  3I).&/2!0./$/>).&/ ENTONCES  3I!0./$/>):1.), ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER /42/>):1 ← .), /42/>$%2 ← .), /42/>).&/ ← ).&/2 Y!0./$/>):1←/42/ SINO 2EGRESARA)NSERCIØN?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA]  [&INDELCONDICIONALDELPASO] SINO  3I).&/2!0./$/>).&/ ENTONCES  3I!0./$/>$%2.), ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER/42/>):1←.), /42/>$%2←.), /42/>).&/←).&/2Y./$/>$%2←/42/

 Ç3#0-&4#*/"3*04

209

SINO 2EGRESARA)NSERCIØN?!""CON./$/>$%2E).&/2 [,LAMADARECURSIVA]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LNODOYASEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%JEMPLO

4!",!

3UPONGAMOSQUESEDESEAINSERTARLASCLAVESYENELÈRBOLBINARIODEBÞSQUEDA DELAlGURA%NLASTABLASYSEPRESENTANLOSPASOS0 NÞMERODECOMPARA CIONES# YPREGUNTASYACCIONESNECESARIASPARAINSERTARESTASCLAVES 0

)NSERCIØNDELACLAVE ).&/2←

# 



z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),





0REGUNTASYACCIONES

.O%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLIZQUIERDODE E)NFOR



z%S



.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),

  

0

)NSERCIØNDELACLAVE ).&/2←



z%S 3Óz%SELSUBÈRBOLIZQUIERDODE.), .),



4!",!

.O%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLDERECHODE E)NFOR

3Ó%NTONCESCREAROTRONODO REALIZARLOSENLACESYCARGARLAINFORMACIØN

#

0REGUNTASYACCIONES



z%S



.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),

  

.Oz%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),





3Ó%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLDERECHODE E)NFOR

.O%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLIZQUIERDODE E)NFOR



z%S



.Oz%S 3Óz%SELSUBÈRBOLDERECHODE.), .),



.O%NTONCESCREAROTRONODO REALIZARLOSENLACESYCARGARLAINFORMACIØN

210 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %NLAlGURASEPRESENTAELÈRBOLBINARIODEBÞSQUEDALUEGODEREALIZADAESTA OPERACIØN &)'52! ­RBOLBINARIODEBÞSQUEDA )NSERCIØNDELASCLAVES Y

/TRAFORMADEEXPRESARELALGORITMODEINSERCIØNESLASIGUIENTE !LGORITMO )NSERCIØN?V?!"" )NSERCIØN?V?!""!0./$/ ).&/2 [%LALGORITMOREALIZALAINSERCIØNDEUNELEMENTOENUNÈRBOLBINARIODEBÞSQUEDA!0./$/ ES UNA VARIABLE DE TIPO %.,!#% LA PRIMERA VEZ APUNTA A LA RAÓZ DEL ÈRBOL ).&/2 ES UN PARÈMETRODETIPOENTEROQUECONTIENELAINFORMACIØNDELELEMENTOQUESEQUIEREINSERTAR%L ALGORITMOCONSIDERAELCASODEUNÈRBOLVACÓO]  3I!0./$/≠.), ENTONCES  3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA)NSERCIØN?V?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA] SINO  3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA)NSERCIØN?V?!""CON!0./$/>$%2E).&/2 [,LAMADARECURSIVA] SINO %SCRIBIRh,AINFORMACIØNYASEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] SINO #REAR/42/ [3ECREAUNNUEVONODO] (ACER/42/>):1←.), /42/>$%2←.), /42/>).&/← ).&/2 Y!0./$/←/42/  [&INDELCONDICIONALDELPASO]

 Ç3#0-&4#*/"3*04

211

%LIMINACIØNENUNÉRBOLBINARIODEBÞSQUEDA ,AOPERACIØNDEELIMINACIØNENUNÈRBOLBINARIODEBÞSQUEDAESUNPOCOMÈSCOM PLICADAQUELADEINSERCIØN²STACONSISTEENELIMINARUNNODOSINVIOLARLOSPRINCIPIOS QUEDElNENUNÈRBOLBINARIODEBÞSQUEDA3EDEBENDISTINGUIRLOSSIGUIENTESCASOS  3IELELEMENTOAELIMINARESTERMINALUHOJA SIMPLEMENTESESUPRIMEREDElNIENDO ELPUNTERODESUPREDECESOR  3IELELEMENTOAELIMINARTIENEUNSOLODESCENDIENTE ENTONCESTIENEQUESUSTITUIRSE PORESEDESCENDIENTE  3IELELEMENTOAELIMINARTIENELOSDOSDESCENDIENTES ENTONCESSETIENEQUESUSTITUIR PORELNODOQUESEENCUENTRAMÈSALAIZQUIERDAENELSUBÈRBOLDERECHOOPORELNODO QUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOLIZQUIERDO #ABEDESTACARQUEANTESDEELIMINARUNNODO SEDEBELOCALIZARÏSTEENELÈRBOL0ARA ESTOSEUTILIZAELALGORITMODEBÞSQUEDAPRESENTADOANTERIORMENTE

%JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLASSIGUIENTESCLAVESDELÈRBOLBINARIODEBÞSQUEDA DELAlGURA        ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLAlGURA

&)'52! %LIMINACIØNENUNÉRBOL BINARIODEBÞSQUEDAA Y F CORRESPONDENALPRIMER CASOB YE CORRESPONDEN ALSEGUNDOCASOC YD CO RRESPONDENALTERCERCASO G %STADOlNALDELÉRBOL .OTA,ASmECHASENCOLOR INDICANELELEMENTOQUEQUIERE ELIMINARSE

212 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN

!CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE

 Ç3#0-&4#*/"3*04

213

!LGORITMO %LIMINACIØN?!"" %LIMINACIØN?!""!0./$/ ).&/2 [%LALGORITMOREALIZALAELIMINACIØNDEUNELEMENTOENUNÈRBOLBINARIODEBÞSQUEDA!0./$/ ESUNAVARIABLE PORREFERENCIA DETIPO%.,!#%).&/2ESUNPARÈMETRODETIPOENTEROQUE CONTIENELAINFORMACIØNDELNODOQUESEDESEAELIMINAR] [!58 !58)Y/42/SONVARIABLESAUXILIARESDETIPOPUNTERO"/ESUNAVARIABLEDETIPO BOOLEANO]  3I!0./$/≠.), ENTONCES  3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA%LIMINACIØN?!""CON!0./$/>):1E).&/2 SINO  3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA%LIMINACIØN?!""CON!0./$/>$%2E).&/2 SINO (ACER/42/←./$/  3I/42/>$%2.), ENTONCES (ACER!0./$/←/42/>):1 SINO  3I/42/>):1.), ENTONCES (ACER!0./$/←/42/>$%2 SINO (ACER!58←!0./$/>):1Y"/←&!,3/ ! -IENTRAS!58>$%2≠.), 2EPETIR (ACER!58←!58 !58←!58>$%2 Y"/←6%2$!$%2/ " [&INDELCICLODELPASO!] (ACER!0./$/>).&/←!58>).&/Y /42/←!58 # 3I"/6%2$!$%2/ ENTONCES (ACER!58>$%2←!58>):1 SINO (ACER!0./$/>):1←!58>):1 $ [&INDELCONDICIONALDELPASO#]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] 1UITAR/42/ [3ELIBERAELESPACIODEMEMORIA]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNAELIMINARNOSEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]

214 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO

$ADOELÈRBOLDELAlGURAA VERIlQUESIQUEDAIGUALALÈRBOLDELAlGURABLUEGO DEELIMINAR APLICANDOELALGORITMO LASCLAVESQUESEMUESTRANACONTINUACIØN     

&)'52! %LIMINACIØNENUNÉRBOLBINARIODEBÞSQUEDAA !NTESDEELIMINARLASCLAVESB $ESPUÏS DEELIMINARLASCLAVES .OTA%NELEJEMPLO COMOELNODOAELIMINARTIENEDOSDESCENDIENTES SESUSTITUYEPORELNODOQUE SEENCUENTRAMÉSALADERECHAENELSUBÉRBOLIZQUIERDO

 ­2"/,%3"!,!.#%!$/3 #UANDO SE ESTUDIARON LOS ÈRBOLES BINARIOS DE BÞSQUEDA SE MENCIONØ QUE ES UNA ES TRUCTURASOBRELACUALSEPUEDENREALIZARElCIENTEMENTELASOPERACIONESDEBÞSQUEDA INSERCIØNYELIMINACIØN3INEMBARGO SIELÈRBOLCRECEODECRECEDESCONTROLADAMENTE EL RENDIMIENTOPUEDEDISMINUIRCONSIDERABLEMENTE%LCASOMÈSDESFAVORABLESEPRODUCE CUANDOSEINSERTAUNCONJUNTODECLAVESORDENADASENFORMAASCENDENTEODESCENDENTE COMOSEMUESTRAENLAlGURA &)'52! ­RBOLESBINARIOSDEBÞS QUEDACONCRECIMIENTO DESCONTROLADO

 Ç3#0-&4#"-"/$&"%04

215

%SDENOTARQUEELNÞMEROPROMEDIODECOMPARACIONESQUESEDEBENREALIZARPARA LOCALIZARUNADETERMINADACLAVEENUNÈRBOLBINARIODEBÞSQUEDACONCRECIMIENTODES CONTROLADOES. CIFRAQUEMUESTRAUNRENDIMIENTOMUYPOBREENLAESTRUCTURA #ON EL OBJETO DE MANTENER LA ElCIENCIA EN LA OPERACIØN DE BÞSQUEDA SURGEN LOS ÈRBOLESBALANCEADOS,APRINCIPALCARACTERÓSTICADEÏSTOSESLADEREALIZARREACOMODOSO BALANCEOS DESPUÏSDEINSERCIONESOELIMINACIONESDEELEMENTOS%STOSÈRBOLESTAMBIÏN RECIBENELNOMBREDE!6,ENHONORASUSINVENTORES DOSMATEMÈTICOSRUSOS '- !DELSON 6ELSKIIY%-,ANDIS &ORMALMENTESEDElNEUNÈRBOLBALANCEADOCOMOUNÈRBOLBINARIODEBÞSQUE DA ENELCUALSEDEBECUMPLIRLASIGUIENTECONDICIØN0ARATODONODO4DELÈRBOL LA ALTURA DE LOS SUBÈRBOLES IZQUIERDO Y DERECHO NO DEBEN DIFERIR EN MÈS DE UNA UNIDAD \(2)n(2$\≤ DONDE(2) ESLAALTURADELARAMAOSUBÈRBOLIZQUIERDOY(2$ESLAALTURADELARAMAO SUBÈRBOLDERECHO %NLAlGURASEMUESTRANDOSEJEMPLOSDEÈRBOLESBALANCEADOS

&)'52! $OSÉRBOLESBALANCEADOS A #ONALTURAB #ON ALTURA

/BSERVEELLECTORQUESISEINSERTANLASCLAVES OENELÈRBOLBALANCEADODE LAlGURAA ÏSTEPIERDEELEQUILIBRIO3INEMBARGO SISEINSERTANLASCLAVESO ENELMISMOÈRBOL ÏSTEMANTIENEELEQUILIBRIOMÈSAÞN LOMEJORA !HORABIEN CONRESPECTOALAELIMINACIØN SIADICHOÈRBOLSELEQUITANLASCLAVES OELÈRBOLCONTINÞASIENDOBALANCEADOINCLUSOPODRÓANQUITÈRSELELASTRESCLAVESY ELÈRBOLNOPERDERÓAELEQUILIBRIO3INEMBARGO SISEELIMINALACLAVEELÈRBOLPIERDE ELEQUILIBRIOYESNECESARIOREESTRUCTURARLO ,OSÈRBOLESBALANCEADOSSEPARECENMUCHO ENSUMECANISMODEFORMACIØN ALOS NÞMEROS&IBONACCI %LÈRBOL DEALTURA ES VACÓO EL ÈRBOLDE ALTURA TIENE UNÞNICO NODOY ENGENERAL ELNÞMERODENODOSDELÈRBOLCONALTURAHSECALCULAAPLICANDO LASIGUIENTEFØRMULARECURSIVA

216 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

▼ &ØRMULA

+H+Hn  +Hn

DONDE+INDICAELNÞMERODENODOSDELÈRBOLYHLAALTURA 0OROTRAPARTE ALGUNOSESTUDIOSDEMUESTRANQUELAALTURADEUNÈRBOLBALANCEADODE NNODOSNUNCAEXCEDERÈDE LOGN

%JEMPLO

3UPONGAMOS QUE SE DESEA CALCULAR EL NÞMERO DE NODOS DE UN ÈRBOL BALANCEADO CON ALTURA,AFORMAENQUESEEFECTÞAELCÈLCULOESLASIGUIENTE







+





+









+ +



+ 







 + +



+ 







+  + +

+ 





+  + + + 

 

+   

+

 )NSERCIØNENÉRBOLESBALANCEADOS !LINSERTARUNELEMENTOENUNÈRBOLBALANCEADOSEDEBENDISTINGUIRLOSSIGUIENTESCA SOS  ,ASRAMASIZQUIERDA2) YDERECHA2$ DELÈRBOLTIENENLAMISMAALTURA(2)(2$ PORLOTANTO  3ISEINSERTAUNELEMENTOEN2) ENTONCES(2)SERÈMAYORENUNAUNIDADA(2$  3ISEINSERTAUNELEMENTOEN2$ ENTONCES(2$SERÈMAYORENUNAUNIDADA(2) /BSERVEQUEENCUALQUIERADELOSDOSCASOSMENCIONADOSY NOSEVIOLA ELCRITERIODEEQUILIBRIODELÈRBOL  ,ASRAMASIZQUIERDA2) YDERECHA2$ DELÈRBOLTIENENALTURADIFERENTE(2)≠ (2$   3UPONGAMOSQUE(2)(2$  3ISEINSERTAUNELEMENTOEN2) ENTONCES(2)SERÈIGUALA(2$[,ASRA MASTIENENLAMISMAALTURA PORLOQUESEMEJORAELEQUILIBRIODELÈRBOL]  3ISEINSERTAUNELEMENTOEN2$ ENTONCESSEROMPEELCRITERIODEEQUILI BRIODELÈRBOLYESNECESARIOREESTRUCTURARLO  3UPONGAMOSQUE(2)(2$  3ISEINSERTAUNELEMENTOEN2) ENTONCESSEROMPEELCRITERIODEEQUILI BRIODELÈRBOLYESNECESARIOREESTRUCTURARLO  3ISEINSERTAUNELEMENTOEN2$ ENTONCES(2$SERÈIGUALA(2)[,ASRA MASTIENENLAMISMAALTURA PORLOQUESEMEJORAELEQUILIBRIODELÈRBOL]

 Ç3#0-&4#"-"/$&"%04

217

%NLAlGURASEMUESTRANDIAGRAMASDELOSDISTINTOSCASOSQUESEPRESENTANEN LAOPERACIØNDEINSERCIØNENÈRBOLESBALANCEADOS

&)'52! $IFERENTESCASOSDEINSER CIØNENÉRBOLESBALANCEA DOSA #ASOB #ASO C #ASOD #ASO E #ASOF #ASO G #ASOH #ASO I #ASO .OTA,ALÓNEADISCONTINUA MARCAELEQUILIBRIOPERFECTO DELÉRBOL





































!HORABIEN PARAPODERDETERMINARSIUNÈRBOLESTÈBALANCEADOONO SEDEBEMANE JARINFORMACIØNRELATIVAALEQUILIBRIODECADANODODELÈRBOL3URGEASÓELCONCEPTODE FACTORDEEQUILIBRIODEUNNODO&% QUESEDElNECOMOLAALTURADELSUBÈRBOLDERECHO MENOSLAALTURADELSUBÈRBOLIZQUIERDO

&%(2$n(2)

▼ &ØRMULA

218 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ,OSVALORESQUEPUEDETOMAR&%SONn  3I&%LLEGARAATOMARLOSVALORESDE nO ENTONCESDEBERÓAREESTRUCTURARSEELÈRBOL%NLAlGURASEPRESENTAUNÈRBOL BALANCEADOCONELCORRESPONDIENTE&%PARACADANODODELÈRBOL

&)'52! ­RBOLBALANCEADOCONEL CORRESPONDIENTE&%

/BSERVEELLECTORQUEENLAlGURAEL&%DELNODOQUEALMACENAELESn PUESTOQUELAALTURADELSUBÈRBOLDERECHOESIGUALAYLAALTURADELSUBÈRBOLIZQUIERDO IGUALA &%nn %L&%DESECALCULACOMO &%n !CONTINUACIØNSEPRESENTALADElNICIØNDEUNÈRBOLBALANCEADOENLENGUAJEALGO RÓTMICO %.,!#%>./$/ ./$/ 2%')342/

):1 $%2TIPO%.,!#%

).&/TIPODEDATO

&%n [&INDELADElNICIØN]

 2EESTRUCTURACIØNDELÉRBOLBALANCEADO %L PROCESO DE INSERCIØN EN UN ÈRBOL BALANCEADO ES SENCILLO SIN EMBARGO REQUIERE DE OPERACIONESAUXILIARESQUECOMPLICANPARCIALMENTEELPROCESO0RIMEROSEDEBESEGUIR ELCAMINODEBÞSQUEDADELÈRBOL HASTALOCALIZARELLUGARDONDEHAYQUEINSERTARELELE MENTO,UEGOSECALCULASU&% QUEOBVIAMENTESERÈ YREGRESAMOSPORELCAMINODE BÞSQUEDACALCULANDOEL&%DELOSDISTINTOSNODOSVISITADOS3IENALGUNODELOSNODOSSE VIOLAELCRITERIODEEQUILIBRIOENTONCESSEDEBEREESTRUCTURARELÈRBOL%LPROCESOTERMINA

 Ç3#0-&4#"-"/$&"%04

219

ALLLEGARALARAÓZDELÈRBOL OCUANDOSEREALIZALAREESTRUCTURACIØNDELMISMO ENCUYO CASONOESNECESARIODETERMINAREL&%DELOSNODOSRESTANTES 2EESTRUCTURARELÈRBOLSIGNIlCAROTARLOSNODOSDELMISMOPARALLEVARLOAUNESTADO DEEQUILIBRIO,AROTACIØNPUEDESERSIMPLEOCOMPUESTA%LPRIMERCASOINVOLUCRADOS NODOSYELSEGUNDOCASOAFECTAATRES3ILAROTACIØNESSIMPLESEPUEDEREALIZARPORLAS RAMASDERECHAS$$ OPORLASRAMASIZQUIERDAS)) 3IPOROTRAPARTELAROTACIØNES COMPUESTA SE PUEDE REALIZAR POR LAS RAMAS DERECHA E IZQUIERDA $) O POR LAS RAMAS IZQUIERDAYDERECHA)$ 

%JEMPLO

&)'52! 2OTACIONESENÉRBOLES BALANCEADOSA 2OTACIØN)) B 2OTACIØN$$C 2OTACIØN $)D 2OTACIØN)$

%NLAlGURASEPUEDENOBSERVARGRÈlCAMENTELOSDIFERENTESTIPOSDEROTACIONES%N LAlGURAASEPRESENTALAROTACIØN)) ENLAlGURABLAROTACIØN$$ ENLAlGURA CLAROTACIØN$)YENLAlGURADLAROTACIØN)$ ,ALÓNEACONTINUA?????? MARCAELESTADODELOSNODOSDELÈRBOLANTESDEREALIZAR LAINSERCIØN,ALÓNEADISCONTINUA???? INDICAELNUEVOELEMENTOINSERTADO,ALÓNEA CONPUNTOS MARCAELCAMINODEREGRESOHASTAQUESEDETECTAELDESEQUILIBRIODEL ÈRBOL,ALÓNEAGRUESA?????? INDICAELMOVIMIENTODELOSNODOSENLAROTACIØN

220 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN

%JEMPLO

3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNÈRBOLBALANCEADOQUESE ENCUENTRAVACÓO       

 Ç3#0-&4#"-"/$&"%04

221

,ASOPERACIONESNECESARIASSONLASSIGUIENTES

!L REGRESAR LUEGO DE INSERTAR UN NODO CON EL VALOR  SIGUIENDO EL CAMINO DE BÞSQUEDASEDETECTAQUEENLACLAVESEVIOLAELCRITERIODEEQUILIBRIODELÈRBOLYSE DEBEREESTRUCTURAR3EAPUNTACON./$/LACLAVEYCON./$/LARAMAIZQUIERDA DEDICHACLAVE,UEGOSEVERIlCAEL&%DE./$/COMOENESTECASOESIGUALAnSE PUEDEREALIZARLAROTACIØN))%LMOVIMIENTODEAPUNTADORESPARAREALIZARLAROTACIØN)) ESELSIGUIENTE ./$/>):1 ←./$/>$%2 ./$/>$%2 ←./$/ ./$/ ←./$/ 2ESPECTOAL&%DELOSNODOSAFECTADOS ÏSTESERÈSIEMPREENELCASODEROTACIONES SIMPLES ./$/>&% ./$/>&%

←

←

,UEGODEEFECTUARELREACOMODO ELÈRBOLQUEDAASÓ

!LREGRESARSIGUIENDOELCAMINODEBÞSQUEDASEMODIlCAEL&%DELOSNODOSY  PEROELEQUILIBRIODELÈRBOLSEMANTIENE

222 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

!LREGRESAR LUEGODEINSERTARELVALOR SIGUIENDOELCAMINODEBÞSQUEDASEOB SERVAUNAVIOLACIØNALCRITERIODEEQUILIBRIODELÈRBOLYSEDEBEREESTRUCTURAR3EAPUNTA CON./$/LACLAVEYCON./$/LARAMADERECHADEDICHACLAVE3EVERIlCAEL&% DE./$/YCOMOENESTECASOESIGUALASEPUEDEREALIZARLAROTACIØN$$%LMOVI MIENTODEAPUNTADORESPARAREALIZARLAROTACIØN$$ES ./$/>$%2 ←./$/>):1 ./$/>):1 ←./$/ ./$/ ←./$/ 2ESPECTOAL&%DELOSNODOSAFECTADOS LASASIGNACIONESSONLASSIGUIENTES ./$/>&% ./$/>&%

← ←

,UEGODEVOLVERAEQUILIBRARLO ELÈRBOLQUEDADEESTAFORMA

 Ç3#0-&4#"-"/$&"%04

223

,UEGODEINSERTARLACLAVEYALREGRESARSIGUIENDOELCAMINODEBÞSQUEDASEAD VIERTEQUEENLACLAVESEROMPEELEQUILIBRIODELÈRBOL3EAPUNTACON./$/LACLAVE YCON./$/SURAMADERECHA3ECALCULAEL&%DE./$/YCOMOENESTECASOES IGUALAn SEREALIZALAROTACIØN$)3EAPUNTAENTONCESCON./$/LARAMAIZQUIERDA DE./$/%LMOVIMIENTODEAPUNTADORESPARAREALIZARLAROTACIØN$)ES ./$/>):1 ←./$/>$%2 ./$/>$%2 ←./$/ ./$/>$%2 ←./$/>):1 ./$/>):1 ←./$/ ./$/ ←./$/ %L&%DELOSNODOSINVOLUCRADOSSEASIGNADEACUERDOCONLOSVALORESESTABLECIDOS ENLATABLA

4!",! &ACTORESDEEQUILIBRIO ENLAROTACIØN$)

./$/∧.&% ./$/∧.&%n

./$/∧.&% ./$/∧.&% ./$/∧.&%

./$/∧.&%

./$/∧.&% ./$/∧.&% ./$/∧.&%n

./$/∧.&%

./$/∧.&% ./$/∧.&%

#OMOENELEJEMPLOPRESENTADOEL&%DE./$/ESIGUALA SEREALIZANLASSI GUIENTESASIGNACIONES ./$/>&% ./$/>&% ./$/>&%

←n ← ←

,UEGODEREALIZARELREACOMODO ELÈRBOLQUEDADELASIGUIENTEMANERA

224 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

2EGRESANDOPORELCAMINODEBÞSQUEDALUEGODEINSERTARLACLAVE ESEVIDENTE QUEENLACLAVESEROMPEELEQUILIBRIODELÈRBOL3EAPUNTACON./$/LACLAVEY CON./$/SURAMAIZQUIERDA3EVERIlCAEL&%DE./$/YCOMOENESTECASOES IGUALA SEREALIZALAROTACIØN)$3EAPUNTACON./$/LARAMADERECHADE./$/ %LMOVIMIENTODEAPUNTADORESPARAREALIZARLAROTACIØN)$ES ./$/>$%2 ←./$/>):1 ./$/>):1 ←./$/ ./$/>):1 ←./$/>$%2 ./$/>$%2 ←./$/ ./$/ ←./$/ %L&%DELOSNODOSINVOLUCRADOSSEASIGNADEACUERDOCONLOSVALORESESTABLECIDOS ENLATABLA

4!",! &ACTORESDEEQUILIBRIO ENLAROTACIØN)$

./$/∧&% ./$/∧&%n

./$/∧&% ./$/∧&% ./$/∧&%

./$/∧&%

./$/∧&% ./$/∧&% ./$/∧&%

./$/∧&%

./$/∧&%n ./$/∧&%

 Ç3#0-&4#"-"/$&"%04

225

#OMOENELEJEMPLOPRESENTADOEL&%DE./$/ESIGUALA SEREALIZANLASSI GUIENTESASIGNACIONES ./$/>&% ./$/>&% ./$/>&%

← ← ←

,UEGODEVOLVERAEQUILIBRARLO ELÈRBOLQUEDADELASIGUIENTEFORMA

.OTA/BSERVEQUELUEGODEREALIZARLAINSERCIØNDEUNELEMENTOYCUANDOSERE GRESAPORELCAMINODEBÞSQUEDA EL&%DELNODOVISITADOSEINCREMENTAENSILAINSER CIØNSEHIZOPORSURAMADERECHAYDISMINUYEENSILAINSERCIØNSEHIZOPORSURAMA IZQUIERDA

%JEMPLO

$ADOCOMODATOELÈRBOLBALANCEADODELAlGURAA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURABLUEGODEINSERTARLASSIGUIENTESCLAVES   n          

&)'52! )NSERCIØNENÉRBOLESBALAN CEADOSA !NTESDEINSERTAR LASCLAVESB $ESPUÏSDE INSERTARLASCLAVES

226 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 !CONTINUACIØNSEPRESENTAELALGORITMODEINSERCIØNENÈRBOLESBALANCEADOS !LGORITMO )NSERTA?BALANCEADO )NSERTA?BALANCEADO./$/ "/ ).&/2 [%LALGORITMOINSERTAUNELEMENTOENUNÈRBOLBALANCEADO./$/ESUNPARÈMETRODETIPO PUNTERO PORREFERENCIA"/ESUNPARÈMETRODETIPOBOOLEANO PORREFERENCIA"/SEUTILIZAPARA INDICARQUELAALTURADELÈRBOLHACRECIDO SUVALORINICIALES&!,3/).&/2ESUNPARÈMETRO DETIPOENTEROQUECONTIENELAINFORMACIØNDELELEMENTOQUEQUEREMOSINSERTAR] [/42/ ./$/Y./$/SONVARIABLESAUXILIARESDETIPOPUNTERO]  3I./$/≠.), ENTONCES  3I).&/2./$/>).&/ ENTONCES 2EGRESARA)NSERTA?BALANCEADOCON./$/>):1 "/E).&/2 [,LAMADARECURSIVA]  3I"/6%2$!$%2/ ENTONCES  3I./$/>&% (ACER./$/>&%←Y"/←&!,3/ (ACER./$/>&%←n n(ACER./$/←./$/>):1 [2EESTRUCTURACIØNDELÈRBOL]  3I./$/>&%≤ ENTONCES[2OTACIØN))] (ACER./$/>):1←./$/>$%2 ./$/>$%2 ←./$/ ./$/>&%←Y./$/←./$/ [4ERMINALAROTACIØN))] SINO[2OTACIØN)$] (ACER./$/←./$/>$%2 ./$/>):1←./$/>$%2 ./$/>$%2←./$/ ./$/>$%2←./$/>):1Y ./$/>):1←./$/ ! 3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%← " [&INDELCONDICIONALDELPASO!] # 3I./$/>&% ENTONCES (ACER./$/>&%←n SINO (ACER./$/>&%← $ [&INDELCONDICIONALDELPASO#] (ACER./$/←./$/ [4ERMINALAROTACIØN)$]

 Ç3#0-&4#"-"/$&"%04

 [&INDELCONDICIONALDELPASO] (ACER./$/>&%←Y"/←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] SINO  3I).&/2./$/>).&/ ENTONCES 2EGRESARA)NSERTA?BALANCEADOCON./$/>$%2 "/E).&/2 [,LAMADARECURSIVA]  3I"/6%2$!$%2/ ENTONCES  3I./$/>&% n(ACER./$/>&%←Y"/←&!,3/ (ACER./$/>&%← (ACER./$/←./$/>$%2 [2EESTRUCTURACIØNDEÈRBOL] ! 3I./$/>&%≥ ENTONCES[2OTACIØN$$] (ACER./$/>$%2←./$/>):1 ./$/>):1←./$/ ./$/>&%←Y./$/←./$/ [4ERMINALAROTACIØN$$] SINO[2OTACIØN$)] (ACER./$/←./$/>):1 ./$/>$%2←./$/>):1 ./$/>):1←./$/ ./$/>):1←./$/>$%2Y ./$/>$%2←./$/ 3I./$/>&% ENTONCES (ACER./$/>&%←n SINO (ACER./$/>&%← [&INDELCONDICIONALINTERNO] 3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%← [&INDELCONDICIONALINTERNO] (ACER./$/←./$/ [4ERMINALAROTACIØN$)] " [&INDELCONDICIONALDELPASO!] (ACER./$/>&%←Y"/←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNYASEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]

227

228 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

 [&INDELCONDICIONALDELPASO] SINO #REAR./$/ (ACER./$/>).&/←).&/2 ./$/>):1←.), ./$/>$%2←.), ./$/>&%←Y"/←6%2$!$%2/  [&INDELCONDICIONALDELPASO]

%LIMINACIØNENÉRBOLESBALANCEADOS ,AOPERACIØNDEELIMINACIØNENÈRBOLESBALANCEADOSESMÈSCOMPLEJAQUELAOPERACIØN DEINSERCIØN COMONORMALMENTEOCURREENCASITODASLASESTRUCTURASDEDATOS#ONSISTE ENQUITARUNNODODELÈRBOLSINVIOLARLOSPRINCIPIOSQUEDElNENUNÈRBOLBALANCEADO 2ECUERDEQUESEDElNIØCOMOUNAESTRUCTURAENLACUAL PARATODONODODELÈRBOL SE DEBECUMPLIRQUELAALTURADELSUBÈRBOLIZQUIERDOYLAALTURADELSUBÈRBOLDERECHO NODEBENDIFERIRENMÈSDEUNAUNIDAD %LIMINARNODOSENUNÈRBOLBALANCEADORESULTADIFÓCILAPESARDEQUESEUTILIZAEL MISMOALGORITMODEELIMINACIØN IDÏNTICOENLØGICAPERODIFERENTEENIMPLEMENTACIØN QUEENLOSÈRBOLESBINARIOSDEBÞSQUEDAYLASMISMASOPERACIONESDEREACOMODOQUESE UTILIZANENELALGORITMODEINSERCIØNENÈRBOLESBALANCEADOS %NLAOPERACIØNDEELIMINACIØNENÈRBOLESBALANCEADOSSEDEBENDISTINGUIRLOSSI GUIENTESCASOS  3IELELEMENTOAELIMINARESTERMINALUHOJA SIMPLEMENTESESUPRIME  3IELELEMENTOAELIMINARTIENEUNSOLODESCENDIENTE ENTONCESSETIENEQUESUSTITUIR PORESEDESCENDIENTE  3IELELEMENTOAELIMINARTIENELOSDOSDESCENDIENTES ENTONCESSETIENEQUESUSTITUIR PORELNODOQUESEENCUENTRAMÈSALAIZQUIERDAENELSUBÈRBOLDERECHOOPORELNODO QUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOLIZQUIERDO 0ARA ELIMINAR UN NODO EN UN ÈRBOL BALANCEADO LO PRIMERO QUE SE DEBE HACER ES LOCALIZARSUPOSICIØNENELÈRBOL3EELIMINASIGUIENDOLOSCRITERIOSESTABLECIDOSANTERIOR MENTEYSEREGRESAPORELCAMINODEBÞSQUEDACALCULANDOEL&%DELOSNODOSVISITADOS 3IENALGUNODELOSNODOSSEVIOLAELCRITERIODEEQUILIBRIO ENTONCESSEDEBEREESTRUCTURAR ELÈRBOL%LPROCESOTERMINACUANDOSELLEGAALARAÓZDELÈRBOL#ABEACLARARQUEMIEN TRASQUEENELALGORITMODEINSERCIØNUNAVEZEFECTUADAUNAROTACIØNSEPODÓADETENEREL PROCESO ENESTEALGORITMOSEDEBECONTINUARPUESTOQUESEPUEDEPRODUCIRMÈSDEUNA ROTACIØNENELCAMINOHACIAATRÈS0ARACOMPRENDERMEJORLAOPERACIØNDEELIMINACIØN ENÈRBOLESBALANCEADOS OBSERVEELSIGUIENTEEJEMPLO

%JEMPLO

3UPONGAMOS QUE SE DESEA ELIMINAR LAS SIGUIENTES CLAVES DEL ÈRBOL BALANCEADO DE LA lGURA        

 Ç3#0-&4#"-"/$&"%04

229

#ABEDESTACARQUEELMOVIMIENTODEAPUNTADORESYLAREASIGNACIØNDELOS&%NOSE PRESENTARÈNENESTEEJEMPLO PORQUESONIDÏNTICOSALOSMOSTRADOSENELEJEMPLO &)'52! ­RBOLBALANCEADO

,ASOPERACIONESQUESEREALIZANSONLASSIGUIENTES     

230 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

,AELIMINACIØNDELACLAVEESUNPROCESOSENCILLO YAQUEDICHACLAVENOTIENE DESCENDIENTESDIAGRAMAA !LREGRESARSIGUIENDOELCAMINODEBÞSQUEDAESEVIDENTE QUE EN LA CLAVE  SE ROMPE EL CRITERIO DE EQUILIBRIO Y SE DEBE REESTRUCTURAR EL ÈRBOL DIAGRAMAA 3EAPUNTACON./$/LACLAVEYCON./$/LARAMAIZQUIERDADE ./$/3EVERIlCAEL&%DE./$/YCOMOÏSTEESIGUALAn ENTONCESSEREALIZALA ROTACIØN)),UEGODELAREESTRUCTURACIØN ELÈRBOLQUEDACOMOENELDIAGRAMAA

 Ç3#0-&4#"-"/$&"%04

231

,AELIMINACIØNDELACLAVEESUNPROCESOSENCILLODIAGRAMAB .OSEDEBE REESTRUCTURARELÈRBOLPORQUEMANTIENEELEQUILIBRIOYSØLOESNECESARIOCAMBIAREL&%DE LOSNODOSQUEALMACENANALYDIAGRAMAB 

232 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 !LELIMINARLACLAVESEORIGINAELCASOMÈSDIFÓCILDEELIMINACIØNENÈRBOLESLA ELIMINACIØN DE UNA CLAVE CON DOS DESCENDIENTES DIAGRAMA CL  %N ESTE CASO SE OPTA PORSUSTITUIRDICHACLAVEPORELNODOQUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOL IZQUIERDO ,UEGODELASUSTITUCIØN ELÈRBOLQUEDACOMOSEMUESTRAENELDIAGRAMA C!LREALIZARLASUSTITUCIØNSEOBSERVAQUEENDICHONODOSEVIOLAELCRITERIODEEQUI LIBRIOYSEDEBEREESTRUCTURARELÈRBOL3EAPUNTACON./$/LACLAVEYCON./$/ LARAMADERECHADE./$/3EVERIlCAEL&%DE./$/YCOMOÏSTEESIGUALA SE REALIZALAROTACIØN$$,UEGODELREACOMODO ELÈRBOLQUEDACOMOENELDIAGRAMAC

 Ç3#0-&4#"-"/$&"%04

233

!LELIMINARLACLAVESURGENUEVAMENTEELTERCERCASODEELIMINACIØN QUECORRES PONDEAUNACLAVECONDOSDESCENDIENTESDIAGRAMAD 3ESUSTITUYEDICHACLAVEPOREL NODOQUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOLIZQUIERDO ,UEGODELASUS TITUCIØN ELÈRBOLQUEDACOMOSEPRESENTAENELDIAGRAMAD%SEVIDENTEQUE DESPUÏS DELASUSTITUCIØN ENELNODOCONLACLAVESEVIOLAELCRITERIODEEQUILIBRIOYSEDEBE REESTRUCTURARELÈRBOL3EAPUNTACON./$/LACLAVEYCON./$/LARAMAIZQUIERDA DE./$/YSEVERIlCAEL&%#OMOENESTECASOESIGUALA SEAPUNTACON./$/ LARAMADERECHADE./$/YSEREALIZALAROTACIØN)$,UEGODELAREESTRUCTURACIØN EL ÈRBOLQUEDACOMOELPRESENTADOENELDIAGRAMAD 

,UEGODELAELIMINACIØNDELASCLAVES ELÈRBOLQUEDACOMOENELDIAGRAMAE

234 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ,AELIMINACIØNDELACLAVECORRESPONDEALPRIMERCASODEBORRADOENÈRBOLES ESEL CASOMÈSSIMPLEDIAGRAMAF 3INEMBARGO ALVERIlCAREL&%DELACLAVESEADVIERTEQUE SEROMPEELEQUILIBRIODELÈRBOLYSEDEBEREESTRUCTURARDIAGRAMAF 3EAPUNTACON./$/ LACLAVEYCON./$/LARAMADERECHADE./$/ YSEVERIlCAEL&%DE./$/#OMO ÏSTEESIGUALAn SEAPUNTACON./$/LARAMAIZQUIERDADE./$/YSEREALIZALAROTA CIØN$),UEGODELAREESTRUCTURACIØN ELÈRBOLQUEDACOMOENELDIAGRAMAF /BSERVE CUIDADOSAMENTE QUE LUEGO DE REALIZAR LA ELIMINACIØN DE UN ELEMENTO Y CUANDOSEREGRESAPORELCAMINODEBÞSQUEDA EL&%DELNODOVISITADODISMINUYEEN SILAELIMINACIØNSEHIZOPORSURAMADERECHAYSEINCREMENTAENSILAELIMINACIØNSE HIZOPORSURAMAIZQUIERDA

%JEMPLO

$ADOELÈRBOLBALANCEADODELAlGURAA VERIlQUESIELMISMOQUEDAIGUALALDELA lGURABLUEGODEELIMINARLASSIGUIENTESCLAVES        

&)'52! %LIMINACIØNENÉRBOLES BALANCEADOSA !NTES DEELIMINARLASCLAVESB $ESPUÏSDEELIMINARLAS CLAVES

 Ç3#0-&4#"-"/$&"%04

235

#ONELlNDEDARLEMAYORMODULARIDADALALGORITMODEELIMINACIØNENÈRBOLESBA LANCEADOS SEESTUDIARÈNDOSALGORITMOSAUXILIARES%LPRIMERO 2EESTRUCTURA?IZQ SE UTILIZACUANDOLAALTURADELARAMAIZQUIERDAHADISMINUIDO%LSEGUNDO 2EESTRUCTU RA?DER SEEMPLEACUANDOLAALTURADELARAMADERECHAHADISMINUIDO !LGORITMO 2EESTRUCTURA?IZQ

2EESTRUCTURA?IZQ./$/ "/ [%STEALGORITMOREESTRUCTURAELÈRBOLCUANDOLAALTURADELARAMAIZQUIERDAHADISMINUIDOYEL &%DE./$/ESIGUALA./$/ESUNPARÈMETROPORREFERENCIADETIPOPUNTERO"/ESUN PARÈMETRODETIPOBOOLEANO TAMBIÏNPORREFERENCIA"/SEUTILIZAPARAINDICARQUELAALTURADE LARAMAIZQUIERDAHADISMINUIDO] [./$/Y./$/SONVARIABLESAUXILIARESDETIPOPUNTERO]  3I"/6%2$!$%2/ ENTONCES  3I./$/>&% n(ACER./$/>&%← (ACER./$/>&%←Y"/←&!,3/ [2EESTRUCTURACIØNDELÈRBOL] (ACER./$/←./$/>$%2  3I./$/>&%≥ ENTONCES[2OTACIØN$$] (ACER./$/>$%2←./$/>):1Y./$/>):1←./$/  3I./$/>&% (ACER./$/>&%← ./$/>&%←nY "/←&!,3/ (ACER./$/>&%←Y./$/>&%←  [&INDELCONDICIONAL] (ACER./$/←./$/ [4ERMINALAROTACIØN$$] SINO[2OTACIØN$)] (ACER./$/←./$/>):1 ./$/>$%2←./$/>):1 ./$/>):1←./$/ ./$/>):1←./$/>$%2Y ./$/>$%2←./$/  3I./$/>&% ENTONCES (ACER./$/>&%←n SINO (ACER./$/>&%←  [&INDELCONDICIONAL]  3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%←

236 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

 [&INDELCONDICIONAL] (ACER./$/←./$/Y./$/>&%← [4ERMINALAROTACIØN$)]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!LGORITMO 2EESTRUCTURA?DER 2EESTRUCTURA?DER [%STEALGORITMOREESTRUCTURAELÈRBOLCUANDOLAALTURADELARAMADERECHAHADISMINUIDOYEL &%DE./$/ESIGUALAn./$/ESUNPARÈMETRO PORREFERENCIA DETIPOPUNTERO"/ESUN PARÈMETRODETIPOBOOLEANO TAMBIÏNPORREFERENCIA"/SEUTILIZAPARAINDICARQUELAALTURADE LARAMADERECHAHADISMINUIDO] [./$/Y./$/SONVARIABLESAUXILIARESDETIPOPUNTERO]  3I"/6%2$!$%2/ ENTONCES  3I./$/>&% (ACER./$/>&%← (ACER./$/>&%←nY"/←&!,3/ n[2EESTRUCTURACIØNDELÈRBOL] (ACER./$/←./$/>):1  3I./$/>&%≤ ENTONCES[2OTACIØN)) (ACER./$/>):1←./$/>$%2Y./$/>$%2←./$/  3I./$/>&% (ACER./$/>&%←n ./$/>&%←Y "/←&!,3/ n(ACER./$/>&%←Y./$/>&%←  [&INDELCONDICIONALDELPASO] (ACER./$/←./$/ [4ERMINALAROTACIØN))] SINO[2OTACIØN)$ (ACER./$/←./$/>$%2 ./$/>):1←./$/>$%2 ./$/>$%2←./$/ ./$/>$%2←./$/>):1Y ./$/>):1←./$/  3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%←  [&INDELCONDICIONALDELPASO]  3I./$/>&% ENTONCES (ACER./$/>&%←n

 Ç3#0-&4#"-"/$&"%04

237

SINO (ACER./$/>&%←  [&INDELCONDICIONALDELPASO] (ACER./$/←./$/Y./$/>&%← [4ERMINALAROTACIØN)$  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!CONTINUACIØNSEPRESENTAELALGORITMODEELIMINACIØNENÈRBOLESBALANCEADOS EL CUALHARÈUSODELOSPREVIAMENTEEXPLICADOS !LGORITMO %LIMINA?BALANCEADO

%LIMINA?BALANCEADO./$/ "/ ).&/2 [%LALGORITMOELIMINAUNELEMENTOENUNÈRBOLBALANCEADO5TILIZADOSALGORITMOSAUXILIARES 2EESTRUCTURA?IZQY2EESTRUCTURA?DER./$/ESUNPARÈMETROPORREFERENCIADETIPOPUNTERO "/ESUNPARÈMETRODETIPOBOOLEANO TAMBIÏNPORREFERENCIA YSEUTILIZAPARAINDICARQUELA ALTURADELÈRBOLHADISMINUIDO SUVALORINICIALES&!,3/).&/2ESUNPARÈMETRODETIPO ENTEROQUECONTIENELAINFORMACIØNDELELEMENTOQUESEQUIEREELIMINAR] [/42/ !58 !58SONVARIABLESAUXILIARESDETIPOPUNTERO"//,ESUNAVARIABLEDETIPO BOOLEANO]  3I./$/≠.), ENTONCES  3I).&/2./$/>).&/ ENTONCES 2EGRESARA%LIMINA?BALANCEADOCON./$/>):1 "/E).&/2 ,LAMARALALGORITMO2EESTRUCTURA?IZQCON./$/Y"/ SINO  3I).&/2./$/>).&/ ENTONCES 2EGRESARA%LIMINA?BALANCEADOCON./$/>$%2 "/E).&/2 ,LAMARALALGORITMO2EESTRUCTURA?DERCON./$/Y"/ SINO (ACER/42/←./$/Y"/←6%2$!$%2/  3I/42/>$%2.), ENTONCES (ACER./$/←/42/>):1 SINO  3I/42/>):1.), ENTONCES (ACER./$/←/42/>$%2 SINO

238 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

(ACER!58←./$/>):1Y"//,←&!,3/ ! -IENTRAS!58>$%2≠.), 2EPETIR (ACER!58←!58 !58←!58>$%2 Y"//,←6%2$!$%2/ " [&INDELCICLODELPASO!] (ACER./$/>).&/←!58>).&/Y /42/←!58 # 3I"//,6%2$!$%2/ ENTONCES (ACER!58>$%2←!58>):1 SINO (ACER./$/>):1←!58>):1 $ [&INDELCONDICIONALDELPASO#] ,LAMARALALGORITMO2EESTRUCTURA?DER CON./$/>):1Y"/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] 1UITAR/42/ [,IBERALAMEMORIADELNODO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv  [&INDELCONDICIONALDELPASO]

%L ANÈLISIS MATEMÈTICO DE LOS ALGORITMOS DE INSERCIØN ˆ)NSERTA?BALANCEADOˆ Y ELIMINACIØNˆ%LIMINA?BALANCEADOˆDEMUESTRAQUEESPOSIBLEBUSCAR INSERTARYELI MINARUNELEMENTOENUNÈRBOLBALANCEADODENNODOSEN/LOGN UNIDADESDETIEMPO 0OROTRAPARTE DIVERSOSANÈLISISDEMUESTRANQUESONMÈSFRECUENTESLASROTACIONESEN LAS OPERACIONES DE INSERCIØN QUE EN LAS DE ELIMINACIØN YA QUE MIENTRAS SE PRODUCE APROXIMADAMENTEUNAROTACIØNPORCADADOSINSERCIONES SEPRODUCEUNAROTACIØNPOR CADACINCOELIMINACIONES

%JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLACLAVE DELÈRBOLBALANCEADODELAlGURA &)'52! ­RBOLBALANCEADO

 Ç3#0-&4#"-"/$&"%04 ,ASOPERACIONESQUESEREALIZANSONLASSIGUIENTES

239

240 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

/BSERVEELLECTORQUEALELIMINARLACLAVESEDESBALANCEAELÈRBOLYDEBEMOS EFECTUARLAROTACIØN))3INEMBARGO LUEGODEBALANCEARYMODIlCARELFACTORDEEQUI LIBRIODELNODOQUEALMACENALACLAVENOSDAMOSCUENTAQUEDEBEMOSEFECTUARUN NUEVOBALANCEO AHORAUNAROTACIØN$$²STEESUNTÓPICOCASODONDEALELIMINARUNA CLAVESEPRODUCEUNACADENADEBALANCEOS

 ­2"/,%3-5,4)#!-)./3 ,OSDIFERENTESTIPOSDEÈRBOLESBINARIOSESTUDIADOSHASTAELMOMENTOFUERONDESARRO LLADOSPARAFUNCIONARENLAMEMORIAPRINCIPALDELACOMPUTADORA3INEMBARGO EXISTEN MUCHAS APLICACIONES EN LAS QUE EL VOLUMEN DE INFORMACIØN ES TAL QUE LOS DATOS NO CABENENLAMEMORIAPRINCIPALYESNECESARIOALMACENARLOS ORGANIZADOSENARCHIVOS ENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO%STAORGANIZACIØNDEARCHIVOSDEBESER SUlCIENTEMENTEADECUADACOMOPARARECUPERARLOSDATOSENFORMAElCIENTE

 Ç3#0-&4.6-5*$".*/04

241

%SIMPORTANTERECORDARQUEELTIEMPONECESARIOPARALOCALIZARUNREGISTROENLAME MORIAPRINCIPALDELACOMPUTADORASEMIDEENMICROSEGUNDOS MIENTRASQUEELTIEMPO NECESARIOPARALOCALIZARUNAPÈGINACONTIENEVARIOSREGISTROS ENMEMORIASECUNDARIA POREJEMPLODISCO SEMIDEENMILISEGUNDOS%LTIEMPODEACCESO CLAROESTÈ ESMILESDE VECESMÈSRÈPIDOENLAMEMORIAPRINCIPALQUEENLAMEMORIASECUNDARIA #ONSIDERE EL CASO DE ALMACENAR UN ÈRBOL BINARIO EN DISCO 3E NECESITARÈ EN PRO MEDIO PARALOCALIZARALGUNODELOSNODOS LOGDNACCESOSADISCO DONDENREPRESENTA ELNÞMERODENODOSDELÈRBOLYDELORDENDELMISMO QUEENESTECASOESIGUALA0OR EJEMPLOSIELÈRBOLCONTIENEDEELEMENTOS SENECESITARÓANAPROXIMADAMENTE ACCESOSADISCO!HORABIEN SIELÈRBOLESTÈORGANIZADOENPÈGINASˆNODOSˆ DETAL MANERAQUECADAPÈGINACONTENGACOMOMÓNIMOELEMENTOS ENTONCESSENECESITA RÓANCOMOMÈXIMOTRESACCESOSADISCOLOG .OTEELLECTORQUELOSACCESOS ADISCODISMINUYENDEMODOCONSIDERABLE %XISTENDIFERENTESTÏCNICASPARALAORGANIZACIØNDEARCHIVOSINDIZADOS SINEMBARGO LAORGANIZACIØNENÈRBOLES "YESPECÓlCAMENTESUVARIANTE LAORGANIZACIØNENÈRBOLES " ESLAMÈSUTILIZADA

 ­RBOLES " ,OS ÈRBOLES " SON UNA GENERALIZACIØN DE LOS ÈRBOLES BALANCEADOS ²STOS REPRESENTAN BÈSICAMENTEUNMÏTODOPARAALMACENARYRECUPERARINFORMACIØNENMEDIOSEXTERNOS &UERON PROPUESTOS POR "AYER Y -C#REIGHT EN  3U NOMBRE ÈRBOLES " NUNCA FUE EXPLICADOPORLOSAUTORES AUNQUEMUCHOSSOSTIENENQUE"PROVIENEDE"AYER UNODE SUSINVENTORES %NESTETIPODEÈRBOLES UNGRUPODENODOSRECIBEELNOMBREDEPÈGINA%NCADA PÈGINASEALMACENALAINFORMACIØNDEUNGRUPODENODOSYSEIDENTIlCAPORMEDIODE UNACLAVEOLLAVE %NGENERALCADAPÈGINADEUNÈRBOL"DEORDENDCONTIENEDCLAVESCOMOMÈXIMO YDCLAVESCOMOMÓNIMO#ONESTOSEGARANTIZAQUECADAPÈGINAESTÏLLENACOMOMÓNI MOHASTALAMITAD2ESPECTOALNÞMERODEDESCENDIENTES CADAPÈGINADEUNÈRBOL "DE ORDENDTIENED HIJOSCOMOMÈXIMOYD HIJOSCOMOMÓNIMO EXCEPTOLAPÈGINA RAÓZQUEPUEDECONTENERCOMOMÓNIMODATOYPORCONSIGUIENTESOLAMENTEHIJOS,AS PÈGINASENGENERALSONALMACENADASENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO A EXCEPCIØNDELAPÈGINARAÓZQUEESCONVENIENTEMANTENERLAENMEMORIAPRINCIPAL#ABE MENCIONAR QUEBÈSICAMENTEPORCUESTIONESDEESPACIO ENLOSEJEMPLOSYlGURAS EN CADANODOSEALMACENASOLAMENTEUNDATO LACLAVECONLACUALVAMOSATRABAJAR%NLA lGURASEPRESENTAUNDIAGRAMACORRESPONDIENTEAUNÈRBOL "DEORDEN

&)'52! ­RBOL "DEORDEN

242 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %NLAlGURASEOBSERVAUNAPÈGINADEUNÈRBOL "DEORDEND CONDCLAVESY D HIJOS

&)'52! 0ÉGINADEUNÉRBOL "DE ORDEND

&ORMALMENTEUNÈRBOL "SEDElNEDELASIGUIENTEMANERA  #ADAPÈGINA EXCEPTOLARAÓZ CONTIENEENTREDYDELEMENTOS SIENDODELGRADODEL ÈRBOL  ,ARAÓZPUEDEALMACENARENTREYDELEMENTOS  #ADAPÈGINA EXCEPTOLAPÈGINARAÓZYLASPÈGINASHOJA TIENEENTRED YD  DESCENDIENTES3EUTILIZARÈMPARAEXPRESARELNÞMERODEELEMENTOSPORPÈGINA  ,APÈGINARAÓZTIENEALMENOSDOSDESCENDIENTES  ,ASPÈGINASHOJAESTÈNTODASALMISMONIVEL

%JEMPLO

,UEGODEANALIZARELÈRBOL "DELAlGURASEPUEDEAlRMARLOSIGUIENTERESPECTOA ÏSTE

&)'52! ­RBOL "DEORDEN

◗ ◗ ◗ ◗ ◗ ◗

/RDENDELÈRBOL !LTURADELÈRBOL 4ODASLASPÈGINASCONTIENEN OELEMENTOS EXCEPTOLARAÓZQUECONTIENE ,OSELEMENTOSDENTRODELAPÈGINASEENCUENTRANORDENADOSENFORMACRECIENTE DE IZQUIERDAADERECHA 4ODASLASHOJASESTÈNALMISMONIVEL 4ODASLASPÈGINASTIENENODESCENDIENTES

"ÞSQUEDAENÉRBOLES " %LPROCESODEBÞSQUEDAENÈRBOLES "ESUNAGENERALIZACIØNDELPROCESODEBÞSQUEDA EN ÈRBOLES BINARIOS DE BÞSQUEDA ,OS PASOS NECESARIOS PARA LOCALIZAR UNA CLAVE 8 EN UNÈRBOL "SONLOSQUESEPRESENTANACONTINUACIØN3EUTILIZA.),PARAINDICARQUELA PÈGINAESTÈVACÓA

 Ç3#0-&4.6-5*$".*/04

243

 3EDEBETENERENMEMORIALAPÈGINASOBRELACUALSEQUIERETRABAJAR  3IPÈGINA≠.), ENTONCES 3EAVANZAHACIAELPASO SINO 3EAVANZAHACIAELPASO  [&INDELCONDICIONALDELPASO]  3EDEBEVERIlCARSILACLAVEBUSCADASEENCUENTRAENDICHAPÈGINA3IMESPEQUE×A SEUTILIZARÈBÞSQUEDASECUENCIAL DEOTRAMANERASEPODRÈUTILIZARBÞSQUEDABINARIA  3ILACLAVESEENCUENTRAENLAPÈGINA ENTONCES [,AOPERACIØNDEBÞSQUEDACONCLUYECUANDOSEENCUENTRA _²8)4/ELDATOENLAPÈGINAVISITADA] SINO 3EDEBENDISTINGUIRLOSSIGUIENTESCASOS 3I8#, ENTONCES 3EDEBELOCALIZAR0!' 3I#,I8#,M ENTONCES 3EDEBELOCALIZAR0!'I 3I8#,M ENTONCES 3EDEBELOCALIZAR0!'M  [&INDELCONDICIONALDELPASO]  2EGRESARALPASO .OTA3EUTILIZAELTÏRMINO#,PARAHACERREFERENCIAALASCLAVESDEUNADETER MINADAPÈGINA 8PARAINDICARLACLAVEQUESEBUSCAY0!'PARAEXPRESARLA PÈGINAQUEDEBELOCALIZARSEENMEMORIASECUNDARIA  _&2!#!3/,APÈGINAQUESEDESEALOCALIZARESTÈVACÓA PORLOTANTOELPROCESO DEBÞSQUEDASEINTERRUMPEYSEINFORMAQUELACLAVENOSEENCUENTRAALMACENADA ENELÈRBOL

)NSERCIØNENÉRBOLES " %LPROCESODEINSERCIØNENÈRBOLES "ESRELATIVAMENTESENCILLO AUNQUEREQUIERECIERTO TRATAMIENTOESPECIALDEBIDOALASCARACTERÓSTICASPROPIASDEESTOSÈRBOLES,OSÈRBOLES " TIENENUNCOMPORTAMIENTOTÓPICO DIFERENTEALRESTODELOSÈRBOLESESTUDIADOSANTERIORMEN TE4ODASLASHOJASESTÈNALMISMONIVELYPORLOTANTOCUALQUIERCAMINODESDELARAÓZHASTA ALGUNADELASHOJASTIENELAMISMALONGITUD0OROTRAPARTE LOSÈRBOLES "TIENENUNAFORMA EXTRA×ADECRECER LOHACENDEABAJOHACIAARRIBA ESDECIR DESDELASHOJASHACIALARAÓZ,OS PASOSPARALLEVARACABOLAINSERCIØNDEUNNODOENUNÈRBOL "SONLOSSIGUIENTES  ,OCALIZARLAPÈGINADONDECORRESPONDEˆPORELVALOR PARANOALTERARELORDENˆ INSERTARLACLAVE  3IMD [%LNÞMERODEELEMENTOSDELAPÈGINAESMENORAD]

244 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ENTONCES ,ACLAVESEINSERTAENELLUGARQUELECORRESPONDE [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO] SINO[%LNÞMERODEELEMENTOSDELAPÈGINAESIGUALAD] ,APÈGINAAFECTADASEDIVIDEENYSEDISTRIBUYENLASM  CLAVESEQUITATIVAMENTEENTRELASMISMAS,ACLAVEDELMEDIOSUBE ALAPÈGINAANTECESORA [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO]  [&INDELCONDICIONALDELPASO] ,OS PASOS ANTERIORES SE REPITEN MIENTRAS SEA NECESARIO 3I ALGUNA DE LAS PÈGINAS ANTECESORASSEDESBORDANUEVAMENTE ENTONCESHAYQUEORDENARLASCLAVESENLAPÈGINA APLICARPARTICIØNYLACLAVEDELMEDIOSUBEALAPÈGINAANTECESORA%LPROCESODEPROPA GACIØNPUEDELLEGARINCLUSOHASTALARAÓZ ENDICHOCASOLAALTURADELÈRBOLSEINCREMENTA ENUNAUNIDAD [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO]

&)'52! )NSERCIØNDELACLAVEEN UNÉRBOL "A !NTESDEIN SERTARLACLAVEB $ESPUÏS DEINSERTARLACLAVE

&)'52! )NSERCIØNDELACLAVEENUNÉRBOL "A !NTESDEINSERTARLACLAVEB $ESPUÏS DEINSERTARLA .OTA/BSERVEELLECTORQUELAINSERCIØNDELACLAVEPROVOCØLADIVISIØNDELAPÉGINA!ENDOS PÉGINAS"Y#,ASCLAVESSEDISTRIBUYERONEQUITATIVAMENTEENTRELASPÉGINASCITADASYLACLAVEDEL MEDIO SUBIØALAPÉGINAANTECESORA

 Ç3#0-&4.6-5*$".*/04

245

&)'52! )NSERCIØNDELACLAVEEN UNÉRBOL "A !NTESDEIN SERTARLACLAVEB $ESPUÏS DEINSERTARLA .OTA/BSERVEELLECTORQUELA INSERCIØNDELACLAVEPROVO CØLADIVISIØNDELAPÉGINA!EN DOSPÉGINAS"Y#3INEMBAR GO ALSUBIRLACLAVEDELMEDIO  SEPRODUJOUNNUEVO DESBORDAMIENTOQUEORIGINØ LAPARTICIØNDELAPÉGINA$ ENLASPÉGINAS%Y&,ACLAVE FORMAAHORAPARTEDEUNA NUEVAPÉGINA' YREPRESENTA LARAÓZDELÉRBOL

%JEMPLO

3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNÈRBOL "DEORDENQUESE ENCUENTRAVACÓO                  ,OSRESULTADOSPARCIALESQUEILUSTRANELCRECIMIENTODELÈRBOLSEPRESENTANENLOS DIAGRAMASDELAlGURA

&)'52! )NSERCIONESENUNÉRBOL " DEORDEN

246 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN

 Ç3#0-&4.6-5*$".*/04

247

&)'52! CONTINUACIØN

%JEMPLO

$ADOCOMODATOELÈRBOL "DEORDENDELAlGURAA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURABLUEGODEINSERTARLASSIGUIENTESCLAVES            

&)'52! )NSERCIØNENUNÉRBOL "DE ORDENA !NTESDEINSER TARLASCLAVESB $ESPUÏS DEINSERTARLASCLAVES

248 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

%LIMINACIØNENÉRBOLES " ,AOPERACIØNDEELIMINACIØNENÈRBOLES "ESUNAOPERACIØNMÈSCOMPLICADAQUELA INSERCIØN#ONSISTEENQUITARUNACLAVEDELÈRBOLSINVIOLARLACONDICIØNDEQUEENUNA PÈGINA EXCEPTOLARAÓZ NOPUEDEHABERMENOSDEDCLAVESNIMÈSDEDCLAVES SIENDOD ELORDENDELÈRBOL%NLAOPERACIØNDEBORRADOSEDEBENDISTINGUIRLOSSIGUIENTESCASOS  3ILACLAVEAELIMINARSEENCUENTRAENUNAPÈGINAHOJAENTONCESSIMPLEMENTESE SUPRIME  3IM≥D [3EVERIlCAQUEELNÞMERODEELEMENTOSENLAPÈGINASEAVÈLIDO] ENTONCES 4ERMINALAOPERACIØNDEBORRADO [3EPRESENTAUNEJEMPLODEESTECASOENLAlGURA] SINO 3EDEBEBAJARLACLAVELEXICOGRÈlCAMENTEADYACENTEDELA PÈGINAANTECESORAYSUSTITUIRESTACLAVEPORLAQUESE ENCUENTREMÈSALADERECHAENELSUBÈRBOLIZQUIERDOOPORLA QUESEENCUENTREMÈSALAIZQUIERDAENELSUBÈRBOLDERECHO #ONESTEPASOSELOGRAQUEM ENESTAPÈGINA SIGA SIENDO≥D [3EPRESENTAUNEJEMPLOENLASlGURASAYB] 3IESTONOESPOSIBLE PORLASMDELASPÈGINAS INVOLUCRADAS SEDEBENFUSIONARLASPÈGINASQUESON DESCENDIENTESDIRECTASDELACLAVEQUESEBAJA [3EPRESENTAUNEJEMPLODEESTECASOENLASlGURASCYD]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  3ILACLAVEAELIMINARNOSEENCUENTRAENUNAPÈGINAHOJAENTONCES 3EDEBESUSTITUIRPORLACLAVEQUESEENCUENTRAMÈSALAIZQUIERDA ENELSUBÈRBOLDERECHOOPORLACLAVEQUESEENCUENTRAMÈSALA DERECHAENELSUBÈRBOLIZQUIERDO  3IM≥D [3EVERIlCAQUEELNÞMERODEELEMENTOSENLAPÈGINASEAVÈLIDO]

&)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA

 Ç3#0-&4.6-5*$".*/04

249

ENTONCES 4ERMINALAOPERACIØNDEBORRADO [3EPRESENTAUNEJEMPLODEESTECASOENLAlGURA] SINO 3EDEBEBAJARLACLAVELEXICOGRÈlCAMENTEADYACENTEDELA PÈGINAANTECESORAYFUSIONARLASPÈGINASQUESON DESCENDIENTESDIRECTASDEDICHACLAVE [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO] #ABEACLARARQUEELPROCESODEFUSIØNDEPÈGINASSEPUEDEPROPAGARINCLUSOHASTA LARAÓZ ENCUYOCASOLAALTURADELÈRBOLDISMINUYEENUNAUNIDAD%NLAlGURASE PRESENTANDOSEJEMPLOSDEESTECASO &)'52! %LIMINACIØNDELASCLAVES YENUNÉRBOL "DE ORDENA !NTESDEELIMI NARLACLAVEB $ESPUÏS DEELIMINARLAC !NTESDE ELIMINARLACLAVE D $ESPUÏSDEELIMINARLA .OTAS!LELIMINARLACLAVE DELAPÉGINA! BAJALACLAVE DELAPÉGINAANTECESORAY ÏSTAESSUSTITUIDAPORLAQUESE ENCUENTRAMÉSALAIZQUIERDA ENLAPÉGINADERECHAESDECIR LACLAVEDELAPÉGINA" !LELIMINARLACLAVEDELA PÉGINA! BAJALACLAVEDELA PÉGINAANTECESORAYSEFUSIO NANLASPÉGINAS!Y"

&)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE SESUSTITUYEPORLACLAVEQUESE ENCUENTRAMÉSALAIZQUIERDA ENELSUBÉRBOLDERECHO 

250 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE SESUSTITUYEPORLACLAVEQUESE ENCUENTRAMÉSALADERECHAEN ELSUBÉRBOLIZQUIERDO 3IN EMBARGO ALSUBIRLACLAVE ENLAPÉGINA! MQUEDAMENOR QUED PORLOQUEESNECESARIO REALIZARUNAFUSIØN"AJALACLA VECORRESPONDIENTEALAPÉGINA ANTECESORANUEVAMENTE Y SEFUSIONANLASPÉGINAS!Y"

&)'52! %LIMINACIØNDELASCLAVES YENUNÉRBOL "DE ORDENA !NTESDEELIMI NARLACLAVEB $ESPUÏS DEELIMINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! MQUEDAMENOR AD PORLOQUEESNECESARIO BAJARLACLAVEDELAPÉGINA ANTECESORA PRODUCIÏNDOSELA FUSIØNDELASPÉGINAS!Y"3IN EMBARGO ENLAPÉGINA#NUE VAMENTEMQUEDAMENORAD PORLOQUEESNECESARIOBAJARLA CLAVEDELAPÉGINA%#OMO ESTAPÉGINAQUEDAVACÓA ES NECESARIAENTONCESUNANUEVA FUSIØN AHORADELASPÉGINAS# Y$,AALTURADELÉRBOLDISMI NUYEENUNAUNIDAD

 Ç3#0-&4.6-5*$".*/04

251

&)'52! CONTINUACIØN

C !NTESDEELIMINARLA CLAVED $ESPUÏSDE ELIMINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! SESUSTITUYEPOR LACLAVEQUESEENCUENTRAMÉS ALADERECHAENELSUBÉRBOL IZQUIERDODELAPÉGINA"  3INEMBARGO ENLAPÉGINA" M QUEDAMENORQUED PORLOQUE ESNECESARIOBAJARLACLAVE DELAPÉGINA$PRODUCIÏNDOSE LAFUSIØNDELASPÉGINAS"Y #.UEVAMENTEENLAPÉGINA $ MQUEDAMENORAD PORLO QUEAHORAESNECESARIOBAJAR LACLAVEDELAPÉGINA! #OMOESTAPÉGINAQUEDAVACÓA ENTONCESNECESITAREALIZARSE UNAFUSIØNDELASPÉGINAS$Y %,AALTURADELÉRBOLDISMINUYE ENUNAUNIDAD

%JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLASSIGUIENTESCLAVESDELÈRBOL "DEORDENDELA lGURA

&)'52! ­RBOL "DEORDEN

             ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLOSDIAGRAMASDELAlGURA

252 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! %LIMINACIONESENUN ÉRBOL "DEORDEN

 Ç3#0-&4.6-5*$".*/04

253

&)'52! CONTINUACIØN

%JEMPLO

$ADOCOMODATOELÈRBOL "DEORDENDELAlGURA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURA LUEGODEELIMINARLASSIGUIENTESCLAVES    

&)'52! ­RBOL "DEORDENLUEGO DEELIMINARLASCLAVES  Y

254 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLACLAVEDELÈRBOL "DEORDENDELAlGURA

&)'52! ­RBOL "DEORDEN

,ASOPERACIONESQUESEREALIZANSONLASSIGUIENTES

 Ç3#0-&4.6-5*$".*/04

255

.OTA!LELIMINARLACLAVEDELAPÈGINA! MQUEDAMENORAD PORLOQUEES NECESARIOBAJARLACLAVEDELAPÈGINA# PRODUCIÏNDOSELAFUSIØNDELASPÈGINAS!Y "3INEMBARGO ENLAPÈGINA#NUEVAMENTEMQUEDAMENORAD PORLOQUEESNECESARIO BAJARLACLAVEDELAPÈGINA&!QUÓESDONDESEPRODUCEUNODELOSCASOSMÈSDIFÓCILES DEBORRADOENÈRBOLES "%NLOSEJEMPLOSANTERIORESHACÓAMOSFUSIØNDELASPÈGINAS# Y$ DISMINUYENDOLAALTURADELÈRBOL3INEMBARGO SIHICIÏRAMOSESTOMSERÓAMAYORA D PORLOQUEVIOLARÓAMOSLOSPRINCIPIOSQUEDElNENUNÈRBOL "%SNECESARIOENTONCES SUBIRLACLAVEDELAPÈGINA$ALAPÈGINA& YLAPÈGINA%PASAASERELHIJODERECHODE LACLAVE AHORAENLAPÈGINA#

 ­RBOLES " ,OSÈRBOLES " SEHANCONVERTIDOENLATÏCNICAMÈSUTILIZADAPARALAORGANIZACIØNDEAR CHIVOSINDIZADOS,APRINCIPALCARACTERÓSTICADEESTOSÈRBOLESESQUETODALAINFORMACIØN SEENCUENTRAENLASHOJAS MIENTRASQUELOSNODOSRAÓZEINTERIORESALMACENANCLAVESQUE SEUTILIZANCOMOÓNDICES$EBIDOAESTACARACTERÓSTICADELOSÈRBOLES " TODOSLOSCAMI NOSDESDELARAÓZHASTACUALQUIERADELOSDATOSTIENENLAMISMALONGITUD%NLAlGURA PRESENTAMOSUNDIAGRAMADEUNÈRBOL " DEORDEN %SDENOTARQUELOSÈRBOLES " OCUPANUNPOCOMÈSDEESPACIOQUELOSÈRBOLES " Y ESTOOCURREALEXISTIRDUPLICIDADENALGUNASCLAVES3INEMBARGO ESTOESACEPTABLESIEL ARCHIVOSEMODIlCAFRECUENTEMENTE PUESTOQUESEEVITALAOPERACIØNDEREORGANIZACIØN DELÈRBOLQUEESTANCOSTOSAENLOSÈRBOLES " &ORMALMENTESEDElNEUNÈRBOL " DEORDENDDELASIGUIENTEMANERA  #ADAPÈGINA EXCEPTOLARAÓZ CONTIENEMELEMENTOS DONDEMESUNVALORENTREDY D  ,ARAÓZCONTIENEDEADELEMENTOS  #ADAPÈGINA EXCEPTOLARAÓZ TIENEENTRED YD DESCENDIENTES  ,APÈGINARAÓZTIENEALMENOSDOSDESCENDIENTES  ,ASPÈGINASHOJASESTÈNTODASALMISMONIVEL  4ODALAINFORMACIØN CONLASCLAVESQUELASIDENTIlCAN SEENCUENTRAENLASPÈGINAS HOJA  ,ASCLAVESALMACENADASENLASPÈGINASRAÓZEINTERIORESSEUTILIZANCOMOÓNDICES

&)'52! ­RBOL " DEORDEN

256 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

"ÞSQUEDAENÉRBOLES " ,A OPERACIØN DE BÞSQUEDA EN ÈRBOLES " ES SIMILAR A LA OPERACIØN DE BÞSQUEDA EN ÈRBOLES "%LPROCESOESSIMPLE SINEMBARGOPUEDESUCEDERQUEALBUSCARUNADETERMI NADACLAVELAMISMASEENCUENTREENUNAPÈGINARAÓZOINTERIOR%NDICHOCASONOSEDEBE DETENERELPROCESOPORQUEENLAPÈGINARAÓZOENLASINTERIORESSØLOSEALMACENANCLAVES QUEFUNCIONANCOMOÓNDICES,ABÞSQUEDADEBECONTINUARENLAPÈGINAAPUNTADAPORLA RAMADERECHADEDICHACLAVE 0OREJEMPLO ALBUSCARLACLAVEENELÈRBOL " DELAlGURASEADVIERTEQUE ÏSTASEENCUENTRAENLAPÈGINARAÓZ%NESTECASO SEDEBECONTINUARELPROCESODEBÞS QUEDAENLAPÈGINAAPUNTADAPORLARAMADERECHADEDICHACLAVE

)NSERCIØNENÉRBOLES " %LPROCESODEINSERCIØNENÈRBOLES " ESRELATIVAMENTESIMPLE SIMILARALPROCESODE INSERCIØNENÈRBOLES ",ADIlCULTADSEPRESENTACUANDOSEDESEAINSERTARUNACLAVEEN UNAPÈGINAQUESEENCUENTRALLENAMD %NESTECASO LAPÈGINAAFECTADASEDIVIDE EN DISTRIBUYÏNDOSELASM CLAVESDELASIGUIENTEFORMAhLASDPRIMERASCLAVESENLA PÈGINADELAIZQUIERDAYLASD RESTANTESCLAVESENLAPÈGINADELADERECHAv5NACOPIA DELACLAVEDELMEDIOSUBEALAPÈGINAANTECESORA %NLAlGURASEMUESTRANDOSDIAGRAMASQUEILUSTRANCØMOFUNCIONAESTECASO 0UEDESUCEDERQUELAPÈGINAANTECESORASEDESBORDENUEVAMENTE ENDICHOCASOSEDEBE REPETIRELPROCESOANTERIOR%SIMPORTANTENOTARQUEELDESBORDAMIENTOENUNAPÈGINA QUENOESHOJANOPRODUCEDUPLICIDADDECLAVES%LPROCESODEPROPAGACIØNPUEDELLEGAR HASTALARAÓZ ENCUYOCASOLAALTURADELÈRBOLSEPUEDEINCREMENTARENUNAUNIDAD

&)'52! )NSERCIØNDELACLAVEENUNÉRBOL " A !NTESDEINSERTARLACLAVEB $ESPUÏSDEINSERTARLA .OTA/BSERVEQUELAINSERCIØNDELACLAVEENLAPÉGINA!PRODUCESUDIVISIØNENDOSPÉGINAS"Y#,ASDPRIMERASCLAVESSEUBICANENLAPÉGINA"Y ,AS D CLAVESRESTANTESENLAPÉGINA# Y 5NACOPIADELACLAVEDELMEDIO SUBEALAPÉGINAANTECESORA

 Ç3#0-&4.6-5*$".*/04

257

%NLAlGURASEPRESENTANDOSDIAGRAMASQUECLARIlCANYRESUELVENESTECASO &)'52! )NSERCIØNDELACLAVEENUNÉRBOL " A !NTESDEINSERTARLACLAVEB $ESPUÏSDEINSERTARLA .OTA,AINSERCIØNDELACLAVEENLAPÉGINA!PROVOCØLADIVISIØNDEÏSTAENLASPÉGINAS"Y#3INEMBARGO ALSUBIRUNACOPIADELACLAVEDELMEDIO SEPRODUCE UNNUEVODESBORDAMIENTOENLAPÉGINA$QUEPROVOCASUPARTICIØNENLASPÉGINAS%Y&,ACLAVEFORMAAHORAPARTEDELAPÉGINA'YREPRESENTALARAÓZDELÉRBOL,A ALTURADELÉRBOLSEINCREMENTAENUNAUNIDAD

%JEMPLO

3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNÈRBOL " DEORDENQUE SEENCUENTRAVACÓO                  ,OSRESULTADOSPARCIALESQUEILUSTRANELCRECIMIENTODELÈRBOLSEPRESENTANENLOS DIAGRAMASCORRESPONDIENTESALAlGURA

258 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 &)'52! )NSERCIONESENUNÉRBOL " DEORDEN

 Ç3#0-&4.6-5*$".*/04

259

&)'52! CONTINUACIØN

%JEMPLO

$ADOCOMODATOELÈRBOL " DEORDENDELAlGURAA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURAB LUEGODEINSERTARLASSIGUIENTESCLAVES            

&)'52! )NSERCIONESENUNÉRBOL " DEORDENA !NTESDE INSERTARLASCLAVES B $ESPUÏSDEINSERTARLAS

260 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

%LIMINACIØNENÉRBOLES " ,AOPERACIØNDEELIMINACIØNENÈRBOLES " ESMÈSSIMPLEQUELAOPERACIØNDEBORRADO ENÈRBOLES "%STOOCURREPORQUELASCLAVESQUESEDEBENELIMINARSIEMPRESEENCUENTRAN ENLASPÈGINASHOJA%NGENERALSEDEBENDISTINGUIRLOSSIGUIENTESCASOS  3IALELIMINARUNACLAVEMQUEDAMAYOROIGUALAD ENTONCESTERMINALAOPERACIØN DEBORRADO,ASCLAVESDELASPÈGINASRAÓZOINTERNASNOSEMODIlCANPORMÈSQUE SEANUNACOPIADELACLAVEELIMINADAENLASHOJAS3EPRESENTAUNEJEMPLODEESTE CASOENLAlGURA  3IALELIMINARUNACLAVEMQUEDAMENORAD ENTONCESSEDEBEREALIZARUNAREDISTRI BUCIØNDECLAVES TANTOENELÓNDICECOMOENLASPÈGINASHOJAS#UANDOSECAMBIALA ESTRUCTURADELÈRBOL SEQUITANAQUELLASCLAVESQUEQUEDARONENLOSNODOSINTERIORES LUEGODEHABERELIMINADOSUCORRESPONDIENTEINFORMACIØNENLOSNODOSHOJA(AY DOSEJEMPLOSQUEILUSTRANCØMOFUNCIONAESTECASOENLAlGURA 0UEDESUCEDERQUEALELIMINARUNACLAVEYALREALIZARUNAREDISTRIBUCIØNDELASMIS MAS LAALTURADELÈRBOLDISMINUYAENUNAUNIDAD%NLAlGURASEPRESENTANDOS DIAGRAMASQUECORRESPONDENAESTECASO

&)'52! %LIMINACIØNDELACLAVE DEUNÉRBOL " DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! LAPÉGINARAÓZ" QUECONTIENECOMOÓNDICEALA CLAVEELIMINADANOSEMODIlCA

&)'52! %LIMINACIØNDELASCLAVES YDEUNÉRBOL " DE ORDENA !NTESDEELIMI NARLACLAVEB $ESPUÏS DEELIMINARLAC !NTESDE ELIMINARLACLAVED $ESPUÏSDEELIMINARLA

 Ç3#0-&4.6-5*$".*/04

261

&)'52! CONTINUACIØN .OTAS!LELIMINARLACLAVEDELAPÉGINA! MQUEDAMENORAD PORLOQUEDEBEREALIZARSEUNAREDISTRIBUCIØNDECLAVES3ETOMALACLAVEQUESEENCUENTRAMÉSALA DERECHAENLARAMAIZQUIERDADEDELAPÉGINA" 3ECOLOCADICHACLAVEENLAPÉGINA!YUNACOPIADELAMISMA COMOÓNDICE ENLAPÉGINA# !LELIMINARLACLAVEDELAPÉGINA! MQUEDAMENORAD PORLOQUEDEBEREALIZARSEUNAREDISTRIBUCIØNDECLAVES#OMONOSEPUEDETOMARUNACLAVEDELAPÉGINA" PUESTOQUEMQUEDARÓAMENORAD ENTONCESSEREALIZAUNAFUSIØNDELASPÉGINAS!Y"

&)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL " DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! MQUEDAMENOR AD PORLOQUEDEBEREALIZARSE UNAREDISTRIBUCIØNDECLAVES #OMONOPUEDETOMARSEUNA CLAVEDELAPÉGINA" PUESTO QUEMQUEDARÓAMENORAD EN TONCESSEREALIZAUNAFUSIØNDE LASPÉGINAS!Y"3INEMBARGO LUEGODEESTAFUSIØNMQUEDA MENORADENLAPÉGINA# POR LOQUEDEBEBAJARSELACLAVE DELAPÉGINA%YREALIZARSEUNA NUEVAFUSIØN AHORADELASPÉ GINAS#Y%,AALTURADELÉRBOL DISMINUYEENUNAUNIDAD

262 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLASSIGUIENTESCLAVESDELÈRBOL " DEORDENDELA lGURA            

&)'52! ­RBOL " DEORDEN

,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLOSDIAGRAMASDELAlGURA

&)'52! %LIMINACIONESENUN ÉRBOL " DEORDEN

 Ç3#0-&4.6-5*$".*/04

263

&)'52! CONTINUACIØN

%JEMPLO

6ERIlQUESIELÈRBOL " DEORDENDELAlGURAQUEDAIGUALALDELAlGURA LUEGO DEELIMINARLASSIGUIENTESCLAVES      

&)'52! ­RBOL " DEORDENLUEGO DEELIMINARLASCLAVES    Y

264 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

 ­RBOLES  ,OS ÈRBOLES   SON UNA VARIANTE DE LOS ÈRBOLES MULTICAMINOS ²STOS SE CARACTERIZAN PORQUECADAUNODESUSNODOSPUEDETENERMÈXIMOHIJOSYTODOSLOSNODOSEXTERNOS ˆHOJASˆESTÈNALMISMONIVEL%SDECIR ENESTOSÈRBOLESSEDEBEGARANTIZARELTAMA×O YLAALTURADELOSMISMOS #OMOENELCASODELOSÈRBOLESMULTICAMINOSANALIZADOSENLASSECCIONESPREVIAS LASOPERACIONESDEINSERCIØNYELIMINACIØNPUEDENOCASIONAR RESPECTIVAMENTE LAPARTI CIØNOFUSIØNDELOSNODOSCONELOBJETODEMANTENERLASPROPIEDADESENUNCIADAS$EBI DOAQUESELLEVANACABODEMANERASIMILARALOPRESENTADO SEDEJAALLECTORELDESARROLLO DELOSCORRESPONDIENTESALGORITMOS

 ,!#,!3%­2"/, ,ACLASE«RBOLTIENECOMOATRIBUTOALARAÓZDELAESTRUCTURAYCOMOMÏTODOSATODASLAS OPERACIONESANALIZADAS SEGÞNELTIPODEÈRBOLQUESEESTÏREPRESENTANDO'RÈlCAMENTE UNACLASE«RBOLˆPARAÈRBOLESBINARIOSˆSEPUEDEVERCOMOSEMUESTRAENLAlGURA %NESTECASO LOSMÏTODOSPERMITENLLEVARACABOTODASLASOPERACIONESPRESENTADAS PREVIAMENTELOSTRESTIPOSDERECORRIDOS BÞSQUEDA INSERCIØNYELIMINACIØN 3E TIENE ACCESO A LOS MIEMBROS DE UN OBJETO DE LA CLASE «RBOL POR MEDIO DE LA NOTACIØNDEPUNTOS!SUMIENDOQUELAVARIABLE!2/"*ESUNOBJETODELACLASE«RBOL PREVIAMENTECREADO SEPUEDEHACER !2/"*2ECORRE?0REORDENARGUMENTO PARAINVOCARELMÏTODOQUEVISITACADAUNO DE LOS NODOS DEL ÈRBOL SIGUIENDO EL RECORRIDO PREORDEN %N ESTE MÏTODO SE REQUIERE COMOARGUMENTOUNPUNTEROALNODOAVISITARˆLAPRIMERAVEZESLARAÓZˆ YAQUEES UNMÏTODORECURSIVO !2/"*)NSERTAARGUMENTOS PARAINSERTARUNNUEVOELEMENTOENELÈRBOLBINARIO %NESTEMÏTODOSEREQUIERENDOSARGUMENTOS UNOPARAELNODOAVISITARˆLAPRIMERAVEZ ESLARAÓZˆYOTROPARAELDATOAINSERTAR

&)'52! #LASE­RBOL

&+&3$*$*04

265

▼ %*%2#)#)/3 ­RBOLESENGENERAL Ê £° ,OSÈRBOLESSEPUEDENREPRESENTARDEDIFERENTESFORMAS$ADOELSIGUIENTEDIAGRAMA DE6ENNQUECORRESPONDEAUNAESTRUCTURAÈRBOL CONVIÏRTALOANOTACIØNDECIMALDE $EWEYYNOTACIØNINDENTADA

Ê Ó° $ADALASIGUIENTEESTRUCTURADELÈRBOLREPRESENTADACOMOANIDACIØNDEPARÏNTESIS !"%+ & #', -. $( ) / 0 1 2 *

#ALCULELOSIGUIENTE

A 'RADODELÈRBOL B 'RADODELNODO' C !LTURADELÈRBOL D .ODOSTERMINALESUHOJAS E .ODOSINTERIORES Ê Î° $ADA LA SIGUIENTE ESTRUCTURA DE ÈRBOL REPRESENTADA COMO NOTACIØN DECIMAL DE $EWEY



! " $ % ) * & ' + - . # ( , #ALCULELASLONGITUDESDECAMINOINTERNOYEXTERNODEDICHOÈRBOL

Ê {° #ALCULECUÈLESELGRADODELNODO4 SI4ESPADREDELNODO0YÏSTETIENEHERMA NOS

266 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

­RBOLESBINARIOS Ê x° 2EPRESENTELASSIGUIENTESEXPRESIONESALGEBRAICASUTILIZANDOÈRBOLESBINARIOS A # 9 > $2 + B !2n# ,$ + C 8"# $ > "+ 0 > > Ê È° $ADOSLOSSIGUIENTESÈRBOLESBINARIOSREPRESENTADOSCOMOANIDACIØNDEPARÏNTESIS A +"! &$ 7-, /0 : B    

%SCRIBALOSRECORRIDOSPREORDEN INORDENYPOSORDENDECADAUNODEELLOS

Ê Ç° z#UÈLESELMÈXIMONÞMERODENODOSDEUNÈRBOLBINARIODEALTURAH Ê n° z#UÈNTOSÈRBOLESBINARIOSDISTINTOSSEPUEDETENERCONNODOSz9CUÈNTOSCON  Ê ™° z#UÈNTOSÈRBOLESBINARIOSSIMILARESSEPUEDETENERCONNODOSz9CUÈNTOSCON  £ä°$ADAS LAS SIGUIENTES SECUENCIAS DE NODOS OBTENIDAS POR LOS RECORRIDOS PREORDEN INORDENYPOSORDEN DIBUJEELCORRESPONDIENTEÈRBOLBINARIO ◗ ◗ ◗

0REORDEN0 2 ! # ( 4 / )NORDEN! 2 ( # 0 / 4 0OSTORDEN! ( # 2 / - 4 0

2EPRESENTACIØNDEÉRBOLESGENERALES COMOÉRBOLESBINARIOS ££°$ADOSLOSSIGUIENTESÈRBOLESGENERALES UNOREPRESENTADOENFORMADEGRAFO INCISO A YOTROREPRESENTADOCOMOANIDACIØNDEPARÏNTESIS INCISOB CONVIÏRTALOSAÈRBO LESBINARIOS

&+&3$*$*04 A

B !"% &+ #', -1 2 . $( )/3 0 £Ó°$ADOELSIGUIENTEBOSQUE CONVIÏRTALOENÈRBOLBINARIO

267

268 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ­RBOLESBINARIOSDEBÞSQUEDA £Î°$ADASLASSIGUIENTESCLAVESQUEREPRESENTANLOSSIGNOSDELZODIACO CONSTRUYAUN ÈRBOLBINARIODEBÞSQUEDA

PISCIS ACUARIO CAPRICORNIO CÈNCER SAGITARIO VIRGO LEO ESCORPIØN LIBRA GÏMINIS ARIES TAURO

£{°$ADOELSIGUIENTEÈRBOLBINARIODEBÞSQUEDA COMPLETELOSNODOSENBLANCODETAL FORMAQUENOSEVIOLENLOSPRINCIPIOSQUEDElNENJUSTAMENTEUNÈRBOLBINARIODE BÞSQUEDA

£x°$ADOELSIGUIENTEÈRBOLBINARIODEBÞSQUEDA ELIMINELASCLAVES

    

£È°6ERIlQUESIELÈRBOLBINARIODEBÞSQUEDADELDIAGRAMADELINCISOA QUEDAIGUALAL DELDIAGRAMADELINCISOB LUEGODEELIMINARLASCLAVES     

&+&3$*$*04

269

%JERCICIOSDEPROGRAMACIØNENÉRBOLESBINARIOS £Ç°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMACUÈNTOSNODOSTIENEUNÈRBOLBINARIO £n°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMAELTOTALDENODOSINTERNOSQUETIENEUN ÈRBOLBINARIO £™°#ONSIDERANDOQUEUNÈRBOLBINARIOALMACENANÞMEROSENTEROS ENCUENTREEIMPRIMA ELMÈXIMOVALORGUARDADOENELÈRBOLYELPROMEDIODELOSMISMOS Óä°%SCRIBAUNPROCEDIMIENTOQUEREALICELOSIGUIENTE A )MPRIMALAINFORMACIØNALMACENADAENLASHOJASDEUNÈRBOLBINARIO B )MPRIMALAINFORMACIØNALMACENADAENLOSNODOSINTERNOSDEUNÈRBOLBINARIO Ó£°$ADOELSIGUIENTEÈRBOLBINARIO

270 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 %SCRIBAUNPROGRAMAQUEIMPRIMALOSNODOSDELMISMODELASIGUIENTEFORMA

!

"

$

%

&

'



(

#

) ÓÓ°$ADOELÈRBOLBINARLODELEJERCICIO ESCRIBAUNPROGRAMAQUEIMPRIMALOSNODOS DELMISMODELASIGUIENTEFORMA

!

"

#

$

%

)

&

'



( Óΰ%SCRIBAUNPROCEDIMIENTOQUEVISITELOSNODOSDEUNÈRBOLBINARIODELASIGUIENTE FORMA ◗ ◗ ◗

2AÓZ 2AMADERECHA 2AMAIZQUIERDA

Ó{°%SCRIBATRESPROCEDIMIENTOSQUEEFECTÞENLOSRECORRIDOSENPREORDEN INORDENYPOS ORDENENFORMAITERATIVAENLUGARDERECURSIVA PARALOCUALSEPUEDEAPOYARENUNA PILA Óx°%SCRIBAUNPROCEDIMIENTOQUEELIMINETODASLASHOJASDEUNÈRBOLBINARIO ÓÈ°%SCRIBAUNPROGRAMAQUECARGUELOSNODOSDEUNÈRBOLBINARIOENUNARREGLOUNIDI MENSIONAL#UIDEQUESEMANTENGALARELACIØNPADRE HIJOENTRELOSNODOS ÓÇ°%SCRIBAUNAFUNCIØNQUEDETERMINESIDOSÈRBOLESBINARIOSSONSIMILARES Ón°%SCRIBAUNAFUNCIØNQUEDETERMINESIDOSÈRBOLESBINARIOSSONEQUIVALENTES ә°%SCRIBAUNPROCEDIMIENTOQUEINTERCAMBIELOSSUBÈRBOLESIZQUIERDOYDERECHODEUN ÈRBOLBINARIO%SDEOBSERVARQUEESTEINTERCAMBIOSEDEBEREALIZARPARATODONODO DELÈRBOL %JEMPLO$ADOELÈRBOLBINARIODELDIAGRAMADELINCISOA ELINTERCAMBIODE RAMASPRODUCEELÈRBOLDELDIAGRAMADELINCISOB 

&+&3$*$*04

271

Îä°3ETIENEALMACENADATODALAASCENDENCIADE#ARLOSENUNÈRBOLBINARIO3EHASEGUI DOELSIGUIENTECRITERIOPARA#ARLOSYTODOSSUSPROGENITORESENLARAMAIZQUIERDA SEHAGUARDADOELNOMBREDELAMADREYENLARAMADERECHAELNOMBREDELPADRE /BSERVELAlGURAQUESEMUESTRAACONTINUACIØN

%SCRIBA UN SUBPROGRAMA QUE IMPRIMA EL NOMBRE DE TODOS LOS PROGENITORES FEMENINOSDE#ARLOS Σ°2ETOMEELPROBLEMAANTERIOR!GREGUEUNAFUNCIØNQUEPUEDAINSERTARALÈRBOLGE NEALØGICODE#ARLOSTANTOASCENDIENTESFEMENINOSCOMOMASCULINOS ÎÓ°$ElNALACLASE«RBOLBINARIOUTILIZANDOALGÞNLENGUAJEDEPROGRAMACIØNORIENTADO AOBJETOS TOMANDOCOMOBASEPARAPROGRAMARLOSMÏTODOSLOSALGORITMOSESTUDIA DOSENESTECAPÓTULO Îΰ2ETOMEELPROBLEMAANTERIOR!GREGUEALACLASEUNMÏTODOQUEMUESTREELCONTENI DODEUNNODO Î{°%SCRIBAUNPROGRAMADEAPLICACIØNQUEDADOSDOSOBJETOSDELACLASE«RBOLBINARIO PREVIAMENTEDElNIDA IMPRIMAUNMENSAJEADECUADOSEGÞNLOSMISMOSSEANEQUI VALENTESONO$ETERMINESIREQUIEREDElNIRNUEVOSMÏTODOSALACLASE

­RBOLESBALANCEADOS Îx°$ETERMINESILOSSIGUIENTESÈRBOLESBINARIOSSONÈRBOLESBALANCEADOS

272 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

ÎÈ°#ALCULECUÈLESELMÈXIMONÞMERODENODOSDEUNÈRBOLBALANCEADODEALTURA z#UÈLESELMÓNIMO

&+&3$*$*04

273

ÎÇ°)NSERTELASCLAVES      ENELÈRBOLBALANCEADOQUESEDAA CONTINUACIØN

În°%LIMINELASSIGUIENTESCLAVESDELÈRBOLBALANCEADODELSIGUIENTEDIAGRAMA      

Ι°%SCRIBALASINSTRUCCIONESNECESARIASPARAEQUILIBRARELÈRBOLBALANCEADODELSIGUIEN TEDIAGRAMA LUEGODEELIMINARLACLAVE

274 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4 ­RBOLES "YÉRBOLES " {ä°z#UÈL ES EL NÞMERO DE CLAVES M QUE PUEDE TENER COMO MÈXIMO UN ÈRBOL " DE ORDENYTRESNIVELESz#UÈLELDEUNÈRBOL "  {£°z#UÈLESELNÞMEROMÈSPEQUE×ODECLAVESQUE ALSERINSERTADAS PROVOCARÓAQUEUN ÈRBOL "DEORDENTUVIERATRESNIVELES {Ó°z#UÈLESELNÞMEROMÈSPEQUE×ODECLAVESQUE ALSERINSERTADAS PROVOCARÓAQUEUN ÈRBOL "DEORDENTUVIERACUATRONIVELES {ΰ5NÈRBOL "DEORDENYTRESNIVELESTIENECLAVESz#UÈNTASCLAVESSE PODRÓANELIMINARDELÈRBOLSINQUEÏSTETENGAQUEDISMINUIRSUALTURA {{°2EALICELOSTRESEJERCICIOSANTERIORES PEROAHORAAPLICADOSAÈRBOLES "  {x°)NSERTELASSIGUIENTESCLAVES               A %NUNÈRBOL "DEORDENQUESEENCUENTRAVACÓO B %NUNÈRBOL " DEORDENQUESEENCUENTRAVACÓO {È°6ERIlQUE SI EL ÈRBOL " DE ORDEN  DEL DIAGRAMA DEL INCISO A QUEDA IGUAL AL DEL DIAGRAMADELINCISOB LUEGODEINSERTARLASSIGUIENTESCLAVES           

&+&3$*$*04

275

{Ç°6ERIlQUESIELÈRBOL " DEORDENDELDIAGRAMADELINCISOA QUEDAIGUALALDEL DIAGRAMADELINCISOB LUEGODEINSERTARLASSIGUIENTESCLAVES           

{n°6ERIlQUESIELÈRBOL "DEORDENDELDIAGRAMADELINCISOB DELEJERCICIOQUEDA IGUALALÈRBOLDELSIGUIENTEDIAGRAMA LUEGODEELIMINARLASCLAVES         

{™°6ERIlQUESIELÈRBOL"QUESEPRESENTAENELINCISOA QUEDAIGUALALÈRBOLDELDIAGRA MADELINCISOB LUEGODEELIMINARLASSIGUIENTESCLAVES     

276 >«‰ÌՏœÊÈÊ Ê Ê Ç3#0-&4

%JERCICIOSDEPROGRAMACIØNDEÉRBOLES "YÉRBOLES " xä°%SCRIBALOSSUBPROGRAMASDEINSERCIØNYELIMINACIØNENÈRBOLES " x£°%SCRIBALOSSUBPROGRAMASDEINSERCIØNYELIMINACIØNENÈRBOLES " 

#APÓTULO

Ç

'2­&)#!3  ).42/$5##)¼. %NELCAPÓTULOANTERIORSEESTUDIARONLASESTRUCTURASDEDATOSTIPOÈRBOLES ENDONDECADA NODOOELEMENTOPUEDETENERCOMOMÈXIMOUNNODOQUELEPRECEDEORAÓZ3INEMBARGO ENLAPRÈCTICAEXISTENPROBLEMASOSITUACIONESENQUELAINFORMACIØNQUESEDEBEALMA CENARNOCORRESPONDECONUNAESTRUCTURADEESTETIPO0ARAESTOSPROBLEMASSENECESITA DE UNA ESTRUCTURA EN LA CUAL SE PUEDAN REPRESENTAR OTRAS RELACIONES ENTRE LOS DATOS O COMPONENTESDELAMISMA$EDICAREMOSESTECAPÓTULOALESTUDIODELASGRÈlCAS ,ASGRÈlCASSONESTRUCTURASDEDATOSNOLINEALESDONDECADACOMPONENTEPUEDE TENERUNOOMÈSPREDECESORESYSUCESORES%NUNAGRÈlCASEDISTINGUENDOSELEMENTOS LOSNODOS MEJORCONOCIDOSCOMOVÏRTICES YLOSARCOS LLAMADOSARISTAS QUECONECTAN UNVÏRTICECONOTRO,OSVÏRTICESALMACENANINFORMACIØNYLASARISTASREPRESENTANRELA CIONESENTREDICHAINFORMACIØN %STASESTRUCTURASTIENENAPLICACIONESENDIFERENTESDOMINIOS ENTREELLOSTRANSPORTE ˆTERRESTRE AÏREOYMARÓTIMOˆ REDESDECOMPUTADORAS MAPASˆUBICACIØNGEOGRÈlCADE VARIASCIUDADESˆ ASIGNACIØNDETAREAS ETC#ONSIDERE POREJEMPLO LAGRÈlCADELAlGURA  DONDESEOBSERVANALGUNASDELASPRINCIPALESCAPITALESSUDAMERICANASYLACONEXIØN ENTREELLAS%NESTECASOLOSVÏRTICESREPRESENTANALASCIUDADES MIENTRASQUELASARISTAS ALASCARRETERASOALGÞNOTROMEDIODECONEXIØNENTREELLAS!LGUNASARISTASESTÈNETIQUE TADAS ELVALORQUEAPARECEENELLASCONSTITUYELADISTANCIAQUEEXISTEENTRELASCIUDADES %NGENERAL UNAETIQUETAENLAARISTAQUEUNE POREJEMPLO LOSVÏRTICESIYJSEUSAPARA REPRESENTARELCOSTODEIRDELVÏRTICEIALVÏRTICEJ %NLAlGURASEPRESENTANDOSEJEMPLOSDEGRÈlCAS,APRIMERAA TIENECUATRO VÏRTICESA B C D YCINCOARISTASA B B C C D D A B D MIENTRASQUELA SEGUNDAB TIENESEISVÏRTICESA B C D E F YSEISARISTASA B B C C D D A D E E F 

 $%&).)#)¼.$%'2­&)#!3 5NAGRÈlCA'CONSTADEDOSCONJUNTOS6' Y!' %LPRIMEROLOINTEGRANELEMENTOS LLAMADOSNODOSOVÏRTICESELSEGUNDO ARCOSOARISTAS0ORLOTANTO PODEMOSDENOTAR UNAGRÈlCA'COMO

278 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! %JEMPLODEGRÉlCA

'6 ! $ONDE6REPRESENTAELCONJUNTODEVÏRTICESDE'Y!ELCONJUNTODEARISTASDE'3I NOSEHACENINGUNAESPECIlCACIØN LOSCONJUNTOS6Y!SONlNITOS #ADAARISTAESTÈIDENTIlCADAPORUNÞNICOPARDENODOSDELCONJUNTODEVÏRTICES QUEPUEDEONOESTARORDENADO5NAARISTAQUEVADELVÏRTICEUALVSEDENOTAMEDIANTE

&)'52! %LEMENTOSDEUNAGRÉlCA

 $0/$&1504#Ç4*$04%&(3Ç'*$"4

279

LAEXPRESIØNAU V DONDEUYVSONVÏRTICESADYACENTESYLOSEXTREMOSDEA%NESTE CASO UYVESTÈNCONECTADOSPORAYSEDICEQUEAESINCIDENTEENUYV

 #/.#%04/3"­3)#/3$%'2­&)#!3 ! CONTINUACIØN SE PRESENTAN ALGUNOS DE LOS CONCEPTOS MÈS IMPORTANTES RELACIONADOS CONLATEORÓADEGRÈlCAS ◗ ◗ ◗

'RADODEUNVÏRTICE%LGRADODEUNVÏRTICEV ESCRITOCOMOGRADOV ESELNÞMERO DEARISTASQUECONTIENENAVESDECIR QUETIENENAVCOMOEXTREMO3IELGRADOV  VNOTIENEARISTAS SEDICEQUEVESUNNODOAISLADO ,AZOOBUCLE5NLAZOOBUCLEESUNAARISTAQUECONECTAAUNVÏRTICECONSIGOMIS MOESDECIR AU U  #AMINO5NCAMINO0DELONGITUDNSEDElNECOMOLASECUENCIADENVÏRTICESQUE SEDEBESEGUIRPARALLEGARDELVÏRTICEVˆORIGENˆALVÏRTICEVNˆDESTINOˆ 0V  VN $ETALMODOQUEVIESADYACENTEAVI PARAI   Nn

◗ ◗ ◗ ◗ ◗ ◗ ◗

◗ ◗

#AMINOCERRADO%LCAMINO0ESCERRADOSIELPRIMEROYÞLTIMOVÏRTICESSONIGUA LESESDECIR SIVVN #AMINOSIMPLE%LCAMINOESSIMPLESITODOSSUSNODOSSONDISTINTOS CONEXCEP CIØNDELPRIMEROYDELÞLTIMO QUEPUEDENSERIGUALESESDECIR 0ESSIMPLESIV V  SONDISTINTOS #ICLO5NCICLOESUNCAMINOSIMPLECERRADODELONGITUDOMAYOR5NCICLODE LONGITUDKSELLAMAK CICLO 'RÈlCACONEXA3EDICEQUEUNAGRÈlCAESCONEXASIEXISTEUNCAMINOSIMPLEENTRE CUALESQUIERADOSDESUSNODOS 'RÈlCAÈRBOL3EDICEQUEUNAGRÈlCA'ESDELTIPOÈRBOLOÈRBOLLIBRESI'ESUNA GRÈlCACONEXASINCICLOS 'RÈlCACOMPLETA3EDICEQUEUNAGRÈlCAESCOMPLETASICADAVÏRTICEVDE'ESAD YACENTEATODOSLOSDEMÈSVÏRTICESDE'5NAGRÈlCACOMPLETADENVÏRTICESTENDRÈ NNn ARISTAS 'RÈlCAETIQUETADA3EDICEQUEUNAGRÈlCA'ESTÈETIQUETADASISUSARISTASTIENEN ASIGNADOUNVALOR%SDECIR SICADAARISTAATIENEUNVALORNUMÏRICONONEGATIVO CA LLAMADOCOSTO PESOOLONGITUDDEA ENTONCES'TIENEPESOOESTÈETIQUETADA %NESTECASO CADACAMINO0DE'TENDRÈASOCIADOUNPESOOLONGITUDQUESERÈLA SUMADELOSPESOSDELASARISTASQUEFORMANELCAMINO0 -ULTIGRÈlCA5NAGRÈlCASEDENOMINAMULTIGRÈlCASIALMENOSDOSDESUSVÏRTICES ESTÈNCONECTADOSENTRESÓPORMEDIODEDOSARISTAS%NESTECASO LASARISTASRECIBEN ELNOMBREDEARISTASMÞLTIPLESOPARALELAS 3UBGRÈlCA$ADALAGRÈlCA'6 ! 'ʹ6ʹ !ʹ SEDENOMINASUBGRÈlCADE' SI6ʹ≠φ 6ʹ⊆6Y!ʹ⊆! DONDECADAARISTADE!ʹESINCIDENTECONVÏRTICESDE6ʹ

280 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! #ONCEPTOSDEGRÉlCAS

,UEGODEOBSERVARLAlGURASEPUEDENREALIZARLASSIGUIENTESAlRMACIONES A 4ODOSLOSVÏRTICESTIENENGRADO B 5NCAMINO0PARALLEGARDELNODO!AL$PUEDESER! " # $/TROSPUEDENSER! % $O! $ C %LCAMINO! # $ !ESUNCAMINOCERRADO EL! # $NOLOES D %LCAMINO! # $ !ESUNCAMINOSIMPLE EL! # " $ #NOLOES E %LCAMINO! # $ !ESUNCICLO F %S UNA GRÈlCA CONEXA PUES TODOS LOS NODOS TIENEN AL MENOS UN CAMINO A OTRO NODO G %SUNAGRÈlCACOMPLETA PUESTODOSLOSNODOSSECONECTANCONLOSDEMÈS ,UEGODEOBSERVARLAlGURASEPUEDENREALIZARLASSIGUIENTESAlRMACIONES A %NLAGRÈlCADELAlGURAA EXISTEUNLAZOOBUCLEENELVÏRTICED%SDECIR A D D  B ,AGRÈlCADELAlGURAB ESUNAMULTIGRÈlCA YAQUEHAYDOSARISTASQUEUNEN LOSVÏRTICESCYD%SDECIR LASARISTASAC D YAC D SONARISTASMÞLTIPLESO ARISTASPARALELAS %NLASSIGUIENTESSECCIONESSEDESCRIBENDOSTIPOSDEGRÈlCASDIRIGIDASYNODIRI GIDAS

 '2­&)#!3$)2)')$!3 %N ESTA SECCIØN SE TRATARÈ UN TIPO ESPECIAL DE GRÈlCAS LLAMADAS GRÈlCAS DIRIGIDAS !DEMÈSDESUDElNICIØNYSUREPRESENTACIØN SEPRESENTARÈNLOSPRINCIPALESALGORITMOS USADOSPARAELCÈLCULODECAMINOS%SIMPORTANTEMENCIONARQUEEXISTEGRANCANTIDAD DEPROBLEMASDELAVIDAREALQUESONMUYDIFÓCILESDERESOLVER YQUE SINEMBARGO SE PODRÓANRESOLVERFÈCILMENTESISEMODELARANCONGRÈlCASYLUEGOSEAPLICARANALGUNOS MÏTODOSQUEFUNCIONANSOBREELLAS

 (3Ç'*$"4%*3*(*%"4

281

&)'52! /TROSCONCEPTOSDEGRÉlCAS

#ADAVEZQUESOLUCIONAMOSUNPROBLEMA ENREALIDADESTAMOSENCONTRANDOLASO LUCIØNAUNMODELODELPROBLEMA4ODOSLOSMODELOSSONSIMPLIlCACIONES DEALGUNA FORMA DELMUNDOREAL DEOTRAMANERASERÓANEXTREMADAMENTECOMPLEJOSYDIFÓCILESDE MANEJAR %LPROCESODESOLUCIØNDEUNPROBLEMACONSTADEDOSETAPASIMPORTANTESELDESA RROLLODEUNMODELODEUNPROBLEMAYELUSODELMODELOPARAGENERARLASOLUCIØN,A SOLUCIØN lNALMENTE ESENTÏRMINOSDELMODELO3IELNUESTROTIENEUNALTOGRADODEl DELIDADYELMÏTODOQUEEMPLEAMOSESADECUADO ENTONCESNUESTRASOLUCIØNSERÈBUENA 0ORELCONTRARIO SINUESTROMODELONOREPRESENTAlDEDIGNAMENTEALPROBLEMA ENTONCES LOSRESULTADOSNOSERÈNSATISFACTORIOS,ATEORÓADEGRÈlCASPROPORCIONALOSCONCEPTOS PARAMODELARMUCHOSPROBLEMASDELAVIDAREAL UTILIZANDOJUSTAMENTEGRÈlCAS,UEGO EXISTENMUYBUENOSMÏTODOSQUESEPUEDENAPLICARAESTASGRÈlCAS QUEPROPORCIONARÈN COMORESULTADOlNALLASOLUCIØNDELPROBLEMAINICIAL ,ASGRÈlCASDIRIGIDASSECARACTERIZANPORQUESUSARISTASTIENENASOCIADAUNADIREC CIØNESDECIR SONPARESORDENADOS,OSVÏRTICESSEUTILIZANPARAREPRESENTARINFORMA CIØN MIENTRASQUELASARISTASREPRESENTANUNARELACIØNCONDIRECCIØNOJERARQUÓAENTRE AQUÏLLOS5NAPOSIBLEAPLICACIØNDEESTETIPODEGRÈlCASPUEDESERLAREPRESENTACIØNDE CIUDADESENLOSVÏRTICES YLADURACIØNDELOSVUELOSENLASARISTAS ASUMIENDOQUEEL TIEMPONECESARIOPARAIRDELACIUDAD#ALACIUDAD#NOESELMISMOˆTENIENDOEN CUENTARAZONESCOMOLOSVIENTOSˆQUEELREQUERIDOPARAIRDELACIUDAD#ALACIUDAD #!CONTINUACIØNSEDElNEFORMALMENTEELCONCEPTODEGRÈlCADIRIGIDA 5NA GRÈlCA DIRIGIDA ' TAMBIÏN LLAMADA DIGRÈlCA SE CARACTERIZA PORQUE CADA ARISTAATIENEUNADIRECCIØNASIGNADAESDECIR CADAARISTAESTÈASOCIADAAUNPARORDE NADOU V DEVÏRTICESDE'5NAARISTADIRIGIDAAU V SELLAMAARCO YGENERALMENTE SEEXPRESACOMOU→V0ARALASARISTASDELASDIGRÈlCASSEAPLICALASIGUIENTETERMINO LOGÓA

282 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! 2EPRESENTACIØNDEUNA ARISTADIRIGIDA

A B C D

AEMPIEZAENUYTERMINAENV UESELORIGENOPUNTOINICIALDEA YVESELDESTINOOPUNTOTERMINALDEA UESUNPREDECESORDEVYVESUNSUCESOROVECINODEU UESADYACENTEHACIAVYVESADYACENTEDESDEU

%NLAlGURASEPRESENTAUNEJEMPLODEUNAARISTADEUNADIGRÈlCA/BSERVEQUE ELARCOQUEUNEALOSDOSVÏRTICESTIENEDIRECCIØN INDICADAPORMEDIODELAmECHA

 2EPRESENTACIØNDEGRÉlCASDIRIGIDAS ,ASDIGRÈlCASSONESTRUCTURASDEDATOSABSTRACTASPORLOTANTO LOSLENGUAJESDEPROGRA MACIØNNOCUENTANCONHERRAMIENTASQUEPERMITANSUMANEJO0ARASUREPRESENTACIØNSE REQUIEREUSAROTRASESTRUCTURASDEDATOS%XISTENVARIASOPCIONESPARAREALIZARESTOÞLTI MOLAELECCIØNDELAMÈSADECUADADEPENDEDELUSOQUESELEVAYAADARALAINFORMACIØN ALMACENADAENLOSVÏRTICESYENLASARISTAS,ASREPRESENTACIONESMÈSUTILIZADASSONLAS MATRICESYLISTASDEADYACENCIA QUESEDESCRIBENACONTINUACIØN%SIMPORTANTESE×ALAR QUEALGUNOSLENGUAJESDEPROGRAMACIØN COMO,)30O3#(%-% NOUTILIZANARREGLOS BIDIMENSIONALESˆMATRICESˆCOMOESTRUCTURASDEDATOSESTÈNDARPORLOTANTO SEUSAN ÈRBOLESOLISTASPARALAREPRESENTACIØNDEDIGRÈlCAS

-ATRIZDEADYACENCIA 5NAMATRIZDEADYACENCIAESUNAMATRIZBOOLEANA DEORDENN DONDENINDICAELNÞ MERODEVÏRTICESDE',OSRENGLONESYCOLUMNASDELAMATRIZREPRESENTANALOSVÏRTICES YSUCONTENIDOLAEXISTENCIAONODEARCOSENTREELLOS0ORLOTANTO CADAELEMENTOI JDE LAMATRIZALMACENAUNOUN DEPENDIENDODESIEXISTEONOUNARCOENTRELOSVÏRTICES IYJ 0ARAGENERARLAMATRIZDEADYACENCIACORRESPONDIENTEAUNADIGRÈlCASELEDAUNOR DENARBITRARIOASUSVÏRTICES YSEASIGNAALOSRENGLONESYALASCOLUMNASDEUNAMATRIZEL MISMOORDEN5NELEMENTODELAMATRIZSERÈSILOSVÏRTICESCORRESPONDIENTESALRENGLØN YALACOLUMNAESTÈNUNIDOSPORUNAARISTAˆSONADYACENTESˆ YENCASOCONTRARIO 3I'6 ! Y6[L    N] LAMATRIZDEADYACENCIA-QUEREPRESENTAA' TIENEN§NELEMENTOSDONDE-;I J=CON≤I≤NY≤J≤N ESSØLOSIEXISTEUNARCO QUEVAYADELNODOIALJ YESENOTROCASO 5NAVENTAJADELASMATRICESDEADYACENCIAESQUEELTIEMPODEACCESOALELEMENTO REQUERIDOESINDEPENDIENTEDELTAMA×ODE6Y!%LTIEMPODEBÞSQUEDAESDELORDEN DEN 3INEMBARGO SUPRINCIPALDESVENTAJAESQUEREQUIEREUNESPACIODEALMACENA MIENTODENPOSICIONES AUNQUEELNÞMERODEARCOSDE'NOSOBREPASEESENÞMERO,A MATRIZDEADYACENCIAESÞTILENLOSALGORITMOSDISE×ADOSPARACONOCERSIEXISTEUNAARISTA ENTREDOSNODOSDADOS %N LAS lGURAS  Y  SE PRESENTAN DOS EJEMPLOS DE GRÈlCAS DIRIGIDAS CON SUS RESPECTIVASREPRESENTACIONESPORMEDIODEMATRICESDEADYACENCIA

 (3Ç'*$"4%*3*(*%"4

283

1,ÊÇ°È %JEMPLODEREPRESENTACIØN DEGRÉlCASA 'RÉlCADIRI GIDAB Ê-ATRIZDEADYACEN CIADELAGRÉlCADIRIGIDA

5NAVARIANTEDELAMATRIZDEADYACENCIAESLAMATRIZDEADYACENCIAETIQUETADA EN DONDE-;I J=REPRESENTALAETIQUETAOCOSTOASOCIADOALARCO3ILAARISTANOEXISTE EN TONCESELVALORDE-;I J=SERÈCERO%STASMATRICESTAMBIÏNSEDENOMINANMATRICESDE COSTOSODEDISTANCIAS%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO #OMOYASEMENCIONØ LAPRINCIPALDESVENTAJADELASMATRICESDEADYACENCIAESEL ESPACIOQUEREQUIERENPARAALMACENARLAINFORMACIØN5NAALTERNATIVAPARAOPTIMIZAREL USODELAMEMORIAESPORMEDIODELASLISTASDEADYACENCIA

1,ÊÇ°Ç %JEMPLODEREPRESENTACIØNDEGRÉlCASA 'RÉlCADIRIGIDACONCOSTOSB Ê-ATRIZ DEADYACENCIAETIQUETADAOCONCOSTOS

284 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! %JEMPLODEREPRESENTACIØNDEGRÉlCASA $IGRÉlCAB ,ISTADEADYACENCIA DELADIGRÉlCA

,ISTADEADYACENCIA 5NALISTADEADYACENCIAPARAUNVÏRTICEAESUNALISTAORDENADADETODOSLOSVÏRTICESAD YACENTESDEA0ORLOTANTO UNALISTADEADYACENCIAPARAREPRESENTARUNAGRÈlCADIRIGIDA ESTARÈFORMADAPORTANTASLISTASCOMOVÏRTICESTENGA'0ARAGUARDARLOSVÏRTICESDE' SEPUEDEUTILIZAROTRALISTAOUNARREGLO%NESTELIBROSEUSAUNARREGLOALQUELLAMAMOS (%!$ DONDE(%!$;I=ESUNAPUNTADORALALISTADEVÏRTICESADYACENTESALVÏRTICEI,A LISTADEADYACENCIAREQUIEREUNESPACIODEALMACENAMIENTOPROPORCIONALALASUMADEL NÞMERODEVÏRTICESMÈSELNÞMERODEARCOS %STETIPODEREPRESENTACIØNSERECOMIENDACUANDOELNÞMERODEARISTASESMENOR AN%LUSODELALISTADEADYACENCIAPERMITEAHORRARESPACIODEALMACENAMIENTO3IN EMBARGO USARUNALISTAENLUGARDEUNAMATRIZTIENELADESVENTAJADEQUEELTIEMPODE BÞSQUEDADELASARISTASPUEDESERMAYOR YAQUESEPIERDEELACCESODIRECTOQUEPERMITE LAMATRIZ,AOPERACIØNDEBÞSQUEDASERÈDELORDENDE/N  &)'52! %JEMPLODEAPLICACIØNDELALGORITMODE$IJKSTRAA $IGRÉlCAB -ATRIZDEDISTANCIAS DELADIGRÉlCA

 (3Ç'*$"4%*3*(*%"4

285

%NLAlGURASEOBSERVAQUEENELARREGLO ENLAPOSICIØNCORRESPONDIENTEACADA UNODELOSCUATROVÏRTICES SEGUARDØUNPUNTEROALALISTADEADYACENCIADELOSRESPEC TIVOSVÏRTICES!SÓ ENLAPOSICIØNDELNODOAHAYUNPUNTEROALALISTAFORMADAPORLOS VÏRTICESBYC AMBOSADYACENTESDESDEA

 /BTENCIØNDECAMINOSDENTRODEUNADIGRÉlCA !LBUSCARUNAESTRUCTURADEDATOSQUESEAJUSTEALASCARACTERÓSTICASDEUNPROBLEMA SE BUSCATAMBIÏNQUESOBREDICHAESTRUCTURASEPUEDANREALIZAROPERACIONESQUEFACILITEN ELMANEJODELAINFORMACIØNALMACENADAENELLA0ARAELCASODELASGRÈlCASDIRIGIDAS GENERALMENTERESULTADEINTERÏSENCONTRARLOSCAMINOS DIRECTOSOINDIRECTOS ENTRESUS VÏRTICES!SUVEZ ALTRABAJARCONDIGRÈlCASETIQUETADASSEREQUIEREENCONTRARELCAMINO MÈSCORTOENTREDOSVÏRTICESDADOSOENTRETODOSSUSVÏRTICES%SDECIR INTERESANAQUELLOS CAMINOSQUENOSPERMITANLLEGARDESDEUNVÏRTICEORIGENAUNVÏRTICEDESTINORECORRIENDO LAMENORDISTANCIAOCONELMENORCOSTO,OSALGORITMOSMÈSUSADOSPARAESTElNSON $IJKSTRA &LOYD Y 7ARSHALL ,OS TRES ALGORITMOS UTILIZAN UNA MATRIZ DE ADYACENCIA ETIQUETADA DONDE -;I J=SIIJ -;I J=∞SINOEXISTEUNCAMINODEIAJ DONDEI≠J -;I J=COSTODEIRDELVÏRTICEIALVÏRTICEJ SIEXISTEAI J  !PARTIRDEESTEPUNTO ALAMATRIZDEADYACENCIAETIQUETADALALLAMAREMOSMATRIZ DEDISTANCIASOMATRIZDECOSTOS%NLASSIGUIENTESSECCIONESSEPRESENTARÈNLOSALGO RITMOSMENCIONADOS

 !LGORITMODE$IJKSTRA %LALGORITMODE$IJKSTRAENCUENTRAELCAMINOMÈSCORTODEUNVÏRTICEELEGIDOACUAL QUIEROTROVÏRTICEDELADIGRÈlCA DONDELALONGITUDDEUNCAMINOESLASUMADELOSPESOS DELASARISTASQUELOFORMAN,ASARISTASDEBENTENERUNPESONONEGATIVO 5NAPOSIBLEAPLICACIØNDEESTEALGORITMOSEPRESENTACUANDOSEDESEAENCONTRARLA RUTAMÈSCORTAENTREDOSCIUDADESCADAVÏRTICEREPRESENTAUNACIUDADYELPESODELAS ARISTASINDICALADURACIØNDELOSVUELOS !CONTINUACIØNSEDESCRIBENLOSPRINCIPALESELEMENTOSQUESECONSIDERANCUANDOSE APLICAELALGORITMO ◗ ◗

3ESUNARREGLOFORMADOPORLOSVÏRTICESDELOSCUALESYACONOCEMOSLADISTANCIA MÓNIMAENTREELLOSYELORIGEN%STEARREGLO INICIALMENTE SØLOALMACENAALNODO ORIGEN $ESUNARREGLOFORMADOPORLADISTANCIADELVÏRTICEORIGENACADAUNODELOSOTROS %SDECIR $;I=ALMACENALAMENORDISTANCIA OCOSTO ENTREELORIGENYELVÏRTICEI! ESTECAMINOSELECONOCECOMOESPECIAL%STEARREGLOSEFORMAENCADAPASODELAL GORITMO!LTERMINARELALGORITMO $CONTENDRÈLADISTANCIAMÓNIMAENTREELORIGEN YCADAUNODELOSOTROSVÏRTICESDELAGRÈlCA

286 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 ◗

-ESUNAMATRIZDEDISTANCIASDEN§NELEMENTOS TALQUE-;I J=ALMACENALADISTAN CIAOCOSTOENTRELOSVÏRTICESIYJ SIENTREAMBOSEXISTEUNAARISTA%NCASOCONTRARIO -;I J=SERÈUNVALORMUYGRANDE∞  %LALGORITMODE$IJKSTRAESELSIGUIENTE

!LGORITMO $IJKSTRA $IJKSTRA. [%STEALGORITMOENCUENTRALADISTANCIAMÓNIMAENTREUNVÏRTICEORIGENYCADAUNODELOSOTROS VÏRTICES DE UNA GRÈlCA DIRIGIDA 3E CONSIDERA AL VÏRTICE  COMO EL VÏRTICE ORIGEN . ES EL NÞMERODEVÏRTICESDELAGRÈlCADIRIGIDA3Y$SONARREGLOSDE.ELEMENTOSY-ESUNAMATRIZ DE.§.ELEMENTOS SEGÞNLODESCRITOANTERIORMENTE]  !GREGARELVÏRTICEA3  2EPETIRCONIDESDEHASTA. %LEGIRUNVÏRTICEVEN6n3 TALQUE$;V=SEAELMÓNIMOVALOR !GREGARVA3  2EPETIRPARACADAVÏRTICEWEN6n3 (ACER$;W=←MÓNIMO$;W= $;V= -;V W=  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

$ADAUNAGRÈlCA'6 ! DONDE6ESTÈFORMADOPORNVÏRTICES SISEUSAUNA MATRIZDEDISTANCIASPARAREPRESENTARLA CADACICLOTOMAUNTIEMPODE/N YSONEJECU TADOSNnVECESPORLOTANTO ELALGORITMOESDELORDENDE/N 3I!ESMENORQUEN ENTONCESESMÈSElCIENTEUSARUNALISTADEADYACENCIAPARAREPRESENTARLADIGRÈlCA%N ESTECASOELTIEMPODERECORRIDOSERÈDELORDENDE/LOGN YELDELOSCICLOSSERÈDEL ORDENDE/!LOGN 

%JEMPLO

!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE$IJKSTRAPARAEN CONTRARELCAMINOMÈSCORTODESDEUNODELOSVÏRTICESACUALQUIERADELOSOTROSVÏRTICES DEUNAGRÈlCADIRIGIDA FORMADAPORCINCOVÏRTICES.  %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOPARALADIGRÈlCADELAlGU RA,APRIMERACOLUMNAESPARA3 ARREGLOENELCUALSEALMACENAENCADAPASODEL ALGORITMOELVÏRTICESELECCIONADO,ASCOLUMNASETIQUETADASCON$;A= $;B=  $;E=SE UTILIZANPARAMOSTRARELVALORMÓNIMODELCAMINOENCONTRADOENTREELVÏRTICEORIGENY

4!",! !PLICACIØNDELALGORITMO DE$IJKSTRA

3

$;A=

$;B=

$;C=

$;D=

$;E=

#OMENTARIO

[A]











%STADOINICIAL

[A B]











3EENCONTRØA B DYA B E

[A B E]











3EENCONTRØA B E D

[A B E D]











.OHAYCAMBIOS

[A B E D C]











%STADOlNALA B E D C

 (3Ç'*$"4%*3*(*%"4

287

&)'52! %JEMPLODEAPLICACIØNDEL ALGORITMODE$IJKSTRA A $IGRÉlCAB -ATRIZDE DISTANCIASDELADIGRÉlCA

LOSVÏRTICESA B  E RESPECTIVAMENTE0ORÞLTIMO SETIENEUNACOLUMNAENLACUALSE COMENTACADAPASODELALGORITMO ◗ ◗ ◗ ◗

%JEMPLO

3EELIGIØELVÏRTICEACOMOVÏRTICEORIGEN 5NAVEZQUEELVÏRTICEELEGIDOSEAGREGAA3 SUVALORCORRESPONDIENTEEN$NOCAM BIA ,OSVALORESlNALESDE$INDICANLADISTANCIAMÓNIMAENTREELVÏRTICEORIGENYCADAUNO DELOSOTROSVÏRTICES0OREJEMPLO $;D=REPRESENTAELCOSTODEIRDELVÏRTICEAALD PASANDOPORBYE$;E=ESELCOSTODEIRDELVÏRTICEAALEPASANDOPORB ,ASOMBRASEUTILIZAPARAINDICAR ENCADAPASO CUÈLESELMÓNIMOVALOREN$ LOQUE IMPLICALAELECCIØNDELVÏRTICECORRESPONDIENTEPARASERINCLUIDOEN3

%NLAlGURASEPRESENTAOTROEJEMPLODEAPLICACIØNDELALGORITMODE$IJKSTRAPARA ENCONTRARELCAMINOMÈSCORTODESDEUNODELOSVÏRTICESACUALQUIERADELOSOTROSVÏRTI CESDEUNAGRÈlCADIRIGIDA CON.

288 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 4!",! !PLICACIØNDELALGORITMODE$IJKSTRA

3

$;A=

$;B=

$;C=

$;D=

$;E=

$;F=

$;G=

$;H=

#OMENTARIO

[A]

















%STADOINICIAL

[A B]

















3EENCONTRØA B CYA B E

[A B D]

















3EENCONTRØA B D G

[A B D C]

















3EENCONTRØA B C F

[A B D C G]

















3EENCONTRØA D G H

[A B D C G E]

















3EENCONTRØA B E FYA B E H

[A B D C G E H]

















.OHAYCAMBIO

[A B D C G E H F]

















%STADOlNAL

%NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOPARALADIGRÈlCADELAlGURA ,APRIMERACOLUMNAESPARA3 ARREGLOENELCUALSEALMACENAENCADAPASODEL ALGORITMOELVÏRTICESELECCIONADO,ASCOLUMNASETIQUETADASCON$;A= $;B=  $;H=SE UTILIZANPARAMOSTRARELVALORMÓNIMODELCAMINOENCONTRADOENTREELVÏRTICEORIGENY CADAUNODELOSOTROSVÏRTICES0ORÞLTIMO SETIENEUNACOLUMNAENLACUALSECOMENTA CADAPASODELALGORITMO ◗ ◗ ◗ ◗

3EELIGIØELVÏRTICEACOMOORIGEN 5NAVEZQUEELVÏRTICEELEGIDOSEAGREGAA3 SUVALORCORRESPONDIENTEEN$NOCAM BIA ,OSVALORESlNALESDE$INDICANLADISTANCIAMÓNIMAENTREELVÏRTICEORIGENYCADA UNODELOSOTROSVÏRTICES0OREJEMPLO $;F=REPRESENTAELCOSTODEIRDELVÏRTICE AALVÏRTICEF PASANDOPORLOSVÏRTICESBYE ,ASOMBRASEUTILIZAPARAINDICAR ENCADAPASO CUÈLESELMÓNIMOVALOREN$ LOQUE IMPLICALAELECCIØNDELVÏRTICECORRESPONDIENTEPARASERINCLUIDOEN3

 !LGORITMODE&LOYD %L ALGORITMO DE &LOYD ENCUENTRA EL CAMINO MÈS CORTO ENTRE TODOS LOS VÏRTICES DE LA DIGRÈlCA3EALAGRÈlCADIRIGIDA'6 ! DONDECADAARCOU→VTIENEASOCIADOUN PESO %L ALGORITMO DE &LOYD PERMITIRÈ ENCONTRAR EL CAMINO MÈS CORTO ENTRE CADA PAR ORDENADOUYV ,AMATRIZDEDISTANCIASSIRVECOMOPUNTODEPARTIDAPARAESTEALGORITMO3EREALIZAN KITERACIONESSOBRELAMATRIZBUSCANDOELCAMINOMÈSCORTOPORLOTANTO ENLAK ÏSIMA ITERACIØN -;I J=TENDRÈELCAMINODEMENORCOSTOPARALLEGARDEIAJ PASANDOPORUN NÞMERODEVÏRTICESMENORAK ELCUALSECALCULARÈSEGÞNLASIGUIENTEEXPRESIØN

 (3Ç'*$"4%*3*(*%"4

289

- K  ; I J = « - K ; I J = MÓN  ¬ ­® - K  ; I K = - K  ; K J = 3EELEGIRÈELCAMINOMÈSCORTOENTREELVALOROBTENIDOENLAITERACIØNKn YEL QUERESULTADEPASARPORELVÏRTICEK%NELALGORITMOSEUSALAMATRIZDECOSTOS - DONDE -;I J=SERÈIGUALALCOSTODEIRDEIAJ AUNVALORMUYGRANDE∞ SINOEXISTECAMINO DEIAJ OACEROSIIJ !LGORITMO &LOYD

&LOYD. [%STEALGORITMOENCUENTRALADISTANCIAMÓNIMAENTRETODOSLOSVÏRTICESDELAGRÈlCADIRIGIDA. ESELNÞMERODEVÏRTICESDELAGRÈlCADIRIGIDA-ESUNAMATRIZDE..ELEMENTOS YSEINICIA CONLOSCOSTOSDELADIGRÈlCAK I JSONVARIABLESENTERAS]  2EPETIRCON+DESDEHASTA.  2EPETIRCON)DESDEHASTA.  2EPETIRCON*DESDEHASTA.  3I-)+ -+*-)* ENTONCES (ACER-)*←-)+ -+*  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

0ARATODOVÏRTICEDELADIGRÈlCASEPRUEBASIELCAMINOMÈSCORTO PARAIRDESDE DICHOVÏRTICEALOSOTROS ESATRAVÏSDEUNVÏRTICEINTERMEDIOK%NCASOAlRMATIVO EL COSTOQUETIENEASOCIADOSEREEMPLAZAPORLASUMADELOSCOSTOSDEIRDELVÏRTICEORIGEN ALINTERMEDIOYDELINTERMEDIOALDESTINO%NOTROCASO ELVALORDE-;I J=NOSEMODIlCA 5NAVEZPROBADOSTODOSLOSVÏRTICESDELADIGRÈlCACOMONODOSINTERMEDIOS LAMATRIZ RESULTANTE ALMACENA LA MENOR DISTANCIA ENTRE CADA PAR DE NODOS ,A COMPLEJIDAD DEL ALGORITMOESDELORDENDE/. YAQUESEUTILIZANTRESCICLOSANIDADOSDEORDEN.

%JEMPLO

!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE&LOYDPARAEN CONTRARLAMÓNIMADISTANCIAENTRETODOSLOSVÏRTICESDEUNAGRÈlCADIRIGIDA,AMATRIZ DEDISTANCIASESLACORRESPONDIENTEALADIGRÈlCADELEJEMPLO%NLAlGURASE PRESENTANLOSDIFERENTESESTADOSDELAMATRIZDEDISTANCIASDELADIGRÈlCADADA OBTENIDOS APARTIRDELAAPLICACIØNDELALGORITMO!SÓ LAMATRIZMOSTRADAENELINCISOA ESLAMATRIZ DEDISTANCIASDELADIGRÈlCADADAˆESTADOINICIALˆ,AMATRIZDECOSTOSMOSTRADAENEL INCISOB ESLAOBTENIDAUSANDOELVÏRTICEBCOMOVÏRTICEINTERMEDIO%NESEPASO +  SEENCONTRARONLOSSIGUIENTESCAMINOSA B DCONDISTANCIAIGUALA A B ECON DISTANCIAIGUALA YC B ECONDISTANCIAIGUALA ,AlGURADEC CORRESPONDEALA

290 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 MATRIZDEDISTANCIAS RESULTADODEUSARELVÏRTICECCOMOVÏRTICEINTERMEDIO%NESEPASO + SEENCONTRØELSIGUIENTECAMINOE C BCONDISTANCIAIGUALA &INALMENTE LA lGURAPRESENTADAENELINCISOD MUESTRALAMATRIZOBTENIDADEDISTANCIASMEDIANTEEL VÏRTICEECOMOVÏRTICEINTERMEDIO0ARA+SEENCONTRARONLOSSIGUIENTESCAMINOSA E DCONDISTANCIAIGUALA B E CCONDISTANCIAIGUALA YB E DCONDISTANCIAIGUAL A %LESTADOlNALDEESTAMATRIZALMACENALASDISTANCIASMÓNIMASENTRECADAUNODE LOSVÏRTICESDELADIGRÈlCADADA 3IADEMÈSDEOBTENERLAMENORDISTANCIAENTRETODOSLOSVÏRTICESDELAGRÈlCADIRIGI DASEREQUIERECONOCERLATRAYECTORIAENCONTRADAPARACADAVÏRTICE SEDEBERÈIRGUARDAN DODICHATRAYECTORIAˆLOSVÏRTICESINTERMEDIOSˆ%STAVARIANTEDELALGORITMODE&LOYD UTILIZAUNARREGLOAUXILIAR4 DE..ELEMENTOS DONDE4;I J=SERÈIGUALAKSIKESUN NODOINTERMEDIOENTREIYJ

&)'52! %JEMPLODEAPLICACIØNDELALGORITMODE&LOYD

 (3Ç'*$"4%*3*(*%"4

291

!LGORITMO &LOYD?GUARDA?VÏRTICES

&LOYD?GUARDA?VÏRTICES. [%STEALGORITMOENCUENTRALADISTANCIAMÓNIMAENTRETODOSLOSVÏRTICESDELAGRÈlCADIRIGIDA !DEMÈS ALMACENAELCONJUNTODENODOSINTERMEDIOSQUEFORMANLASTRAYECTORIASENCONTRADAS .ESELNÞMERODEVÏRTICESDELAGRÈlCADIRIGIDA-ESUNAMATRIZDE..ELEMENTOS YSE INICIACONLOSCOSTOSDELADIGRÈlCA4ESUNAMATRIZDE..ELEMENTOS YALMACENARÈENCADA ELEMENTOI JELVÏRTICEINTERMEDIOUSADOPARAIRDEIAJ+ ) *SONVARIABLESENTERAS]  2EPETIRCON+DESDEHASTA.  2EPETIRCON)DESDEHASTA.  2EPETIRCON*DESDEHASTA.  3I-)+ -+*-IJ ENTONCES (ACER-)*←-)+ -+*Y4)*←+  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

%JEMPLO

!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE&LOYD?GUARDA? VÏRTICES#OMORESULTADOSEOBTIENEUNAMATRIZCONLASDISTANCIASMÓNIMASENTRETODOS LOSVÏRTICESDEUNAGRÈlCADIRIGIDAYLOSVÏRTICESINTERMEDIOSUTILIZADOSPARAALCANZAR ESASDISTANCIAS,AMATRIZDEDISTANCIASESLACORRESPONDIENTEALADIGRÈlCADELEJEMPLO #ONRESPECTOALAOBTENCIØNDELAMATRIZDEDISTANCIASMÓNIMAS ELALGORITMOGENERA UNAMATRIZIGUALALAPRESENTADAENLAlGURA DONDESEOBSERVACØMOSEVANASIG NANDOVALORESALAMATRIZ4 AMEDIDAQUESEVANENCONTRANDOVÏRTICESINTERMEDIOSQUE REDUCENLADISTANCIAENTREDOSVÏRTICES %NELINCISOA SEMUESTRAELESTADOINICIALDE4%NESTECASOSEASIGNØUN ACADA COMPONENTEDELARREGLO%NLAlGURADELINCISOB SEPRESENTAELARREGLOUNAVEZREGIS TRADOBPARA+ COMOVÏRTICEINTERMEDIOENTREAYD AYE CYE%NC SEPUEDE OBSERVAR4LUEGODEENCONTRARALNODOCPARA+ COMOINTERMEDIOENTREEYB0OR ÞLTIMO SELLEGAALESTADOlNALDE4 INCISOD LUEGODEENCONTRARAEPARA+ COMO VÏRTICEINTERMEDIOENTRELOSVÏRTICESAYD BYC BYD

292 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! %JEMPLODEAPLICACIØN DELALGORITMO &LOYD?GUARDA?VÏRTICES°

 !LGORITMODE7ARSHALL %LALGORITMODE7ARSHALLENCUENTRA SIESPOSIBLE UNCAMINOENTRECADAUNODELOSVÏR TICESDELAGRÈlCADIRIGIDA%SDECIR LASOLUCIØNENCONTRADAPORELALGORITMONOPRESENTA LASDISTANCIASENTRELOSVÏRTICES SØLOMUESTRASIHAYONOCAMINOENTREELLOS %LALGORITMODE7ARSHALLSEBASAENUNCONCEPTOLLAMADOCERRADURATRANSITIVADE LAMATRIZDEADYACENCIA3EALAGRÈlCADIRIGIDA'6 ! YSUMATRIZDEADYACENCIA- DONDE-;I J=SIHAYUNARCODEIAJ YSINOLOHAY,ACERRADURATRANSITIVADE-ES LAMATRIZ#TALQUE#;I J=SIHAYUNCAMINODELONGITUDMAYOROIGUALQUEDEIAJ OENOTROCASO0ARAGENERARLAMATRIZ#SEESTABLECEQUEEXISTEUNCAMINODELVÏRTICE IALJQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEKSI A 9AEXISTEUNCAMINODEIAJQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEK n B (AYUNCAMINODEIAKQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEKn Y HAYUNCAMINODEKAJQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEKn

 (3Ç'*$"4/0%*3*(*%"4

293

!LGORITMO 7ARSHALL 7ARSHALL. [%STEALGORITMOENCUENTRA SIESPOSIBLE UNCAMINODELONGITUDMAYOROIGUALAUNOENTRECADA UNODELOSVÏRTICESDELAGRÈlCADIRIGIDA.ESELNÞMERODEVÏRTICESDELADIGRÈlCA#ESUNA MATRIZDE..ELEMENTOS)NICIALMENTEESIGUALA-!LTERMINARELALGORITMOCONTENDRÈLA CERRADURATRANSITIVADE- K ) *SONVARIABLESENTERAS]  2EPETIRCON+DESDEHASTA.  2EPETIRCON)DESDEHASTA.  2EPETIRCON*DESDEHASTA.  3I!;) *= ENTONCES !;) *=←!;) +=Y!;+ *=  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

%JEMPLO

3EPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE7ARSHALLPARADETERMINARSIEXISTE ONOUNCAMINOENTRETODOSLOSVÏRTICESDEUNAGRÈlCADIRIGIDA3ETOMALADIGRÈlCADEL EJEMPLOLAMATRIZ# QUECONTENDRÈLACERRADURATRANSITIVAALlNALIZARELALGORITMO SEINICIACONLOSVALORESDELAMATRIZDEADYACENCIACORRESPONDIENTE %NLAlGURASEPRESENTANLOSDIFERENTESESTADOSDE# OBTENIDOSAPARTIRDELA APLICACIØNDELALGORITMO%NLAlGURADELINCISOA SEMUESTRAELESTADOINICIALDELAMATRIZ 0ORSUPARTE ENB SEPRESENTALACORRESPONDIENTEALAMATRIZ# RESULTADODEUSARELVÏR TICEBCOMOVÏRTICEINTERMEDIO3EENCONTRARONLOSSIGUIENTESCAMINOSA B D A B EY C B E,AlGURADELINCISOC CORRESPONDEALAMATRIZ#OBTENIDAPORMEDIODELVÏRTICEC COMOVÏRTICEINTERMEDIO3EFORMARONLOSCAMINOSE C BYE C E&INALMENTE END SE PRESENTAALAMATRIZ#LUEGODEUSARELVÏRTICEECOMOVÏRTICEINTERMEDIO3EOBTUVIERON LOSCAMINOSA E A B E B B E CYC E C

 '2­&)#!3./$)2)')$!3 %NESTASECCIØNSEPRESENTARÈELCONCEPTODEGRÈlCASNODIRIGIDASOSIMPLEMENTEGRÈ lCAS CUYACARACTERÓSTICAPRINCIPALESQUESUSARISTASSONPARESNOORDENADOSDEVÏRTICES %SDECIR SIEXISTEUNCAMINODELVÏRTICEIALJ SERÈEXACTAMENTEELMISMOCAMINODEL VÏRTICEJALI %STASGRÈlCASSEUTILIZANPARAMODELARRELACIONESSIMÏTRICASENTREDIFERENTESOBJE TOS QUESEREPRESENTANPORMEDIODELOSVÏRTICES MIENTRASQUELASARISTASSEUSANPARA INDICARLASRELACIONESENTREELLOS0OREJEMPLO ELCOSTODEUNBOLETODEAVIØNPARAIRDE LACIUDADDE-ÏXICOA'UADALAJARASERÈELMISMOENCUALQUIERADELASDIRECCIONESQUE SEREALICEELVIAJE

294 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4

&)'52! %JEMPLODEAPLICACIØNDELALGORITMODE7ARSHALL

5NAGRÈlCANODIRIGIDA'6 ! CONSTADEUNCONJUNTOlNITODEVÏRTICES6YDE OTROlNITODEARISTAS!3EDIFERENCIADEUNAGRÈlCADIRIGIDAENQUECADAARISTAEN!ESUN PARNOORDENADODEVÏRTICES3IU V ESUNAARISTANODIRIGIDA ENTONCESU V V U 

 2EPRESENTACIØNDEGRÉlCASNODIRIGIDAS ,ASGRÈlCASNODIRIGIDASSONESTRUCTURASDEDATOSABSTRACTASPORLOTANTO SEDEBENAPO YARENOTRASESTRUCTURASPARASUREPRESENTACIØNENMEMORIA,ASDOSREPRESENTACIONES MÈSUTILIZADASSONMATRIZDEADYACENCIAYLISTADEADYACENCIA AMBASEXPLICADASEN LASECCIØNCORRESPONDIENTEALASGRÈlCASDIRIGIDAS #ONSIDERANDO LA SIMETRÓA DE LAS RELACIONES ENTRE LOS ELEMENTOS DE LA GRÈlCA SE REQUIERECAMBIARCADAARISTANODIRIGIDAENTREUYVPORDOSARISTASDIRIGIDAS UNADEU AVYOTRADEVAUPORLOTANTO LAMATRIZDEADYACENCIARESULTARÈUNAMATRIZSIMÏTRICA YENLALISTADEADYACENCIAELVÏRTICEUESTARÈENLALISTADEADYACENCIADELVÏRTICEV Y VICEVERSA %NLAlGURAASEPUEDEOBSERVARUNEJEMPLODEUNAGRÈlCAYENB SUREPRESEN TACIØNPORMEDIODEUNAMATRIZDEADYACENCIA%NLAMATRIZSEHASOMBREADOLADIAGONAL

 (3Ç'*$"4/0%*3*(*%"4

295

&)'52! 'RÉlCAYSUREPRESENTACIØN PORMEDIODEUNAMATRIZDE ADYACENCIA°

&)'52! 2EPRESENTACIØNDEUNA GRÉlCAPORMEDIODEUNA LISTADEADYACENCIA°

PRINCIPALPARAILUSTRARMÈSCLARAMENTELASIMETRÓA%SDECIR LAMATRIZTRIANGULARINFERIOR ESIGUALALAMATRIZTRIANGULARSUPERIOR %NLAlGURASEMUESTRALAREPRESENTACIØNDELAGRÈlCADELAlGURAAPOR MEDIODEUNALISTADEADYACENCIA

 #ONSTRUCCIØNDELÉRBOLABARCADORDECOSTOMÓNIMO 3EA'6 ! UNAGRÈlCACONEXA ESDECIR UNAGRÈlCAENLACUALEXISTEUNCAMINO SIMPLEENTRECUALESQUIERADOSDESUSVÏRTICES!DEMÈS CADAARISTAU V TIENEASOCIADO UNPESOOCOSTO CU V  #ONSIDERANDOLOANTERIOR UNÈRBOLABARCADORDEUNAGRÈlCA'SEDElNECOMOUN ÈRBOLLIBREQUECONECTATODOSLOSVÏRTICESDE6%LCOSTODELÈRBOLABARCADORRESULTADELA SUMADELASARISTASINCLUIDASENÏL0ORLOTANTO UNÈRBOLABARCADORDECOSTOMÓNIMO SEFORMAAPARTIRDELASARISTASDEMENORCOSTO

296 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 5NAAPLICACIØNTÓPICADEÈRBOLESABARCADORESDECOSTOMÓNIMOESELDISE×ODEREDES DECOMUNICACIØN0OREJEMPLO LOSVÏRTICESDELAGRÈlCAPUEDENREPRESENTARCIUDADES Y LASARISTASPOSIBLESCANALESDECOMUNICACIØNENTREELLAS%LCOSTOASOCIADOACADAARISTA REPRESENTAELCOSTODECOMUNICARUNACIUDADCONOTRAENTIEMPO DINERO MEDIOS ETC  0ORLOTANTO ELÈRBOLABARCADORREPRESENTARÈLAREDDECOMUNICACIØNQUECONECTAATODAS LASCIUDADESAUNCOSTOMÓNIMO ,OSÈRBOLESABARCADORESDECOSTOMÓNIMOGOZANDEUNAPROPIEDADQUESIRVECOMO BASEPARATODOSLOSALGORITMOSUTILIZADOSPARASUCONSTRUCCIØN%STAPROPIEDADESTABLECE QUESI'6 ! ESUNAGRÈlCACONEXA 5ESUNSUBCONJUNTOPROPIODELCONJUNTODEVÏR TICES6 YU V ESUNAARISTADECOSTOMÓNIMOTALQUEU∈5YV∈6 5 ENTONCESEXISTE UNÈRBOLABARCADORDECOSTOMÓNIMOQUEINCLUYEAU V ENTRESUSARISTAS %N LAS SIGUIENTES SECCIONES SE PRESENTARÈN LOS ALGORITMOS DE 0RIM Y DE +RUSKAL UTILIZADOSPARAOBTENERELÈRBOLABARCADORDEUNAGRÈlCA

 !LGORITMODE0RIM %LALGORITMODE0RIMPERMITEENCONTRARELÈRBOLABARCADORDECOSTOMÓNIMODEUNA GRÈlCA0ARAELLOUTILIZADOSCONJUNTOS6 CONJUNTODETODOSLOSVÏRTICES Y5 CONJUNTO AUXILIARINICIADOCONELPRIMERVÏRTICE%NCADAITERACIØNDELALGORITMOSEBUSCALAARISTA U V QUECONECTE5CONLASUBGRÈlCA6 5,UEGOSEAGREGAELNODOV PERTENECIENTEA 6 5 A5%STEPROCESOSEREPITEHASTAQUE56 #ONSIDERANDOELRECORRIDOQUESEDEBEHACERENLAGRÈlCA ELTIEMPODEEJECUCIØN SERÈDELORDENDE/N SISEUSAUNAMATRIZDEADYACENCIAPARAREPRESENTARLA%NCAM BIO SILAGRÈlCAFUEREPRESENTADAPORMEDIODEUNALISTADEADYACENCIA LACOMPLEJIDAD DELALGORITMOSERÈDELORDENDE/! LOGN DONDE!ESELNÞMERODEARISTAS !NTESDEPRESENTARELALGORITMO RESULTACONVENIENTEEXPLICARLOSELEMENTOSQUESE USARÈNENÏL ◗ ◗ ◗

6ESELCONJUNTODEVÏRTICESDE'6[   N]3EUSANLOSNÞMEROSENTEROSDEL ENADELANTEPARAIDENTIlCARLOSVÏRTICES3INEMBARGO ENCADAAPLICACIØNSEPODRÈ USARLAMANERAQUESECONSIDEREMÈSADECUADA 5ESUNSUBCONJUNTOPROPIODELCONJUNTO6 SIENDOSUVALORINICIALELDELPRIMER VÏRTICE0ARANUESTRAIMPLEMENTACIØN5[] ,ESUNALISTADEARISTASQUESEVAFORMANDOCONLASARISTASDEMENORCOSTOQUESE VANSELECCIONANDO)NICIALMENTE,ESTÈVACÓA,∅

!LGORITMO 0RIM

0RIM. [%STEALGORITMOENCUENTRAELÈRBOLABARCADORDECOSTOMÓNIMODEUNAGRÈlCA'DE.VÏRTICES 5 6Y,SONESTRUCTURASDEDATOSˆARREGLOSOLISTASˆQUEPERMITENGUARDARLOSNOMBRESDE LOSVÏRTICESYLASARISTASSELECCIONADAS]

 (3Ç'*$"4/0%*3*(*%"4

297

 -IENTRAS6≠5 2EPETIR %LEGIRUNAARISTAU V ∈!' TALQUESUCOSTOSEAMÓNIMO SIENDOU∈5YV∈ 6n5 !GREGARLAARISTAU V A, !GREGARELNODOVA5  [&INDELCICLODELPASO]

%JEMPLO

!CONTINUACIØNSEPRESENTAUNEJEMPLODEUSODELALGORITMODE0RIMPARAENCONTRAREL ÈRBOLABARCADORDECOSTOMÓNIMODEUNAGRÈlCA%LALGORITMOSEAPLICAALAGRÈlCADELA lGURA OBTENIENDOCOMORESULTADOELÈRBOLQUESEMUESTRAENLAlGURA %LSEGUIMIENTODELALGORITMOSEPRESENTAENLATABLA %NLAPRIMERAITERACIØNSEELIGELAARISTA  PORSERLADEMENORCOSTO ENESTE CASOIGUALA%LVÏRTICESEAGREGAALCONJUNTO5%NLASIGUIENTEITERACIØNSEELIGELA ARISTA  CONUNCOSTODEYELVÏRTICEPASAAFORMARPARTEDE5!SÓSESIGUEHASTA ALCANZARLACONDICIØNlNALDE65 YCONSECUENTEMENTETERMINAELPROCESO

&)'52! %JEMPLODEAPLICACIØNDEL ALGORITMODE0RIM

4!",! !PLICACIØNDELALGORITMODE0RIM

)TERACIØN

5

U V

#OSTO

V

,

5ACTUALIZADO



[]

 





[  ]

[ ]



[ ]

 





[    ]

[  ]



[  ]

 





[      ]

[   ]



[   ]

 





[        ]

[    ]

298 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! ­RBOLABARCADORDECOSTO MÓNIMO OBTENIDOAPLICAN DOELALGORITMODE0RIM

 !LGORITMODE+RUSKAL %LALGORITMODE+RUSKAL ALIGUALQUEELDE0RIM PERMITEENCONTRARELÈRBOLABARCADOR DECOSTOMÓNIMODEUNAGRÈlCA,ACONSTRUCCIØNDELÈRBOLABARCADORDECOSTOMÓNIMO SELLEVAACABOSELECCIONANDOLAARISTADEMENORCOSTOYAGREGÈNDOLAALÈRBOLABARCADOR 0ARAELLOSEUTILIZAUNPROCESORELATIVAMENTESENCILLO 0RIMERO SEDEBEGENERARUNASERIEDEPARTICIONESAPARTIRDELCONJUNTODEVÏRTICES6 )NICIALMENTE LASPARTICIONESTIENENTAMA×OUNO%SDECIR 0[[6] [6] [6]  [6N]] DONDE0INDICALAPARTICIØNINICIAL YCADA[6I]ESUNAPARTICIØNFORMADAPORELVÏRTICEI !PARTIRDEESTEPASOSEBUSCALAARISTADEMENORCOSTO YSIÏSTAUNEDOSVÏRTICESQUE PERTENECENAPARTICIONESDIFERENTES DICHASPARTICIONESSEREEMPLAZANPORSUUNIØN0ARA ELCASOCONTRARIO LAARISTANOFORMAPARTEDELÈRBOLABARCADORDECOSTOMÓNIMO YAQUE PRODUCIRÓAUNCICLO3ECONTINÞAELIGIENDOLAARISTAU V DEMENORCOSTOYUNIENDOLAS PARTICIONESALASCUALESPERTENECENUYV RESPECTIVAMENTE HASTAQUESETENGAUNASOLA PARTICIØNFORMADAPORTODOSLOSVÏRTICESDELAGRÈlCA%SDECIR 0K[6 6 6  6N] DONDE 0K ES LA PARTICIØN lNAL LUEGO DE K ITERACIONES LA CUAL ESTÈ FORMADA POR LOS . VÏRTICESDE' %STEALGORITMOREQUIERE ENELPEORDELOSCASOS UNTIEMPODE/! LOG! DONDE !ESELNÞMERODEARISTASDELAGRÈlCA3I!ESMENORQUEN ENTONCESELALGORITMODE +RUSKALESMÈSElCIENTEQUEELDE0RIM3I!TIENEUNVALORCERCANOAN ENTONCESES MÈSCONVENIENTEUSARELDE0RIM %LALGORITMOUTILIZAALGUNOSELEMENTOSAUXILIARES!CONTINUACIØNSEDESCRIBENLOS MISMOS ◗ ◗

,ESUNCONJUNTOFORMADOPORLASARISTASYSUSRESPECTIVOSCOSTOS 0REPRESENTALASPARTICIONESGENERADASAPARTIRDE6)NICIALMENTE0[[] []  [N]]

 (3Ç'*$"4/0%*3*(*%"4

299

0ARAESTOSDOSELEMENTOSˆ,Y0ˆSEPUEDENUSARARREGLOSOLISTASPARASUREPRE SENTACIØNENMEMORIA !LGORITMO +RUSKAL

+RUSKAL. [%STEALGORITMOENCUENTRAELÈRBOLABARCADORDECOSTOMÓNIMODEUNAGRÈlCA'DE.VÏRTICES , Y 0 SON ESTRUCTURAS DE DATOS ˆARREGLOS O LISTASˆ QUE PERMITEN GUARDAR LAS ARISTAS Y LAS PARTICIONES RESPECTIVAMENTE]  -IENTRASHAYAVÏRTICESEN0QUEPERTENEZCANAPARTICIONESDISTINTAS2EPETIR $E,SELECCIONARLAARISTAU V QUETENGAELMENORCOSTO  3IUYVSEENCUENTRANENPARTICIONESDIFERENTES ENTONCES 5NIRLASPARTICIONESALASCUALESPERTENECENUYV  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

%JEMPLO

3EPRESENTAUNEJEMPLODEUSODELALGORITMODE+RUSKALPARAENCONTRARELÈRBOLABAR CADORDECOSTOMÓNIMODEUNAGRÈlCA ELCUALSEAPLICAALAGRÈlCADELAlGURA OBTENIENDOCOMORESULTADOELÈRBOLQUESEMUESTRAENLAlGURA

&)'52! ­RBOLABARCADORDECOSTOMÓNIMOOBTENIDOAPLICANDOELALGORITMODE+RUSKALA 'RÉlCA INICIALENELLAAPARECENTODASLASARISTASCONSUPESOASOCIADO0ARTICIØNINICIAL0  B ,UEGODESELECCIONARLAARISTADEMENORPESO QUEUNELOSVÏRTICESY

300 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4

&)'52! CONTINUACIØN C ,UEGODESELECCIONARLASIGUIENTEARISTADEMENORPESO QUEUNELOSVÏRTICESY D ,UEGODESELECCIONARLASIGUIENTEARISTADEMENORPESO QUEUNELOSVÏRTICESY E ,UEGODESELECCIONARLASIGUIENTEARISTADEMENORPESO QUEUNELOSVÏRTICESY F ­RBOLABARCADORALQUESELLEGALUEGODEAPLICARELALGORITMODE+RUSKAL

 3&40-6$*Î/%&130#-&."4

301

&)'52! 0UZZLE

,ALISTA,FORMADAPORLASARISTASYSUSCOSTOSU V C DONDEUYVSONVÏRTICESYC REPRESENTAELCOSTOASOCIADOADICHAARISTA ESLASIGUIENTE ,[                    ] %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMO %NELPASOSEELIGELAARISTA  PORQUEESLAQUETIENEASOCIADOELMENORCOSTO Y ENCONSECUENCIA SEUNENLASPARTICIONESCORRESPONDIENTESALOSVÏRTICESY,APARTICIØN RESULTANTESESOMBREA3ESIGUEDELAMISMAMANERAENLOSPASOSY%NELPASOSE ELIGELAARISTA  CONUNCOSTODE YNOLAARISTA  CONUNCOSTODE YAQUELOS VÏRTICESDEESTAÞLTIMANOCUMPLENCONLACONDICIØNDEPERTENECERAPARTICIONESDISTINTAS

 2%3/,5#)¼.$%02/",%-!3 ,OS PROBLEMAS BÈSICAMENTE SE CLASIlCAN EN DOS GRANDES SUBGRUPOS LOS QUE CUENTAN CONUNASOLUCIØNDETERMINÓSTICAPARASUSOLUCIØN EXPRESABLEPORMEDIODEUNALGORIT MO YLOSQUEREQUIERENDEUNABÞSQUEDAPARASUSOLUCIØN,AINTELIGENCIAARTIlCIALSE PREOCUPADEESTETIPODEPROBLEMAS SINIMPORTARSISONMÈSOMENOSCOMPLEJOSQUELOS ANTERIORESˆDETERMINÓSTICOSˆ

4!",! !PLICACIØNDELALGORITMO DE+RUSKAL

0ASO

!RISTAELEGIDA

#OSTO



0ARTICIONES 0[[] [] [] [] []]%STADOINICIAL



 



0[[ ] [] [] []]  



 



    0[[ ] [ ] []]



 



0[[   ] []]    



 



0[    ]     

302 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 %NLAVIDAEXISTEUNACANTIDADDEPROBLEMASQUESEPUEDENRESOLVERAPLICANDOMÏ TODOSDEBÞSQUEDA SIÏSTOSFUERONMODELADOSMEDIANTEGRÈlCAS5NODELOSPROBLEMAS MÈSESTUDIADOYUTILIZADOENELCAMPODELASOLUCIØNDEPROBLEMASESELDELPUZZLE  %STEESUNJUEGOQUECONSISTEENORDENARUNCONJUNTODElCHASENUNTABLERODE.§.PO SICIONES USANDOSØLOUNLUGARLIBRE DETALMANERAQUEAQUÏLLASQUEDENENUNASECUENCIA DEA. n3EUTILIZANFRECUENTEMENTELOSJUEGOSENELÈREADERESOLUCIØNDEPROBLE MAS PORQUEPROPORCIONANUNARICAFUENTEDEEJEMPLOSPARACOMPARARYPROBARDISTINTOS MÏTODOSDEBÞSQUEDA%NLAlGURASEPRESENTAUNEJEMPLODEUNPUZZLE  %NELPUZZLEEXISTEUNESTADOINICIALYOTROlNALDElNIDOS0OROTRAPARTE HAYUN CONJUNTODEMOVIMIENTOSQUEPERMITENCAMBIARDEUNACONlGURACIØNAOTRAESTOSMO VIMIENTOSSEDENOMINANOPERADORES%NLOSDIFERENTESESTADOSPARCIALESSIEMPREEXISTEN OPERADORESPROHIBIDOS ESDECIR QUENOSEPUEDENAPLICARPORQUELOSMOVIMIENTOSRE PRESENTANESTADOSILEGALES %NLAlGURASEOBSERVANTANTOLOSESTADOSINICIALYlNALDELPROBLEMAARESOL VER,ACELDAVACÓA ENESTECASO SØLOSEPUEDEINTERCAMBIARCONLASCELDASQUECONTIE NENALYAL RESPECTIVAMENTE %NELPUZZLE  QUESEREPRESENTACOMOUNAMATRIZDE§ ELNÞMEROPOSIBLEDE COMBINACIONESQUESEPODRÓANGENERARES LOCUALIMPLICAQUEELPUZZLETENGA ESTADOSLEGALES §  %S PRUDENTE DESTACAR QUE PARA UN ESTADO lNAL SØLO EXISTEN  ESTADOS INICIALES POSIBLES,ACOMPLEJIDADDEESTEPROBLEMAESSIMILARALAQUETIENEUNCARTEROQUEDEBE DISTRIBUIRNUEVECARTASENNUEVEDIRECCIONESDIFERENTES YQUIEREENCONTRARLATRAYECTORIA ØPTIMA3IELPROBLEMAQUETUVIÏRAMOSQUERESOLVERFUERAENCAMBIOELPUZZLE  QUE SE REPRESENTA EN UNA MATRIZ DE DE  §  LOS ESTADOS LEGALES DEL PROBLEMA SON   %0OROTRAPARTE CABEMENCIONARQUEEXISTENPUZZLES  QUESEREPRESENTANEN UNAMATRIZDE§ CUYONÞMERODEESTADOSLEGALESESSINEMBARGO MUCHOSDEELLOS NOSEPUEDENRESOLVER 0ARAQUEELLECTOROBSERVELACOMPLEJIDADDELPROBLEMA SEPRESENTANLASTABLAS Y DONDESEMUESTRAELTIEMPOQUESENECESITAPARAGENERARTODOSLOSESTADOSLEGALES DELPUZZLE YPUZZLE  RESPECTIVAMENTE %N LA PRIMERA COLUMNA SE PRESENTA EL NÞMERO DE NODOS GENERADOS POR SEGUNDO MIENTRASQUEENLASEGUNDAESELTIEMPONECESARIOPARAPROCESARTODOSLOSNODOS%NLA TABLASEOBSERVAQUESISEPUDIERANPROCESARNODOSPORSEGUNDO SEREQUERIRÓAN SEGUNDOSPARAALCANZARLASOLUCIØNDELPROBLEMA%NCAMBIO SILACAPACIDADDE PROCESAMIENTOFUERADEDENODOSPORSEGUNDO SØLOSENECESITARÓASEGUN DOSPARALLEGARALASOLUCIØN

4!",!

.ODOSPORSEGUNDO

4IEMPODESOLUCIØN



SEGUNDOS MINUTOS



SEGUNDOS

*Õââi‡n

 3&40-6$*Î/%&130#-&."4 4!",!

.ODOSPORSEGUNDO

4IEMPODESOLUCIØN



%SEGUNDOS %MINUTOS HORAS DÓAS A×OS



SEGUNDOS MINUTOS HORAS DÓAS

303

0UZZLEDE™

%NLATABLASEPRESENTANLOSRESULTADOSPARAELPUZZLE 3ILAVELOCIDADCONQUE SEGENERANLOSNODOSFUERADENODOSPORSEGUNDO ENTONCESSENECESITARÓAN A×OSPARAGENERARTODOSLOSNODOSSI ENCAMBIO LAVELOCIDADFUERADEDE NODOSPORSEGUNDO SENECESITARÓANDÓAS/BSERVEQUELOSPROBLEMASSONFÈCILMENTE ENTENDIBLES PEROLASOLUCIØNESMUYCOMPLEJA ,OSPUZZLESCONSTITUYENUNEXCELENTECAMPOPARAAPLICARYPROBARMÏTODOSDEBÞS QUEDA%LPUZZLEMÈSFRECUENTEMENTEUTILIZADOESELPUZZLE ESDECIR AQUELDEDIMEN SIØN§ DONDESEDEBENACOMODARLOSNÞMEROSAL%NLAlGURASEPRESENTA OTROEJEMPLODEPUZZLE %LPROBLEMAQUEDADElNIDOENFUNCIØNDE ◗ ◗ ◗

5NESTADOINICIALYUNESTADOlNAL 5NCONJUNTODEMOVIMIENTOSUOPERADORES PERMITIDOSPARACAMBIARDEUNACON lGURACIØNAOTRA%SDECIR UNOPERADORESTÈASOCIADOALCONCEPTODEMOVIMIENTOY ESELQUEPERMITETRANSFORMARUNESTADOENOTRO 5NCONJUNTODEOPERADORESPROHIBIDOS

0ARAELPROBLEMADELPUZZLELOSOPERADORESVÈLIDOSSEMUESTRANENLAlGURA MIENTRASQUELOSOPERADORESPROHIBIDOSSEPRESENTANENLAlGURA &)'52! %JEMPLODEUNPUZZLE 

304 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52! /PERADORESVÉLIDOSPARA ELPUZZLE

&)'52! /PERADORESPROHIBIDOS PARAELPUZZLE

%NLENGUAJEDEESTADOSYOPERADORES UNASOLUCIØNALPROBLEMACONSISTEENOBTENER UNASECUENCIAAPROPIADADEOPERADORESQUEPERMITIRÈNTRANSFORMARENINICIALELESTADO lNAL ,ASOLUCIØNDEUNPROBLEMAREQUIEREDEUNORDENDEBÞSQUEDAPARASUSOLUCIØN PEROANTESDECOMENZARLABÞSQUEDAESNECESARIOMODELAROREPRESENTARELPROBLEMADE ALGUNAFORMA,ASALTERNATIVASSON ◗ ◗

%SPACIOESTADO 2EDUCCIØNDEPROBLEMAS

%NESTECAPÓTULOSØLOANALIZAREMOSLAREPRESENTACIØNESPACIOESTADOPORQUEESLA QUESERELACIONACONLASGRÈlCAS

 %SPACIO ESTADO 5NPASOIMPORTANTEENLAFORMULACIØNDEUNPROBLEMAESPACIOESTADOCONSISTEENLA SELECCIØNDEUNAFORMADEREPRESENTARLOSESTADOSDELPROBLEMA,ASESTRUCTURASDEDATOS MÈSUSADASPARADESCRIBIRLOSESTADOSSONARREGLOSUNIDIMENSIONALES ARREGLOSBIDIMEN

 3&40-6$*Î/%&130#-&."4

305

SIONALES LISTASLIGADAS ÈRBOLESYGRÈlCAS%NELPROBLEMADELPUZZLE  UNAMATRIZDE §PARECESERLAESTRUCTURAMÈSNATURALPARAREPRESENTARLOSESTADOSDELPROBLEMA3IN EMBARGO HAYQUESERCUIDADOSOSENLAELECCIØNDELAESTRUCTURAPORDOSRAZONES  ,ASOLUCIØNDEBESERCOMPUTABLE%SDECIR SEDEBEPODERDESARROLLARUNMÏTODOQUE SEPUEDAEJECUTARENUNACOMPUTADORAENUNTIEMPORAZONABLE  $EBEPERMITIRALMACENARYMANIPULARLOSOPERADORESQUETRANSFORMANUNESTADOEN OTRO #ONSIDERANDOQUELAMATRIZESUNAESTRUCTURADEDATOSESTÈTICA LALISTARESULTASERLA ESTRUCTURADEDATOSMÈSADECUADAPARAREPRESENTARALPUZZLE 0ORELDINAMISMODELA MISMA SEPUEDENALMACENARFÈCILMENTELOSESTADOSYLOSOPERADORESDELPROBLEMA

 -ÏTODOSDEBÞSQUEDAENESPACIO ESTADO %NELPLANTEAMIENTODEPROBLEMASESPACIOESTADO UNASOLUCIØNSEOBTIENEMEDIANTELA APLICACIØNDEOPERADORESDESDEELESTADOINICIALHASTAALCANZARELESTADOlNALOMETA%S IMPORTANTECONSIDERARLOSSIGUIENTESPUNTOS ◗ ◗ ◗ ◗

5NNODOINICIALSEASOCIACONLADESCRIPCIØNDEUNESTADOINICIAL ,OSSUCESORESDEUNNODOSECALCULANUSANDOLOSOPERADORESQUESONAPLICABLESA ESEESTADO 8ESUNOPERADORQUECALCULATODOSLOSSUCESORESDEUNNODO%LPROCESODEAPLICAR 8AUNNODOSEDENOMINAEXPANDERUNNODO 3EUTILIZANAPUNTADORESPARALIGARELNODOPADRECONSUHIJOY DEESTAMANERA PODER OBTENERLATRAYECTORIACUANDOSEENCUENTRAELESTADOMETA

,OSMÏTODOSDEBÞSQUEDASECARACTERIZANPORELORDENENELCUALSEEXPANDENLOS NODOSLOSDOSBÈSICOSMÈSAMPLIAMENTECONOCIDOSSON ◗ ◗

"READTH lRSTOBÞSQUEDAALOANCHO3EEXPANDENLOSNODOSENELORDENENQUE HANSIDOGENERADOS $EPTH lRST O BÞSQUEDA EN PROFUNDIDAD 3E EXPANDEN LOS NODOS QUE HAN SIDO GENERADOSRECIENTEMENTE

%S IMPORTANTE SE×ALAR QUE ÏSTOS SON MÏTODOS DE BÞSQUEDA ELEMENTALES PARA EN CONTRAR LAS TRAYECTORIAS PERO SON EXHAUSTIVOS PORQUE EXPANDEN DEMASIADOS NODOS Y DEBEMOSRECORDARQUESIEMPREEXISTENLÓMITES TANTODETIEMPOCOMODEESPACIO PARA ENCONTRARLASOLUCIØNDELPROBLEMA$ENTRODELÈREADERESOLUCIØNDEPROBLEMASDEIN TELIGENCIAARTIlCIALEXISTENOTROSMÏTODOSMÈSElCIENTESQUEINCORPORANCONOCIMIENTO ESTRATEGIA Y HEURÓSTICA Y PERMITEN NO SØLO ENCONTRAR UNA TRAYECTORIA SINO TAMBIÏN LA ØPTIMA

306 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4

 -ÏTODODEBÞSQUEDABREADTH lRST %NELMÏTODODEBÞSQUEDABREADTH lRSTOBÞSQUEDAALOANCHOLOSNODOSSEEXPANDEN ENELORDENENELQUEHANSIDOGENERADOS3EAVANZAPORNIVELESESDECIR PRIMEROSE GENERANTODOSLOSNODOSDELPRIMERNIVEL LUEGOLOSDELSEGUNDO POSTERIORMENTELOSDEL TERCERO Y ASÓ SUCESIVAMENTE HASTA ENCONTRAR EL ESTADO META SIEMPRE QUE SEA POSIBLE ENCUANTOATIEMPOYESPACIOOCUPADOENMEMORIA%LMÏTODOTRABAJACONDOSLISTAS AUXILIARES UNALLAMADA!")%24/YLAOTRA#%22!$/,APRIMERASEUTILIZAPARA ALMACENARLOSNODOSQUEESTÈNPENDIENTESDESEREXPANDIDOSCADANUEVONODOGENERADO SECOLOCASIEMPREALlNALDE!")%24/%N#%22!$/SECOLOCANLOSNODOSQUEYAHAN SIDOEXPANDIDOS!CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO "READTH lRST "READTH?lRST [%STEMÏTODOPERMITEENCONTRARLATRAYECTORIAQUEHACEPOSIBLEIRDEUNESTADOINICIALAUN ESTADOlNAL USANDOLOSOPERADORESPERMITIDOS!")%24/Y#%22!$/SONDOSLISTASLIGADAS ENLASCUALESSEALMACENANLOSNODOSPENDIENTESDESEREXPANDIDOSYLOSNODOSYAEXPANDIDOS RESPECTIVAMENTE]  )NSERTARELNODOINICIALENLALISTA!")%24/  -IENTRAS!")%24/NOESTÏ6!#¶! YNOSEHAYAALCANZADOELESTADOlNAL 2EPETIR 1UITARELPRIMERNODO8DE!")%24/  3IELNODO8NOSEENCUENTRAEN#%22!$/ ENTONCES 0ONERELNODO8ENLALISTA#%22!$/ %XPANDIRELNODO8OBTENIENDOTODOSSUSSUCESORES  3IHAYSUCESORESYNOSONELESTADOlNAL ENTONCES !LMACENARLOSALlNALDE!")%24/YPROVEERAPUNTADORESPARAREGRESARA8  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3ISEGENERØELESTADOlNAL ENTONCES[²XITO] $ESPLEGARTRAYECTORIADELESTADOINICIALALESTADOlNAL SINO[&RACASO] %SCRIBIRh.OSEALCANZØELESTADOlNALv  [&INDELCONDICIONALDELPASO]

%JEMPLO

!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDABREADTH lRSTPARAENCONTRARUNATRAYECTORIAENTREDOSNODOS%LPROBLEMACONSISTEENENCONTRAR UNATRAYECTORIADE3A+ DELAGRÈlCAPRESENTADAENLAlGURA TOMANDOELORDEN ALFABÏTICOCOMOBASEPARAELORDENDEAPLICACIØNDELOSOPERADORES %NLAlGURASEOBSERVAQUEPARAESTEPROBLEMA LASOLUCIØNALCANZADAES 3 ! # % * +

 3&40-6$*Î/%&130#-&."4 &)'52! "ÞSQUEDABREADTH lRST

&)'52! 4RAYECTORIAENCONTRADA 3 ! # % * +

9AFUERONEXPANDIDOS

307

308 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 LACUALSEINDICACONUNAmECHAENCOLOR%NELESTADOINICIAL 3 SEOBTIENENTODOSSUS SUCESORES LOSCUALES SEGÞNLAGRÈlCADELAlGURA SON!Y'#OMONINGUNODELOS DOSESELESTADOMETA SECONTINÞAEXPANDIENDOCADAUNODEESTOSNODOS!SÓ PARA!SE OBTIENEN" #Y' MIENTRASQUEPARA'SEGENERARON!Y(%NAMBOSCASOSSEOBTUVIE RONNODOS'Y! CONLOSQUEYASECONTABAPOREXPANSIONESANTERIORESPORLOTANTO SE IGNORAN%NLAGRÈlCA ESTOSCASOSSESE×ALANCON %NLAlGURASEOBSERVACLARAMENTE QUETODASLASRAMASDELÈRBOLCRECEN ENPROFUNDIDAD DEIGUALMANERA

%JEMPLO

!CONTINUACIØNSEPRESENTAOTROEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDABREADTH lRST PEROAHORAPARARESOLVERELPUZZLE %NESTECASOSEUSANLISTASPARAREPRESENTAR LOSNODOS

.OTA 3E UTILIZA EL  EN LUGAR DEL RECTÈNGULO PARA INDICAR CELDA VACÓA SIMPLEMENTE PARA MANTENER LA HOMOGENEIDADDELOSDATOS

#ABERECORDARQUESEUSANLASLISTAS!")%24/Y#%22!$/PARAALMACENARLOS NODOSQUESEVANAEXPANDIRENALGÞNMOMENTOYLOSQUEYAHANSIDOEXPANDIDOS RES PECTIVAMENTE%STAÞLTIMALISTATAMBIÏNSEUTILIZAPARARECUPERARLATRAYECTORIADESDEEL ESTADOINICIALALESTADOMETA UNAVEZQUESEALCANZAESTAÞLTIMA4AMBIÏNESIMPORTANTE REMARCARQUECADAVEZQUESEEXPANDEUNNODOESNECESARIOVERIlCARQUESUCONTENIDO NOSEENCUENTREENLALISTA#%22!$/ PARAEVITARCAERENCICLOSINlNITOS3IEXPANDE MOSUNNODOQUEYASEENCUENTRAEN#%22!$/ ENTONCESCAEMOSENUNCICLO YADE MÈSDESERMUYDIFÓCILSALIRDEÏL ESCASIIMPOSIBLEENCONTRARLASOLUCIØNDELPROBLEMA ˆESTADOMETAˆ

 3&40-6$*Î/%&130#-&."4

309

,A lGURA  PRESENTA LA SOLUCIØN AL PROBLEMA DEL PUZZLE  ,OS OPERADORES SE APLICANSIGUIENDOLAFORMADELASMANECILLASDELRELOJIZQUIERDA ARRIBA DERECHAYABAJO ← ↑ → ↓3EPRESENTANACONTINUACIØNLASLISTAS!")%24/Y#%22!$/FORMADAS DURANTELASOLUCIØNDELPROBLEMA,ASLÓNEASHORIZONTALESSOBRELAINFORMACIØNDELOS NODOSINDICANQUEDICHONODOSEQUITØDELALISTA!")%24/#OMOSEOBSERVA ENLAS DOSLISTASSEINCORPORASOLAMENTELAINFORMACIØNDELNODOPORPROBLEMASDEESPACIO%N UNAAPLICACIØNREALESABSOLUTAMENTENECESARIOINCLUIRELCONTENIDOCOMPLETODELNODO /BSERVEQUEPARAELESTADOINICIALLAINFORMACIØNDEESENODOES.), %L PRIMERNÞMERO  INDICAELNÞMERODELNODOELSEGUNDO  INDICASUPADRE ELTERCERO  ELNIVELENQUENOSENCONTRAMOSYELÞLTIMO .), ELOPERADORAPLICADO

&)'52! 3OLUCIØNALPROBLEMADELPUZZLE 

310 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 !")%24/

#%22!$/

.), ← → ↓ → ↓ ↓ ↓ ↓ ↓ ↓ ↓ ← → ↓

.), ← .), → ← .), ↓ → ← .), ↓ ↓ → ← .),

5NAVEZQUESEALCANZAELESTADOMETASEPUEDEOBTENERINFORMACIØNMUYVALIOSA DELCAMPO)NFORMACIØNDELNODO%NESTEEJEMPLO→ ELNÞMEROINDICAQUE SEHANGENERADOn NODOS!SIMISMO ELINDICAQUEELESTADOMETASEENCONTRØEN ELNIVELY PORLOTANTO SENECESITAAPLICARTRESOPERADORESPARARESOLVERELPROBLEMA 0OROTRAPARTE LATRAYECTORIASEDEBEOBTENERDE#%22!$/DELASIGUIENTEMANERA → ↓ ← .),

PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO

,ASOLUCIØNENLENGUAJEDEESTADOSYOPERADORESES ←↓→ 2ECUERDEQUEENELLENGUAJEDEESTADOSYOPERADORES LASOLUCIØNAUNPROBLEMA CONSISTE EN ENCONTRAR LA SECUENCIA DE OPERADORES QUE PERMITEN TRANSFORMAR EL ESTADO INICIALENELlNAL

%JEMPLO

!CONTINUACIØNSEPRESENTAOTROEJEMPLODEUSODELMÏTODODEBÞSQUEDABREADTH lRST %NESTECASO ELMÏTODOPERMITEPROBARSIUNACADENADADACOMOENTRADAFUEGENERADAO NOPORCIERTAGRAMÈTICA0ARAESTEPROBLEMALOSOPERADORESSEDElNENENTÏRMINODELAS SIGUIENTESREGLASDEREESCRITURA     

αβ → γ αγ → γ γβ → γ γγ → γ γ→Σ

%NLAlGURASEPRESENTALAGRÈlCACONLOSNODOSGENERADOSAPARTIRDELESTADO INICIALαβααβαβHASTAALCANZARELESTADOMETAΣ%L DEBAJODEUNNODOINDICAQUE DICHONODOYAEXISTEY PORLOTANTO SEELIMINAPARAEVITARLOSCICLOS#OMOENELEJEM PLOANTERIOR LASLISTAS!")%24/Y#%22!$/ALMACENANLOSNODOSPENDIENTESDESER EXPANDIDOSYAQUELLOSQUEYAHANSIDOEXPANDIDOS,ASLÓNEASHORIZONTALESSOBREALGU NOSNODOSINDICANQUEÏSTOSFUERONELIMINADOSDE!")%24/PORHABERSIDOEXPANDIDOS ANTERIORMENTE PARANOCAERENCICLOSINlNITOS

 3&40-6$*Î/%&130#-&."4 &)'52! .ODOSGENERADOSPARA LLEGARALESTADOMETA

!")%24/ .IL                                    

311

312 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4                   



                  

                  

                 

       

      



    





↓  3OLUCIØN #%22!$/ .),  .),   .),    .),     .),      .),       .),        .),         .),          .),           .),             .),              .),               .),                .),                 .),                  .),                   .),

 3&40-6$*Î/%&130#-&."4

313

,ATRAYECTORIAQUEPERMITELLEGARALASOLUCIØNESLASIGUIENTE        .), %LESTADOMETAESELNODO %LTOTALDENODOSGENERADOSESYFUERON NECESARIOSSIETENIVELESPARAALCANZARLASOLUCIØN,OSOPERADORESˆREGLASDEREESCRITU RAˆAPLICADOSPARAALCANZARELESTADOMETAPARTIENDODELESTADOINICIALSON  αβ  αβ  αβ  αγ  γγ  γγ  γ

%JEMPLO

→γ →γ →γ →γ →γ →γ →Σ

/TROEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDABREADTH lRSTESELCONOCIDOCOMO PROBLEMADELASJARRASDEAGUA3ETIENENDOSJARRAS UNACONCAPACIDADPARACUATROLI TROSYOTRAPARATRES.INGUNADEELLASTIENEMARCASDEMEDICIØN!DEMÈS SEDISPONEDE UNABOMBADEAGUAQUEPERMITELLENARLASJARRASDEAGUATANTASVECESCOMOSEREQUIERA %LPROBLEMACONSISTEENENCONTRARLAFORMADECOLOCAREXACTAMENTEDOSLITROSDEAGUA ENLAJARRADECUATROLITROS%NESTEPROBLEMASEPARTEDEUNESTADOINICIALYEXISTENVA RIASMANERASDEALCANZARELESTADOlNAL PARTICULARIDADQUELOCONVIERTEENUNCASOMUY INTERESANTE ,OSELEMENTOSDELPROBLEMASEALMACENANENUNALISTAFORMADAPORLASVARIABLES 8Y9 LASCUALESASUVEZREPRESENTARÈNALASJARRASDECUATROYTRESLITROSDECAPACIDAD RESPECTIVAMENTE 8*ARRADECUATROLITROS QUEPUEDETOMARLOSVALORES     9*ARRADETRESLITROS QUEPUEDETOMARLOSVALORES    0ARAESTEPROBLEMALOSOPERADORESVÈLIDOSSONLOSQUESEMUESTRANENLATABLA

4!",! /PERADORESPARAEL PROBLEMADELAJARRA

)DENTIlCADOR DELOPERADOR

$ESCRIPCIØNDELAOPERACIØN



,LENARLAJARRADECUATROLITROS



,LENARLAJARRADETRESLITROS



6ACIARENELSUELOLAJARRADECUATROLITROS



6ACIARENELSUELOLAJARRADETRESLITROS



6ERTERDELAJARRADECUATROLITROSALADETRES HASTAQUELASEGUNDASELLENEO LAPRIMERAQUEDEVACÓA



6ERTERDELAJARRADETRESLITROSALADECUATRO HASTAQUELASEGUNDASELLENEO LAPRIMERAQUEDEVACÓA

314 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 %LESTADOINICIALYELlNALDELPROBLEMASEDElNENCOMO

%STADOINICIAL  !MBASJARRASESTÈNVACÓAS %STADOlNAL . ,AJARRA8TIENEDOSLITROSYLAJARRA9TIENE. DONDE.   

/BSERVEQUEESTEPROBLEMAMUESTRALAPARTICULARIDADDETENERUNESTADOINICIALY MÞLTIPLESESTADOSlNALESˆˆ%NLAlGURASEPRESENTALAGRÈlCACONLOSNODOS GENERADOSPARAALCANZARLASOLUCIØN#OMOENLOSEJEMPLOSANTERIORES ELASTERISCOSE UTILIZAPARAINDICARQUEDICHONODOYAFUEGENERADOY PORLOTANTO SEIGNORA

&)'52! .ODOSGENERADOSPARAALCANZARLASOLUCIØN

 3&40-6$*Î/%&130#-&."4

315

!CONTINUACIØNSEPRESENTANLASLISTAS!")%24/Y#%22!$/DONDESEGUARDAN RESPECTIVAMENTE LOSNODOSGENERADOSYEXPANDIDOS,ASLÓNEASATRAVESADASSOBREALGU NOSNODOSINDICANQUEÏSTOSFUERONELIMINADOSPORHABERSIDOEXPANDIDOSANTERIORMEN TE%LASTERISCODEBAJODEUNNODOINDICAQUEÏSTEYAEXISTEY PORLOTANTO SEELIMINA PARAEVITARCAERENCICLOS,AIGUALDADSEDETECTAALCOMPARARELCONTENIDODELNODOQUE SEQUIEREEXPANDIRCONELDEAQUELLOSQUEYASEENCUENTRANEN#%22!$/ !")%24/ .),                   



        



         





        



         





       



        ↓

 %STADOMETA #%22!$/ .),  .),   .),    .),     .),      .),       .),        .),         .),          .),           .),

%LESTADOMETASEENCUENTRAENELNODO %LTOTALDENODOSGENERADOSES n YELTOTALDENIVELESES,ATRAYECTORIAQUEDESCRIBELASOLUCIØNSERECUPERA DELALISTA#%22!$/        .),

316 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 #ONSIDERANDOLADESCRIPCIØNDELASOPERACIONESASOCIADASALOSOPERADORESˆTABLA ˆ LASOLUCIØNENLENGUAJEDEESTADOSYOPERADORESES       %STASECUENCIADEOPERADORESINDICAQUEPRIMEROSEDEBELLENARLAJARRA8ˆREQUIE RECUATROLITROSˆYLUEGOVERTERESAAGUAENLAJARRA9ˆSØLOSEUSARÈNTRESDELOSCUATRO LITROSˆ%LSIGUIENTEOPERADORINDICAQUESEDEBEVACIARLAJARRA9 ARROJANDOELAGUA QUECONTIENEALPISO0OSTERIORMENTESECOLOCAELLITRORESTANTEDELAJARRA8ENLAJARRA9 QUEDANDOLAPRIMERAVACÓAYLASEGUNDACONUNLITRO,UEGOSELLENALAJARRA8ˆUSANDO CUATROLITROSˆ0ORÞLTIMO SEPASAAGUADELAJARRA8ALAJARRA9HASTAQUEÏSTASELLENE ˆLOCUALSELOGRACONSØLODOSLITROSˆPORLOTANTO LAJARRA8SEQUEDACONLOSOTROS DOSLITROS ALCANZANDOASÓELESTADOMETA

#OMPLEJIDADDELMÏTODOBREADTH lRST ,ACOMPLEJIDADDELMÏTODOBREADTH lRSTES/BD DONDEBREPRESENTAELFACTORDERA MIlCACIØNDELNODOYDLAPROFUNDIDADDELÈRBOL3UPONIENDOQUEB LAVELOCIDAD DEEXPANSIØNDENODOSPORSEGUNDOYLACAPACIDADDEALMACENAMIENTOBYTES POR NODO EN LA TABLA  SE OBSERVA EN TIEMPO Y ESPACIO LA COMPLEJIDAD DEL MÏTODO BREADTH lRST %SIMPORTANTEDESTACARQUECUANDOSEUTILIZAELMÏTODOBREADTH lRSTSEDEBEEN CONTRARLASOLUCIØNENLOSPRIMEROSSEISNIVELES PORQUEDEOTRAFORMAAPARECERÈNSERIOS PROBLEMASENCUANTOATIEMPOYESPACIO/BSERVEQUEENELNIVELYASENECESITAN HORASPARARESOLVERELPROBLEMAYGIGABYTES

 -ÏTODODEBÞSQUEDADEPTH lRST %NELMÏTODODEBÞSQUEDADEPTH lRST CONOCIDOCONELNOMBREDEBÞSQUEDAENPROFUN DIDADENELMUNDODEHABLAHISPANA SEEXPANDEELNODOMÈSRECIENTEMENTEGENERADO

4!",! #OMPLEJIDADBREADTH lRST /BD

0ROFUNDIDAD

.ODOS

4IEMPO

-EMORIA





MILISEGUNDO

BYTES





SEGUNDO

+B





SEGUNDOS

-B





MINUTOS

-B







HORAS

'B





DÓAS

4B







A×OS

4B





A×OS

4B

 3&40-6$*Î/%&130#-&."4

317

ESTOÞLTIMOPERMITEREALIZARUNABÞSQUEDAENPROFUNDIDADENLUGARDEHACERLOENFORMA HORIZONTALCOMOENELMÏTODODEBÞSQUEDAALOANCHO,APROFUNDIDADDELNODOINICIAL ESCEROYLADEUNNODOQUENOESINICIALESIGUALAUNOMÈSLAPROFUNDIDADDESUPADRE .ORMALMENTESEESTABLECEUNLÓMITEMÈXIMODEPROFUNDIDADPERMITIDO QUEASU VEZESTABLECEELNÞMEROMÈXIMODENIVELESQUESEPUEDENGENERARENLABÞSQUEDADELA SOLUCIØN3ISELLEGAALLÓMITEESTABLECIDOSINHABERALCANZADOELESTADOMETA ENTONCES SECONSIDERAQUEELPROBLEMANOTIENESOLUCIØN!CONTINUACIØNSEPRESENTAELALGORITMO CORRESPONDIENTE !LGORITMO $EPTH lRST

$EPTH &IRST [%STEMÏTODOPERMITEENCONTRARELESTADOMETADEUNPROBLEMA APARTIRDEUNESTADOINICIALY USANDOLOSOPERADORESPERMITIDOSPARADICHOPROBLEMA0ESUNENTEROQUEINDICAELLÓMITEDE PROFUNDIDADPERMITIDO!")%24/Y#%22!$/SONDOSLISTASLINEALESSIMPLEMENTELIGADAS]  )NSERTARELNODOINICIALENLALISTALLAMADA!")%24/  -IENTRAS!")%24/TENGAELEMENTOS YNOSEHAYALLEGADOALESTADOlNAL 2EPETIR 1UITARELPRIMERNODO.DE!")%24/  3I.NOESTÈEN#%22!$/ YSUPROFUNDIDADES≤0 ENTONCES )NSERTARELNODO.ENLALISTA#%22!$/ %XPANDIRELNODO.OBTENIENDOTODOSSUSSUCESORES  3IHAYSUCESORESYNOSONELESTADOMETA ENTONCES !LMACENARLOSALINICIODELALISTA!")%24/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3IALGUNODELOSNODOSGENERADOSESELESTADOMETA ENTONCES[²XITO] $ESPLEGARLATRAYECTORIADESDEELESTADOINICIALALlNAL SINO[&RACASO] .OSEENCONTRØELESTADOlNAL  [&INDELCONDICIONALDELPASO]

%NESTEALGORITMOSEMANEJAUNVALORADICIONAL 0 QUEREPRESENTALAPROFUNDIDAD MÈXIMAPERMITIDA!LRESOLVERELPROBLEMASEVERIlCASIELNODOYATIENEESAPROFUN DIDAD%NCASOAlRMATIVO SEELIMINADELALISTA!")%24/YSEAPLICABACKTRACKINGES DECIR SECONTINÞAELANÈLISISCONELNODOINMEDIATAMENTEANTERIORDELÈRBOLDEDERIVA CIØN!DEMÈS ESIMPORTANTEDESTACARQUEMIENTRASENELMÏTODOBREADTH lRSTLOSNODOS GENERADOSSEALMACENANALlNALDE!")%24/ ENELMÏTODODEPTH lRSTSECOLOCANAL INICIO

318 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 %JEMPLO

!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDADEPTH lRST3ERETOMAELPROBLEMADELPUZZLE  PEROAHORASESOLUCIONAPORMEDIODEESTE MÏTODO3EPARTEDEUNESTADOINICIALYSEDElNEUNESTADOlNALALCUALSEQUIERELLEGAR

%STADOINICIAL





%STADOlNAL





































%LESTADOINICIALSEREPRESENTADELASIGUIENTEMANERA

.IL

)NFORMACIØNDELNODO







#ONTENIDODELNODO

!DEMÈSSEESTABLECEUNLÓMITEDEPROFUNDIDADIGUALA%NLAlGURASEPRE SENTALAGRÈlCACONLOSNODOSGENERADOSHASTALLEGARALASOLUCIØN,ASLÓNEASPUNTEADAS INDICANBACKTRACKING UNMÏTODOQUEDESHACEPARTEDELATRAYECTORIAGENERADACUANDO ÏSTANOPERMITELLEGARALASOLUCIØN !CONTINUACIØNSEPRESENTANLASLISTAS!")%24/Y#%22!$/DONDESEGUARDAN RESPECTIVAMENTE LOSNODOSGENERADOSYLOSEXPANDIDOS,ASLÓNEASHORIZONTALESINDICAN QUEDICHOSNODOSFUERONELIMINADOSYASEAPORHABERSIDOEXPANDIDOSANTERIORMENTEO PORHABERLLEGADOALAPROFUNDIDADLÓMITEESTABLECIDA%LASTERISCODEBAJODEUNNODO INDICAQUEÏSTEYAEXISTEOQUESUPROFUNDIDADESIGUALALAMÈXIMAESTABLECIDAPORLO TANTO SEELIMINAPARAEVITARCAERENCICLOS

!")%24/ .), ← ↑ → ↓ ↑ ↓ ↑ → ↓ → ↓ ↑ → ↓ → ↓ ↓ ↑ → ↓

→ ↑ → ↓ → → ↑ → ↓

← → → ↓ ↓ → → ↓ ↓

→ %STADOMETA

 3&40-6$*Î/%&130#-&."4

&)'52! 3OLUCIØNALPROBLEMA DELPUZZLE APLICANDO DEPTH lRST

319

320 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 #%22!$/ .), ← .), ↑ ← .), → ↑ ← .), ↓ → ↑ ← .), → ↓ → ↑ ← .), ↑ → ↓ → ↑ ← .), ← ↑ → ↓ → ↑ ← .), ↓ ← ↑ → ↓ → ↑ ← .), %LESTADOMETASEENCUENTRAENELNODO→ %LTOTALDENODOSGENERADOSES n YESELNIVELDONDEENCONTRAMOSELESTADOMETA,ATRAYECTORIAQUEDESCRIBE LASOLUCIØNSERECUPERADELALISTA#%22!$/ → ↓ ← ↑ .), ,ASOLUCIØNEXPRESADAENLENGUAJEDEESTADOSYOPERADORESQUEDADELASIGUIENTE MANERA ↑←↓→ ,OSMÏTODOSDEBÞSQUEDAANALIZADOS BREADTH lRSTYDEPTH lRST SECONOCENCOMO CIEGOS YAQUESONMÏTODOSEXHAUSTIVOS%NPRINCIPIO ESTOSMÏTODOSPROPORCIONANUNA SOLUCIØNPARAENCONTRARUNATRAYECTORIA PEROSONPOCOPRÈCTICOSPORQUEEXPANDENDE MASIADOS NODOS ADEMÈS SABEMOS QUE EXISTEN LÓMITES EN CUANTO A TIEMPO Y ESPACIO ˆMEMORIAˆ5SANDOINFORMACIØNESPECIALDELPROBLEMAYSUREPRESENTACIØNSEPUEDE AUMENTARLAVELOCIDAD%SAINFORMACIØNSEDENOMINAINFORMACIØNHEURÓSTICA %NELCAMPODELASOLUCIØNDEPROBLEMAS HEURÓSTICASIGNIlCAACELERARELPROCESO DEBÞSQUEDAHACIALAMETAMEDIANTELAEXPANSIØNDELOSNODOSMÈSPROMISORIOS5NO DELOSTEMASQUEOCUPAALAINTELIGENCIAARTIlCIALESPRECISAMENTEELESTUDIODEMÏTODOS HEURÓSTICOS %NRESUMEN LOSMÏTODOSANALIZADOSPUEDENMEJORARCONSIDERABLEMENTESUDESEM PE×OSILESINCORPORAMOSCONOCIMIENTOYHEURÓSTICA5NODELOSMÏTODOSHEURÓSTICOSDE MEJORCOMPORTAMIENTOSECONOCECOMO! 

 ,!#,!3%'2­&)#! 0ARADElNIRLACLASEGRÈlCASEREQUIEREDETERMINARSUSATRIBUTOSYLOSMÏTODOSNECESA RIOSPARASUMANEJO,OSATRIBUTOSSONLOSVÏRTICESYARISTAS INDICANDOENESTASÞLTIMAS SITIENENDIRECCIØNYCOSTO0ARASUREPRESENTACIØNSEPUEDEUTILIZARCUALQUIERADELAS ESTRUCTURASPRESENTADAS%NCUANTOALOSMÏTODOS ÏSTOSSERÈNLOSQUEPERMITANENCONTRAR UNVÏRTICE IMPRIMIRLAINFORMACIØNDEVÏRTICESYARISTAS ASÓCOMOENCONTRARTRAYECTORIAS SEGÞNELTIPODEGRÈlCAQUESEESTÏREPRESENTANDO %SRECOMENDABLEQUESEDElNAUNACLASEPORTIPODEGRÈlCA%SDECIR UNAPARALAS GRÈlCASDIRIGIDASYOTRAPARALASGRÈlCASNODIRIGIDAS%NCADAUNADEELLASSEDEBERÈ INCLUIR COMOMÏTODOS LOSALGORITMOSESTUDIADOSENESTECAPÓTULO

&+&3$*$*04

321

▼ %*%2#)#)/3 Ê £° 0ARACADAUNADELASGRÈlCASDELAlGURAINDIQUE A B C D E F G H I

!QUELLASQUESONGRÈlCASCONECTADAS !QUELLASQUESONGRÈlCASCÓCLICAS !QUELLASQUESONGRÈlCASCONEXAS !QUELLASQUESONGRÈlCASCOMPLETAS 4ODOSLOSPARESDEVÏRTICESADYACENTES 5NCAMINOENTRELOSVÏRTICESAYC SIESPOSIBLE 5NCAMINOCERRADOENTRECUALQUIERPARDEVÏRTICES SIESPOSIBLE 5NCAMINOSIMPLEENTRECUALQUIERPARDEVÏRTICES SIESPOSIBLE %LGRADODECADAVÏRTICE

Ê Ó° 5TILICEUNAMATRIZDEADYACENCIAYUNALISTASIMILARPARAREPRESENTARLASGRÈlCASDE LAlGURAAYB Ê Î° 5TILICEUNAMATRIZDEADYACENCIAYUNALISTADEADYACENCIAPARAREPRESENTARLADIGRÈ lCADELAlGURA

&)'52!

322 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4

&)'52!

Ê {° 5TILICEUNAMATRIZDECOSTOSPARAREPRESENTARLAGRÈlCADELAlGURA Ê x° 5TILICEUNAMATRIZDECOSTOSPARAREPRESENTARLASDIGRÈlCASDELAlGURAAYB Ê È° $ADALADIGRÈlCAREPRESENTADAENLAlGURA INDIQUECUÈLESDELASSIGUIENTES SUCESIONESDEÓNDICESDESCRIBENUNCAMINOENELLA A B C D E

&)'52!

    

&+&3$*$*04 &)'52!

Ê Ç° $ADALADIGRÈlCADELAlGURA ENCUENTREUNCAMINOACÓCLICODE A B C D E

A A A A A

Ê n° $ADALADIGRÈlCADELAlGURA A %NCUENTRELATRAYECTORIAMÈSCORTADELVÏRTICEAATODOSLOSOTROSVÏRTICES B 5TILICEUNAMATRIZDECOSTOSPARAREPRESENTARLA

&)'52!

323

324 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 &)'52!

Ê ™° $ADALASIGUIENTEMATRIZDEADYACENCIA DIBUJELAGRÈlCACORRESPONDIENTE

&)'52!

&+&3$*$*04

325

£ä°$ADALASIGUIENTEMATRIZDEADYACENCIA DIBUJELADIGRÈlCACORRESPONDIENTE

££°$ADALASIGUIENTEMATRIZDECOSTOS DIBUJELADIGRÈlCACORRESPONDIENTE

£Ó°!PLIQUEELALGORITMODE$IJKSTRAALADIGRÈlCADELAlGURAB4OMEELVÏRTICEA COMOVÏRTICEORIGEN#ONSTRUYALATABLACORRESPONDIENTEALSEGUIMIENTODELALGORIT MO £Î°!PLIQUEELALGORITMODE&LOYDALADIGRÈlCADELAlGURA#ONSTRUYALATABLA CORRESPONDIENTEALSEGUIMIENTODELALGORITMO £{°!PLIQUEELALGORITMODE7ARSHALLALADIGRÈlCADELAlGURA#ONSTRUYALATABLA CORRESPONDIENTEALSEGUIMIENTODELALGORITMO

326 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 £x°!PLIQUEELALGORITMODE0RIMALAGRÈlCADELAlGURA#ONSTRUYALATABLACO RRESPONDIENTEALSEGUIMIENTODELALGORITMO £È°!PLIQUEELALGORITMODE+RUSKALALAGRÈlCADELAlGURA#ONSTRUYALATABLA CORRESPONDIENTEALSEGUIMIENTODELALGORITMO £Ç°%SCRIBAUNALGORITMOQUEPERMITAALMACENARUNAGRÈlCAPORMEDIODE A 5NAMATRIZDEADYACENCIA B 5NALISTADEADYACENCIA £n°%SCRIBAUNALGORITMOQUEPERMITAALMACENARUNADIGRÈlCAPORMEDIODEUNAMATRIZ DECOSTOS £™°%SCRIBAUNALGORITMOQUEPERMITA DADAUNAGRÈlCAALMACENADAPORMEDIODEUNA MATRIZDEADYACENCIA IMPRIMIRTODOSLOSPARESDEVÏRTICESADYACENTES Óä°%SCRIBAUNAVERSIØNMODIlCADADELALGORITMODE$IJKSTRAQUEPERMITAELEGIRELCA MINOCONELMENORNÞMERODEARISTAS ENCASODETRAYECTORIASCONIGUALCOSTO Ó£°%SCRIBAUNALGORITMOQUEPERMITAELIMINARLASARISTASNECESARIASPARAOBTENER COMO RESULTADO UNAGRÈlCAACÓCLICA ÓÓ°#ONSIDEREQUEHAYCUATROTIPOSDESANGRE! " !"Y/!DEMÈS SESABEQUEELTIPO /ESCOMPATIBLEhPUEDEDONARAv CONCUALQUIERADELOSCUATROTIPOSELTIPO!ES COMPATIBLECONSUTIPOYCONELTIPO!"ELTIPO"ESCOMPATIBLECONSUTIPOYCON ELTIPO!" YELTIPO!"SØLOPUEDEDONARASUMISMOTIPO5TILICEUNAGRÈlCAPARA REPRESENTARESTAINFORMACIØNz1UÏTIPODEGRÈlCASERÈLAMÈSAPROPIADA*USTIlQUE SURESPUESTA Óΰ0IENSEENLARECETAPARAPREPARARSUPLATILLOFAVORITO,ASOPERACIONESINVOLUCRADAS JUNTOCONELTIEMPOREQUERIDOPARASUREALIZACIØN PUEDENREPRESENTARSEPORMEDIO DEUNAGRÈlCA%NELLASEPUEDENINDICARLASTAREASAREALIZARSIMULTÈNEAMENTE ASÓ COMOAQUELLASQUEDEBENSEGUIRCIERTASERIACIØN5TILICEUNAGRÈlCAYREPRESÏNTELA CONSIDERANDOQUE A 5STEDNOCUENTACONAYUDAY PORLOTANTO VAALLEVARACABOCADAUNADELASACTIVI DADESREQUERIDAS B 5STEDCUENTACONTANTOSAYUDANTESCOMODESEEY PORLOTANTO CIERTASTAREASSEPUE DENREALIZARPARALELAMENTE Ó{°3EQUIEREREPRESENTARUNATOPOLOGÓADEUNAREDTELEFØNICA DONDESEDISTINGUENCEN TRALESDECONMUTACIØNYENLACESENTRELASCENTRALES,OSENLACESENTRELASCENTRALES SONBIDIRECCIONALESYCONDIFERENTESCAPACIDADESDETRANSMISIØNCANALESDEVOZ  5TILICEUNAGRÈlCAPARAREPRESENTARUNAREDDEESTETIPOz1UÏTIPODEGRÈlCASERÈ LAMÈSAPROPIADAz#ØMOSEMODIlCALAGRÈlCASICAMBIANLASCAPACIDADESz1UÏ OPERACIONESSOBREESTAGRÈlCAPODRÓANSERDEINTERÏS*USTIlQUESUSRESPUESTAS

&+&3$*$*04

327

Óx°3E TIENE UN ALFABETO QUE CONSISTE EN TODAS LAS PALABRAS BINARIAS DE TRES BITS!L TRANSMITIRLOSATRAVÏSDEUNCANALCONRUIDOSEORIGINANCAMBIOS Y PORLOTANTO SE ORIGINATRANSICIØNENTRELASPALABRASTRANSMITIDAS0OREJEMPLO SILAPALABRATRANS MITIDAES LARECIBIDAPODRÓASER3UPONGAQUEENCADAPALABRATRANSMITIDA PUEDEHABERSØLOUNDÓGITOCONERROR#ONUNAGRÈlCAREPRESENTETODASLASPALABRAS DELALFABETOYLASTRANSICIONESQUEPUEDENORIGINARSEAOTRASPALABRASALTRANSMITIRLAS ATRAVÏSDELCANALCONRUIDOz1UÏTIPODEGRÈlCASERÈLAMÈSAPROPIADA*USTIlQUE SURESPUESTA ÓÈ°3ETIENENTRESJARRASDEAGUACONCAPACIDADESDECINCO TRESYSIETELITROS.INGUNA DEELLASPRESENTAMARCASDEMEDICIØN3ETIENEUNABOMBAQUEPERMITELLENARLASJA RRASDEAGUAz#ØMOSEPUEDENCOLOCAREXACTAMENTECUATRO LITROSDEAGUAENLA JARRADECINCOLITROSDECAPACIDAD ÓÇ°4RESMISIONEROSYTRESCANÓBALESSEENCUENTRANSOBRELAORILLADEUNRÓO4ODOSQUIE RENLLEGARALAOTRAORILLA PEROÞNICAMENTEHAYUNBOTEPARADOSPERSONAS,OSMI SIONEROS PARANOCORRERELRIESGODESERCOMIDOS QUIERENQUESUNÞMERONUNCASEA MENORQUEELDECANÓBALESENELMISMOLADODELRÓOz#ØMOPUEDENCRUZARTODOSSIN QUELOSMISIONEROSESTÏNENPELIGRO Ón°-UESTREQUELACADENA     PERTENECEALLENGUAJEGENERADOPORLA GRAMÈTICA' APLICANDOLASSIGUIENTESREGLASDEREESCRITURA    

3← !←3 !←! ! 3←!

ә°#ONSIDEREELESTADOINICIAL ELESTADOlNALYLOSOPERADORESQUESEDANACONTINUA CIØN%NCUENTRELASOLUCIØNALPROBLEMA

328 >«‰ÌՏœÊÇÊ Ê Ê (3Ç'*$"4 Îä°$ElNALACLASE'RÈlCA CORRESPONDIENTEAUNAGRÈlCANODIRIGIDA UTILIZANDOUNA MATRIZDECOSTOSPARAALMACENARLASARISTASYSUSCOSTOS Σ°2ETOMEELPROBLEMAANTERIOREINCLUYALOSMÏTODOSNECESARIOSPARAIMPLEMENTARLOS ALGORITMOSDE0RIMY+RUSKAL ÎÓ°$ElNA LA CLASE $IGRÈlCA CORRESPONDIENTE A UNA GRÈlCA DIRIGIDA UTILIZANDO UNA LISTADEADYACENCIAPARAALMACENARLASARISTASYSUSCOSTOS0UEDEREUSARLACLASE ,ISTASDELCAPÓTULO Îΰ2ETOMEELPROBLEMAANTERIOREINCLUYAENLACLASELOSMÏTODOSNECESARIOSPARAIM PLEMENTARLOSALGORITMOSDE$IJKSTRA &LOYDY7ARSHALL

#APÓTULO

n

-³4/$/3 $%/2$%.!#)¼.  ).42/$5##)¼. /RDENARSIGNIlCAREAGRUPAROREORGANIZARUNCONJUNTODEDATOSUOBJETOSENUNASE CUENCIAESPECÓlCA,OSPROCESOSDEORDENACIØNYBÞSQUEDAˆESTEÞLTIMOSEESTUDIARÈ EN EL SIGUIENTE CAPÓTULOˆ SON FRECUENTES EN NUESTRA VIDA6IVIMOS EN UN MUNDO DE SARROLLADO AUTOMATIZADO ACELERADO DONDELAINFORMACIØNREPRESENTAUNELEMENTODE VITALIMPORTANCIA,ASOCIEDADDEBEESTARINFORMADAY PORLOTANTO CONSTANTEMENTESE NECESITABUSCARYRECUPERARINFORMACIØN ,AOPERACIØNDEBÞSQUEDAˆRECUPERACIØNˆDEINFORMACIØNNORMALMENTESEEFEC TÞASOBREELEMENTOSORDENADOS LOQUEDEMUESTRAQUE ENGENERAL DONDEHAYAOBJETOS QUESEDEBANBUSCARYRECUPERARESTARÈPRESENTEELPROCESODEORDENACIØN ,OSOBJETOSORDENADOSAPARECENPORDOQUIER$IRECTORIOSTELEFØNICOS REGISTROSDE PACIENTESDEUNHOSPITAL REGISTROSDEHUÏSPEDESDEUNHOTEL ÓNDICESDELIBROSDEUNABI BLIOTECA SONTANSØLOALGUNOSEJEMPLOSDEOBJETOSORDENADOSCONLOSQUEELSERHUMANO SEENCUENTRAFRECUENTEMENTE)NCLUSOYDEMANERAINFORMALSEPUEDESE×ALARQUEDESDE NI×OSENOSENSE×AASERORGANIZADO APONERLASCOSASENORDEN ,AORDENACIØNESUNAACTIVIDADFUNDAMENTALYRELEVANTEENLAVIDA)MAGINEELLEC TORQUÏOCURRIRÓASISEDESEARAENCONTRARUNLIBROENUNABIBLIOTECACONMÈSDE VOLÞMENESYÏSTOSESTUVIERANDESORDENADOSOREGISTRADOSENLOSÓNDICESENELORDENENEL CUALFUERONRECIBIDOSO POREJEMPLO SISEQUISIERAHABLARPORTELÏFONOCONUNAPERSONA YSEENCONTRARAQUEENELDIRECTORIOLOSABONADOSESTÈNORDENADOSSEGÞNSUNÞMEROTE LEFØNICO ENFORMAASCENDENTEODESCENDENTE,ATAREASERÓAMAYÞSCULA PEROSINNINGÞN SENTIDO &ORMALMENTESEDElNEORDENACIØNDELASIGUIENTEMANERA 3EA!UNALISTADE.ELEMENTOS ! ! !  !. /RDENARSIGNIlCAPERMUTARESTOSELEMENTOSDETALFORMAQUEQUEDENDEACUERDOCON UNADISTRIBUCIØNPREESTABLECIDA

330 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ◗ ◗

!SCENDENTE!≤!≤!≤≤!. $ESCENDENTE!≥!≥!≥≥!.

%NELPROCESAMIENTODEDATOSALOSMÏTODOSDEORDENACIØNSELESCLASIlCAENDOS GRANDESCATEGORÓAS SEGÞNDONDEHAYANSIDOALMACENADOS ◗ ◗

/RDENACIØNDEARREGLOS /RDENACIØNDEARCHIVOS

,APRIMERACATEGORÓASEDENOMINATAMBIÏNORDENACIØNINTERNA YAQUELOSELEMEN TOSOCOMPONENTESDELARREGLOSEENCUENTRANENLAMEMORIAPRINCIPALDELACOMPUTADORA ,ASEGUNDACATEGORÓASELLAMAORDENACIØNEXTERNA YAQUELOSELEMENTOSSEENCUENTRAN ENARCHIVOSALMACENADOSENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO COMODISCOS CINTAS TAMBORES ETCÏTERA 3ISEBUSCARAUNAANALOGÓAENTRELOSMÏTODOSDEORDENACIØNYLAVIDAREAL SEPODRÓA MENCIONARQUEPARALAMÈQUINA LAORDENACIØNINTERNAREPRESENTALOQUEPARAUNHUMANO SIGNIlCAORDENARUNCONJUNTODETARJETASQUESEENCUENTRANVISIBLESYEXTENDIDASTODAS SOBREUNAMESA,AORDENACIØNEXTERNA ENCAMBIO REPRESENTAPARALAMÈQUINALOQUE PARAUNHUMANOSIGNIlCAORDENARUNCONJUNTODETARJETASQUEESTÈNDISPUESTASUNADEBA JODEOTRAYENDONDESØLOSEVISUALIZALAPRIMERA %NLAPRIMERAPARTEDEESTECAPÓTULOSEESTUDIARÈNLOSMÏTODOSMÈSIMPORTANTESDE ORDENACIØNINTERNAYPOSTERIORMENTELOSMÈSINTERESANTESDEORDENACIØNEXTERNA

&)'52! /RDENACIØNINTERNA

 03%&/"$*Î/*/5&3/"

331

&)'52! /RDENACIØNEXTERNA

 /2$%.!#)¼.).4%2.! ,OSMÏTODOSDEORDENACIØNINTERNASEEXPLICARÈNCONARREGLOSUNIDIMENSIONALES PERO SUUSOPUEDEEXTENDERSEAOTROSTIPOSDEARREGLOSYESTRUCTURASDEDATOS%SIMPORTANTE SE×ALAR ADEMÈS QUESETRABAJARÈCONMÏTODOSDEORDENACIØNINSITU ESDECIR MÏTODOS QUENOREQUIERENDEARREGLOSAUXILIARESPARASUORDENACIØN,OSMÏTODOSQUEREQUIE REN DE ARREGLOS AUXILIARES SON GENERALMENTE INElCIENTES E INTRÓNSECAMENTE DE MENOR INTERÏS ,OSMÏTODOSDEORDENACIØNINTERNAASUVEZSEPUEDENCLASIlCARENDOSTIPOS ◗ ◗

-ÏTODOSDIRECTOSN  -ÏTODOSLOGARÓTMICOSN LOGN 

,OSMÏTODOSDIRECTOSTIENENLACARACTERÓSTICADEQUESUIMPLEMENTACIØNESRELATI VAMENTESENCILLAYSONFÈCILESDECOMPRENDER AUNQUESONINElCIENTESCUANDO.ˆEL NÞMERODEELEMENTOSDELARREGLOˆESDETAMA×OMEDIANOOGRANDE,OSMÏTODOSLO GARÓTMICOS PORSUPARTE SONMÈSCOMPLEJOSQUELOSDIRECTOS3UELABORACIØNESMÈS SOlSTICADAY ALSERMENOSINTUITIVOS RESULTANMÈSDIFÓCILESDEENTENDER3INEMBARGO SONMÈSElCIENTESYAQUEREQUIERENDEMENOSCOMPARACIONESYMOVIMIENTOSPARAOR DENARSUSELEMENTOS %SIMPORTANTEDESTACARQUEUNABUENAMEDIDADEElCIENCIAENTRELOSDISTINTOSMÏTO DOSLACONSTITUYEELTIEMPODEEJECUCIØNDELALGORITMOYÏSTEDEPENDEFUNDAMENTALMEN TEDELNÞMERODECOMPARACIONESYMOVIMIENTOSQUESEREALICENENTRESUSELEMENTOS #OMOCONCLUSIØNSEPUEDESE×ALARQUECUANDO.ESPEQUE×OSEDEBENUTILIZARMÏ TODOSDIRECTOSYCUANDO.ESMEDIANOOGRANDESEUSARÈNMÏTODOSLOGARÓTMICOS ,OSMÏTODOSDIRECTOSMÈSCONOCIDOSSON

332 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ◗ ◗ ◗

/RDENACIØNPORINTERCAMBIO /RDENACIØNPORINSERCIØN /RDENACIØNPORSELECCIØN

 /RDENACIØNPORINTERCAMBIODIRECTOBURBUJA %LMÏTODODEINTERCAMBIODIRECTO CONOCIDOCOLOQUIALMENTECOMOBURBUJA ESELMÈS UTILIZADOENTRELOSESTUDIANTESPRINCIPIANTESDECOMPUTACIØNPORSUFÈCILCOMPRENSIØNY PROGRAMACIØN0EROESPRECISOSE×ALARQUEESQUIZÈSELMÏTODOMÈSINElCIENTE %LMÏTODODEINTERCAMBIODIRECTOPUEDETRABAJARDEDOSMANERASDIFERENTESLLEVAN DOLOSELEMENTOSMÈSPEQUE×OSHACIALAPARTEIZQUIERDADELARREGLOOTRASLADANDOLOS ELEMENTOSMÈSGRANDESHACIASUPARTEDERECHA,AIDEABÈSICADEESTEALGORITMOCONSISTE ENCOMPARARPARESDEELEMENTOSADYACENTESEINTERCAMBIARLOSENTRESÓHASTAQUETODOS SEENCUENTRENORDENADOS3EREALIZANNn PASADASTRANSPORTANDOENCADAUNADEELLAS ELMENOROMAYORDEELEMENTOSˆSEGÞNSEAELCASOˆASUPOSICIØNIDEAL!LlNALDELAS Nn PASADASLOSELEMENTOSDELARREGLOESTARÈNORDENADOS

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! TRANSPORTANDOENCADAPASADAELMENORELEMENTOHACIALAPARTEIZQUIERDADELARREGLO !        ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=

      

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

,UEGODELAPRIMERAPASADAELARREGLOQUEDAASÓ !         /BSERVE QUE EL ELEMENTO MÈS PEQUE×O EN ESTE CASO  FUE SITUADO EN LA PARTE IZQUIERDADELARREGLO 3%'5.$!0!3!$! !;=!;=  !;=!;=  !;=!;= 

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO

 03%&/"$*Î/*/5&3/" !;=!;=  !;=!;=  !;=!;= 

333

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

,UEGODELASEGUNDAPASADAELARREGLOQUEDAASÓ !         YELSEGUNDOELEMENTOMÈSPEQUE×ODELARREGLO ENESTECASO FUESITUADOENLASE GUNDAPOSICIØN %NLATABLASEPRESENTAELRESULTADODELASPASADASRESTANTES 4!",!

APASADA

















APASADA

















APASADA

















APASADA

















APASADA

















%LALGORITMODEORDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOQUETRANSPORTAEN CADAPASADAELMENORELEMENTOHACIALAPARTEIZQUIERDADELARREGLOESELSIGUIENTE !LGORITMO "URBUJA?MENOR "URBUJA?MENOR! . [%STEALGORITMOORDENALOSELEMENTOSDELARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODELA BURBUJA 4RANSPORTA EN CADA PASADA EL ELEMENTO MÈS PEQUE×O HACIA LA PARTE IZQUIERDA DEL ARREGLO!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) *Y!58SONVARIABLESDETIPOENTERO]  2EPETIRCON)DESDEHASTA.  2EPETIRCON*DESDE.HASTA)  3I!*n !;*=ENTONCES (ACER!58←!;*n= !;*n=←!;)=Y!;)=←!58  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! TRANSPORTANDOENCADAPASADAELMAYORELEMENTOHACIALAPARTEDERECHADELARREGLO !        

334 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=

      

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         /BSERVEQUEELELEMENTOMÈSGRANDE ENESTECASO FUESITUADOENLAÞLTIMAPO SICIØNDELARREGLO 3%'5.$!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=

     

SÓHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         YELSEGUNDOELEMENTOMÈSGRANDEDELARREGLO ENESTECASO FUESITUADOENLAPENÞL TIMAPOSICIØN%NLATABLASEVEELRESULTADODELASPASADASRESTANTES 4!",!

APASADA

















APASADA

















APASADA

















APASADA

















APASADA

















%LALGORITMODEORDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOQUETRANSPORTAEN CADAPASADAELELEMENTOMAYORHACIALAPARTEDERECHADELARREGLOES !LGORITMO "URBUJA?MAYOR

 03%&/"$*Î/*/5&3/"

335

"URBUJA?MAYOR! . [%LALGORITMOORDENALOSELEMENTOSDELARREGLOUNIDIMENSIONAL!4RANSPORTAENCADAPASADA ELELEMENTOMÈSGRANDEHACIALAPARTEDERECHADELARREGLO!ESUNARREGLODE.ELEMENTOS] [) *Y!58SONVARIABLESDETIPOENTERO]  2EPETIRCON)DESDE.nHASTA  2EPETIRCON*DESDEHASTA)  3I!;*=!;* =ENTONCES (ACER!58←!;*= !;*=←!;* =Y!;* =←!58  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

!NÉLISISDEElCIENCIADELMÏTODO DEINTERCAMBIODIRECTO %LNÞMERODECOMPARACIONESQUESEREALIZANENELMÏTODODELABURBUJASEPUEDECON TABILIZARFÈCILMENTE%NLAPRIMERAPASADASEREALIZANNn COMPARACIONES ENLASE GUNDAPASADAN COMPARACIONES ENLATERCERAPASADANn COMPARACIONESYASÓ SUCESIVAMENTEHASTALLEGARAYCOMPARACIONESENTRECLAVES SIENDONELNÞMERODE ELEMENTOSDELARREGLO0ORLOTANTO TENEMOSQUEELNÞMERODECOMPARACIONESES #   N   N  x    QUEESIGUALA

N  N  

N N # 

▼ &ØRMULA

#OMOYASEMENCIONØENELCAPÓTULO SEHACEUSODELPRINCIPIODEINDUCCIØNMA TEMÈTICAPARADESARROLLARCIERTASFØRMULAS 2ESPECTODELNÞMERODEMOVIMIENTOS ÏSTOSDEPENDENFUNDAMENTALMENTEDESIEL ARREGLOSEENCUENTRAORDENADO DESORDENADOOENORDENINVERSO,OSMOVIMIENTOSPARA CADAUNODEESTOSCASOSSON

-MÓN

-MED NnN

-MÈX NnN

▼ &ØRMULA

!SÓ POREJEMPLO SISETIENEQUEORDENARUNARREGLOQUECONTIENEELEMENTOS EL NÞMERODEMOVIMIENTOSQUESETENDRÈQUEREALIZARES A 3IELARREGLOSEENCUENTRAORDENADO ◗ COMPARACIONES ◗ MOVIMIENTOS B 3ILOSELEMENTOSDELARREGLOSEENCUENTRANDISPUESTOSENFORMAALEATORIA ◗ COMPARACIONES ◗ MOVIMIENTOS

336 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ C 3ILOSELEMENTOSDELARREGLOSEENCUENTRANENORDENINVERSO ◗ COMPARACIONES ◗ MOVIMIENTOS !HORABIEN ELTIEMPONECESARIOPARAEJECUTARELALGORITMODELABURBUJAESPROPOR CIONALAN /N DONDENESELNÞMERODEELEMENTOSDELARREGLO ! CONTINUACIØN SE PRESENTARÈN DOS VARIANTES DEL MÏTODO DE INTERCAMBIO DIRECTO MÏTODODEINTERCAMBIODIRECTOCONSE×ALYMÏTODODESHAKERSORT

 /RDENACIØNPORELMÏTODODEINTERCAMBIO

DIRECTOCONSE×AL %STE MÏTODO ES UNA MODIlCACIØN DEL MÏTODO DE INTERCAMBIO DIRECTO ANALIZADO EN LA SECCIØNANTERIOR,AIDEACENTRALDEESTEALGORITMOCONSISTEENUTILIZARUNAMARCAOSE×AL PARA INDICAR QUE NO SE HA PRODUCIDO NINGÞN INTERCAMBIO EN UNA PASADA %S DECIR SE COMPRUEBASIELARREGLOESTÈTOTALMENTEORDENADODESPUÏSDECADAPASADA TERMINANDO SUEJECUCIØNENCASOAlRMATIVO%LALGORITMODEORDENACIØNPORELMÏTODODELABURBUJA CONSE×ALES !LGORITMO "URBUJA?SE×AL "URBUJA?SE×AL! . [%LALGORITMOORDENALOSELEMENTOSDELARREGLOUTILIZANDOELMÏTODODELABURBUJACONSE×AL! ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) *Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO]  (ACER)←Y"!.$←&!,3/  -IENTRAS)≤.n Y"!.$&!,3/ 2EPETIR (ACER"!.$←6%2$!$%2/  2EPETIRCON*DESDEHASTA.n  3I!;*=!;* = ENTONCES (ACER!58←!;*= !;*=←!;* = !;* =←!58 Y"!.$←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] (ACER)←)   [&INDELCICLODELPASO]

! CONTINUACIØN PRESENTAMOS LA SEGUNDA VARIANTE DEL MÏTODO DE INTERCAMBIO DI RECTO

 03%&/"$*Î/*/5&3/"

337

 /RDENACIØNPORELMÏTODODELASACUDIDASHAKERSORT %LMÏTODODESHAKERSORT MÈSCONOCIDOCOMOELMÏTODODELASACUDIDA ESUNAOPTIMI ZACIØNDELMÏTODODEINTERCAMBIODIRECTO,AIDEABÈSICADEESTEALGORITMOCONSISTEEN MEZCLARLASDOSFORMASENQUESEPUEDEREALIZARELMÏTODODELABURBUJA %NESTEALGORITMOCADAPASADATIENEDOSETAPAS%NLAPRIMERAETAPA DEDERECHAA IZQUIERDA SETRASLADANLOSELEMENTOSMÈSPEQUE×OSHACIALAPARTEIZQUIERDADELARRE GLO ALMACENANDOENUNAVARIABLELAPOSICIØNDELÞLTIMOELEMENTOINTERCAMBIADO%N LASEGUNDAETAPA DEIZQUIERDAADERECHA SETRASLADANLOSELEMENTOSMÈSGRANDESHACIA LAPARTEDERECHADELARREGLO ALMACENANDOENOTRAVARIABLELAPOSICIØNDELÞLTIMOELE MENTOINTERCAMBIADO,ASSUCESIVASPASADASTRABAJANCONLOSCOMPONENTESDELARREGLO COMPRENDIDOSENTRELASPOSICIONESALMACENADASENLASVARIABLESAUXILIARES%LALGORITMO TERMINACUANDOENUNAETAPANOSEPRODUCENINTERCAMBIOS OBIENCUANDOELCONTENIDO DELAVARIABLEQUEGUARDAELEXTREMOIZQUIERDODELARREGLOESMAYORQUEELCONTENIDODE LAVARIABLEQUEALMACENAELEXTREMODERECHO

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODELASACUDIDA !         02)-%2!0!3!$! 0RIMERAETAPADEDERECHAAIZQUIERDA !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=

      

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

ÁLTIMAPOSICIØNDEINTERCAMBIODEDERECHAAIZQUIERDA ,UEGODELAPRIMERAETAPADELAPRIMERAPASADA ELARREGLOQUEDAASÓ !         3EGUNDAETAPADEIZQUIERDAADERECHA !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=

     

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

ÁLTIMAPOSICIØNDEINTERCAMBIODEIZQUIERDAADERECHA

338 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ,UEGODELASEGUNDAETAPADELAPRIMERAPASADA ELARREGLOQUEDAASÓ !         3%'5.$!0!3!$! 0RIMERAETAPADEDERECHAAIZQUIERDA !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=

    

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

ÁLTIMAPOSICIØNDEINTERCAMBIODEDERECHAAIZQUIERDA !         3EGUNDAETAPADEIZQUIERDAADERECHA !;=!;= !;=!;= !;=!;= !;=!;=

   

NOHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

ÁLTIMAPOSICIØNDEINTERCAMBIODEIZQUIERDAADERECHA !         !LREALIZARLAPRIMERAETAPADELATERCERAPASADASEOBSERVAQUENOSEREALIZARON INTERCAMBIOSPORLOTANTO LAEJECUCIØNDELALGORITMOSETERMINA%LALGORITMODEORDE NACIØNPORELMÏTODODELASACUDIDAESELSIGUIENTE !LGORITMO 3ACUDIDA 3ACUDIDA! . [%LALGORITMOORDENALOSELEMENTOSDEUNARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODELA SACUDIDA!ESUNARREGLODE.ELEMENTOS] [) ):1 $%2 +Y!58SONVARIABLESDETIPOENTERO]  (ACER):1← $%2←.Y+←.  -IENTRAS$%2≥):1 2EPETIR  2EPETIRCON)DESDE$%2HASTA):1[#ICLODESCENDENTE]

 03%&/"$*Î/*/5&3/"

339

 3I!;)n=!;)= ENTONCES (ACER!58←!;)n= !;)n=←!;)= !;)=←!58Y+←)  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] (ACER):1←+   2EPETIRCON)DESDE):1HASTA$%2[#ICLOASCENDENTE]  3I!;)n=!;)= ENTONCES (ACER!58←!;)n= !;)n=←!;)= !;)=←!58Y+←)  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] (ACER$%2←+n  [&INDELCICLO]

!NÉLISISDEElCIENCIADELMÏTODODELASACUDIDA %LANÈLISISDELMÏTODODELASACUDIDA YENGENERALELDELOSMÏTODOSMEJORADOSYLOGA RÓTMICOS ESMUYCOMPLEJO0ARAELANÈLISISDEESTEMÏTODOESNECESARIOTENERENCUENTA TRESFACTORESQUEAFECTANDIRECTAMENTEALTIEMPODEEJECUCIØNDELALGORITMOLASCOM PARACIONESENTRELASCLAVES LOSINTERCAMBIOSENTREELLASYLASPASADASQUESEREALIZAN %NCONTRARFØRMULASQUEPERMITANCALCULARCADAUNODEESTOSFACTORESESUNATAREAMUY DIFÓCILDEREALIZAR ,OSESTUDIOSQUESEHANEFECTUADOSOBREELMÏTODODELASACUDIDADEMUESTRANQUE ENÏLSØLOSEPUEDENREDUCIRLASDOBLESCOMPARACIONESENTRECLAVES PEROSEDEBERECOR DARQUELAOPERACIØNDEINTERCAMBIOESUNATAREAMÈSCOMPLICADAYCOSTOSAQUELADE COMPARACIØN0ORLOTANTO ESPOSIBLEAlRMARQUELASHÈBILESMEJORASREALIZADASSOBRE ELMÏTODODEINTERCAMBIODIRECTOSØLOPRODUCENRESULTADOSAPRECIABLESSIELARREGLOESTÈ PARCIALMENTEORDENADO LOCUALRESULTADIFÓCILSABERDEANTEMANOPEROSIELARREGLOESTÈ DESORDENADOELMÏTODOSECOMPORTA INCLUSO PEORQUEOTROSMÏTODOSDIRECTOS COMOLOS DEINSERCIØNYSELECCIØN

 /RDENACIØNPORINSERCIØNDIRECTA %LMÏTODODEORDENACIØNPORINSERCIØNDIRECTAESELQUEUTILIZANGENERALMENTELOSJU GADORESDECARTASCUANDOLASORDENAN DEAHÓQUETAMBIÏNSECONOZCACONELNOMBREDE MÏTODODELABARAJA ,AIDEACENTRALDEESTEALGORITMOCONSISTEENINSERTARUNELEMENTODELARREGLOENSU PARTEIZQUIERDA QUEYASEENCUENTRAORDENADA%STEPROCESOSEREPITEDESDEELSEGUNDO HASTAELN ÏSIMOELEMENTO/BSERVEMOSUNEJEMPLO

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODEINSERCIØNDIRECTA !        

340 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;= 

NOHAYINTERCAMBIO

!         3%'5.$!0!3!$! !;=!;=  !;=!;= 

SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         4%2#%2!0!3!$! !;=!;=  !;=!;= 

SÓHAYINTERCAMBIO NOHAYINTERCAMBIO

!         /BSERVEQUEUNAVEZQUESEDETERMINALAPOSICIØNCORRECTADELELEMENTOSEINTE RRUMPENLASCOMPARACIONES0OREJEMPLO PARAELCASOANTERIORNOSEREALIZØLACOMPARA CIØN!;=!;=%NLATABLASEPRESENTAELRESULTADODELASPASADASRESTANTES %LALGORITMODEORDENACIØNPORELMÏTODODEINSERCIØNDIRECTAES !LGORITMO )NSERCIØN )NSERCIØN! . [%STEALGORITMOORDENALOSELEMENTOSDELARREGLOUTILIZANDOELMÏTODODEINSERCIØNDIRECTA! ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) !58Y+SONVARIABLESDETIPOENTERO]  2EPETIRCON)DESDEHASTA. (ACER!58←!;)=Y+←)n  -IENTRAS+≥ Y!58!;+= 2EPETIR (ACER!;+ =←!;+=Y+←+n  [&INDELCICLODELPASO] (ACER!;+ =←!58  [&INDELCICLODELPASO]

4!",!

APASADA

















APASADA

















APASADA

















APASADA

















 03%&/"$*Î/*/5&3/"

341

!NÉLISISDEElCIENCIADELMÏTODODEINSERCIØNDIRECTA %LNÞMEROMÓNIMODECOMPARACIONESYMOVIMIENTOSENTRECLAVESSEPRODUCECUANDOLOS ELEMENTOSDELARREGLOYAESTÈNORDENADOS!NALICEELSIGUIENTECASO

%JEMPLO

3EA!UNARREGLOFORMADOPORLOSELEMENTOS !      ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;= 

NOHAYINTERCAMBIO

3%'5.$!0!3!$! !;=!;= 

NOHAYINTERCAMBIO

4%2#%2!0!3!$! !;=!;= 

NOHAYINTERCAMBIO

#5!24!0!3!$!

!;=!;= 

NOHAYINTERCAMBIO

,UEGODELASCOMPARACIONESREALIZADAS ELARREGLOCORRESPONDIENTEQUEDAASÓ !      /BSERVEQUEPARAESTEEJEMPLOSEEFECTUARONCUATROCOMPARACIONES%NGENERAL PODEMOSAlRMARQUESIELARREGLOSEENCUENTRAORDENADOSEEFECTÞANCOMOMÈXIMO NnCOMPARACIONESYMOVIMIENTOSENTREELEMENTOS

#MÓNNn

▼ &ØRMULA

%LNÞMEROMÈXIMODECOMPARACIONESYMOVIMIENTOSENTREELEMENTOSSEPRODUCE CUANDOLOSELEMENTOSDELARREGLOESTÈNENORDENINVERSO

%JEMPLO

3EA!UNARREGLOFORMADOPORLOSSIGUIENTESELEMENTOS !      ,ASCOMPARACIONESQUESEREALIZANSON

342 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 02)-%2!0!3!$! !;=!;= 

SÓHAYINTERCAMBIO

3%'5.$!0!3!$! !;=!;=  !;=!;= 

SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

4%2#%2!0!3!$! !;=!;=  !;=!;=  !;=!;= 

SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

#5!24!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;=

   

SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO

/BSERVEQUEENLAPRIMERAPASADASEREALIZØUNACOMPARACIØNENLASEGUNDA DOS COMPARACIONESENLATERCERA TRESCOMPARACIONES YASÓSUCESIVAMENTEHASTANnCOM PARACIONESENTREELEMENTOS0ORLOTANTO - MÈX     x  N  

N  N  

QUEESIGUALA

#MÈX

N 



N



▼ &ØRMULA



!HORABIEN ELNÞMERODECOMPARACIONESPROMEDIO QUEESCUANDOLOSELEMENTOS APARECENENELARREGLOENFORMAALEATORIA SEPUEDECALCULARMEDIANTELASUMADELAS COMPARACIONESMÓNIMASYMÈXIMASDIVIDIDAENTRE

#MED

!LHACERLAOPERACIØNQUEDA

 N N · ¨ © N  ¸  ¹ ª 

 03%&/"$*Î/*/5&3/"

#MED

N 



N 

343

▼ &ØRMULA





2ESPECTODELNÞMERODEMOVIMIENTOS SIELARREGLOSEENCUENTRAORDENADONOSE REALIZANINGUNO0ORLOTANTO

▼ &ØRMULA

-MÓN

%L NÞMERO MÈXIMO DE MOVIMIENTOS SE PRESENTA CUANDO EL ARREGLO ESTÈ EN ORDEN INVERSO/BSERVEELEJEMPLOANTERIOR%NLAPRIMERAPASADASEREALIZØUNMOVIMIENTO EN LASEGUNDADOSYASÓSUCESIVAMENTEHASTANnMOVIMIENTOSENTRELOSELEMENTOSENLA ÞLTIMAPASADA0ORLOTANTO - MÈX     x  N  

N  N  

QUEESIGUALA

- MÈX

N 



N

▼ &ØRMULA





%LNÞMERODEMOVIMIENTOSPROMEDIO QUESEDACUANDOLOSELEMENTOSSEENCUEN TRANENELARREGLOENFORMAALEATORIA SECALCULACOMOLASUMADELOSMOVIMIENTOSMÓNI MOSYMÈXIMOSDIVIDIDAENTRE0ORLOTANTO

 - MED 

N



N



 

!LHACERLAOPERACIØNQUEDA

- MED

N N  

▼ &ØRMULA

!SÓ POREJEMPLO SISETIENEQUEORDENARUNARREGLOQUECONTIENEELEMENTOS A 3IELARREGLOSEENCUENTRAORDENADOSERÈNNECESARIAS ◗ COMPARACIONES ◗ MOVIMIENTOS B 3ILOSELEMENTOSDELARREGLOSEENCUENTRANDISPUESTOSENFORMAALEATORIASEREALIZA RÈN

344 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ◗ COMPARACIONES ENPROMEDIO ◗ MOVIMIENTOS ENPROMEDIO C 3ILOSELEMENTOSDELARREGLOSEENCUENTRANENORDENINVERSOSERÈNNECESARIAS ◗ COMPARACIONES ◗ MOVIMIENTOS %S IMPORTANTE SE×ALAR QUE EL TIEMPO REQUERIDO PARA EJECUTAR EL ALGORITMO DE IN SERCIØN DIRECTA ES PROPORCIONAL A N /N DONDE N ES EL NÞMERO DE ELEMENTOS DEL ARREGLO !PESARDESERUNMÏTODOINElCIENTEYRECOMENDABLESØLOCUANDONESPEQUE×O EL MÏTODODEINSERCIØNDIRECTASECOMPORTAMEJORQUELOSMÏTODOSDEINTERCAMBIODIRECTO ANALIZADOSANTERIORMENTE

 /RDENACIØNPORELMÏTODODEINSERCIØNBINARIA %LMÏTODODEORDENACIØNPORINSERCIØNBINARIAESUNAMEJORADELMÏTODODEINSERCIØN DIRECTAPRESENTADOANTERIORMENTE,AMEJORACONSISTEENREALIZARUNABÞSQUEDABINARIA ENLUGARDEUNABÞSQUEDASECUENCIAL PARAINSERTARUNELEMENTOENLAPARTEIZQUIERDA DEL ARREGLO QUE YA SE ENCUENTRA ORDENADO %L PROCESO AL IGUAL QUE EN EL MÏTODO DE INSERCIØNDIRECTA SEREPITEDESDEELSEGUNDOHASTAELN ÏSIMOELEMENTO!NALICEMOSUN EJEMPLO

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODEINSERCIØNBINARIA !         !CONTINUACIØNSEPRESENTANLASCOMPARACIONESQUESELLEVANACABO 02)-%2!0!3!$! !;=!;= 

NOHAYINTERCAMBIO

!         3%'5.$!0!3!$! !;=!;= 

SÓHAYINTERCAMBIO

!         4%2#%2!0!3!$! !;=!;=  !;=!;= 

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

!        

 03%&/"$*Î/*/5&3/"

345

#5!24!0!3!$! !;=!;=  !;=!;=  !;=!;= 

NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         15).4!0!3!$! !;=!;=  !;=!;= 

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         3%84!0!3!$! !;=!;=  !;=!;=  !;=!;= 

SÓHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         3²04)-!0!3!$! !;=!;=  !;=!;=  !;=!;= 

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO

!         %LALGORITMODEORDENACIØNPORELMÏTODODEINSERCIØNBINARIAES !LGORITMO )NSERCIØN?BINARIA )NSERCIØN?BINARIA! . [%STEALGORITMOORDENALOSELEMENTOSDEUNARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODE INSERCIØNBINARIA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) !58 ):1 $%2 -Y*SONVARIABLESDETIPOENTERO]  2EPETIRCON)DESDEHASTA. (ACER!58←!;)= ):1←Y$%2←)n  -IENTRAS):1≤$%2 2EPETIR (ACER-←PARTEENTERA):1 $%2 ENTRE

346 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/  3I!58≤!;-= ENTONCES (ACER$%2←-n SINO (ACER):1←-   [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] (ACER*←)n  -IENTRAS*≥):1 2EPETIR (ACER!;* =←!;*=Y*←*n  [&INDELCICLODELPASO] (ACER!;):1=←!58  [&INDELCICLODELPASO]

!NÉLISISDEElCIENCIADELMÏTODODEINSERCIØNBINARIA !LANALIZARELMÏTODODEORDENACIØNPORINSERCIØNBINARIASEADVIERTELAPRESENCIADE UNCASOANTINATURAL%LMÏTODOEFECTÞAELMENORNÞMERODECOMPARACIONESCUANDOEL ARREGLOESTÈTOTALMENTEDESORDENADOYELMÈXIMOCUANDOSEENCUENTRAORDENADO %SPOSIBLESUPONERQUEMIENTRASENUNABÞSQUEDASECUENCIALSENECESITAN+COM PARACIONES PARA INSERTAR UN ELEMENTO EN UNA BINARIA SE NECESITARÈ LA MITAD DE LAS + COMPARACIONES0ORLOTANTO ELNÞMERODECOMPARACIONESPROMEDIOENELMÏTODODE ORDENACIØNPORINSERCIØNBINARIASEPUEDECALCULARCOMO #

 N  N  N     x      

QUEESIGUALA

N #



N



▼ &ØRMULA



²STEESUNALGORITMODECOMPORTAMIENTOANTINATURALY PORLOTANTO ESNECESARIO SERMUYCUIDADOSOCUANDOSEHACEUNANÈLISISDEÏL,ASHÈBILESMEJORASINTRODUCIDAS PRODUCENUNEFECTONEGATIVOCUANDOELARREGLOESTÈORDENADOYRESULTADOSAPENASSATIS FACTORIOSCUANDOLASCLAVESESTÈNDESORDENADAS$ETODASMANERAS SEDEBERECORDARQUE NOSEREDUCEELNÞMERODEMOVIMIENTOSQUEESUNAOPERACIØNMÈSCOMPLICADAYCOSTOSA QUELAOPERACIØNDECOMPARACIØN0ORLOTANTO ELTIEMPODEEJECUCIØNDELALGORITMO SIGUESIENDOPROPORCIONALAN /N 

 /RDENACIØNPORSELECCIØNDIRECTA %LMÏTODODEORDENACIØNPORSELECCIØNDIRECTAESMÈSElCIENTEQUELOSMÏTODOSANALI ZADOSANTERIORMENTE0ERO AUNQUESUCOMPORTAMIENTOESMEJORQUEELDEAQUÏLLOSYSU

 03%&/"$*Î/*/5&3/"

347

PROGRAMACIØNESFÈCILYCOMPRENSIBLE NOSERECOMIENDAUTILIZARLOCUANDOELNÞMERODE ELEMENTOSDELARREGLOESMEDIANOOGRANDE,AIDEABÈSICADEESTEALGORITMOCONSISTE ENBUSCARELMENORELEMENTODELARREGLOYCOLOCARLOENLAPRIMERAPOSICIØN,UEGOSE BUSCAELSEGUNDOELEMENTOMÈSPEQUE×ODELARREGLOYSELOCOLOCAENLASEGUNDAPOSICIØN %LPROCESOCONTINÞAHASTAQUETODOSLOSELEMENTOSDELARREGLOHAYANSIDOORDENADOS%L MÏTODOSEBASAENLOSSIGUIENTESPRINCIPIOS  3ELECCIONARELMENORELEMENTODELARREGLO  )NTERCAMBIARDICHOELEMENTOCONELPRIMERO  2EPETIRLOSPASOSANTERIORESCONLOSNn Nn ELEMENTOS YASÓSUCESIVAMENTE HASTAQUESØLOQUEDEELELEMENTOMAYOR

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODESELECCIØNDIRECTA !         ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! 3EREALIZALAASIGNACIØN-%./2←!;=  -%./2!;= -%./2!;=

-%./2!;= -%./2!;= -%./2!;= -%./2!;= -%./2!;=

      

SÓSECUMPLELACONDICIØN NOSECUMPLELACONDICIØN -%./2←!;= SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN

,UEGODELAPRIMERAPASADA ELARREGLOQUEDADELASIGUIENTEFORMA !         /BSERVEQUEELMENORELEMENTODELARREGLO!;= SEINTERCAMBIØCONELPRIMER ELEMENTO!;= REALIZANDOSOLAMENTEUNMOVIMIENTO 3%'5.$!0!3!$! 3EREALIZALASIGUIENTEASIGNACIØN-%./2←!;= -%./2!;= 

-%./2!;=  -%./2!;= 

NOSECUMPLELACONDICIØN -%./2←!;= SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN

348 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ -%./2!;=  -%./2!;= 

-%./2!;= 

SÓSECUMPLELACONDICIØN NOSECUMPLELACONDICIØN -%./2←!;= SÓSECUMPLELACONDICIØN

!         /BSERVEQUEELSEGUNDOELEMENTOMÈSPEQUE×ODELARREGLO!;= SEINTERCAMBIØ CONELSEGUNDOELEMENTO !;=  %NLATABLASEOBSERVAELRESULTADODELASPASADASRESTANTES

4!",!

APASADA

















APASADA

















APASADA

















APASADA

















APASADA

















%LALGORITMODEORDENACIØNPORELMÏTODODESELECCIØNDIRECTAES !LGORITMO 3ELECCIØN 3ELECCIØN! . [%STEALGORITMOORDENALOSELEMENTOSDEUNARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODE SELECCIØNDIRECTA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) -%./2 +Y*SONVARIABLESDETIPOENTERO]  2EPETIRCON)DESDEHASTA.n (ACER-%./2←!;)=Y+←)  2EPETIRCON*DESDE) HASTA.  3I!;*=-%./2 ENTONCES (ACER-%./2←!;*=Y+←*  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] (ACER!;+=←!;)=Y!;)=←-%./2  [&INDELCICLODELPASO]

!NÉLISISDEElCIENCIADELMÏTODODESELECCIØNDIRECTA %LANÈLISISDELMÏTODODESELECCIØNDIRECTAESRELATIVAMENTESIMPLE3EDEBECONSIDERAR QUEELNÞMERODECOMPARACIONESENTREELEMENTOSESINDEPENDIENTEDELADISPOSICIØNINI CIALDEÏSTOSENELARREGLO%NLAPRIMERAPASADASEREALIZANNn COMPARACIONES ENLA SEGUNDAPASADANn COMPARACIONESYASÓSUCESIVAMENTEHASTAYCOMPARACIONES ENLAPENÞLTIMAYÞLTIMAPASADAS RESPECTIVAMENTE0ORLOTANTO

 03%&/"$*Î/*/5&3/"

#   N   N  x   

349

N  N  

QUEESIGUALA

#

▼ &ØRMULA

N N 

2ESPECTODELNÞMERODEINTERCAMBIOS SIEMPRESERÈNn AEXCEPCIØNDEQUESE TENGA INCORPORADA EN EL ALGORITMO ALGUNA TÏCNICA PARA PREVENIR EL INTERCAMBIO DE UN ELEMENTOCONSIGOMISMO0ORLOTANTO

▼ &ØRMULA

-Nn

!SÓ POREJEMPLO SISETIENEQUEORDENARUNARREGLOQUECONTIENEELEMENTOS SE EFECTUARÈNCOMPARACIONESYMOVIMIENTOS %LTIEMPODEEJECUCIØNDELALGORITMOESPROPORCIONALAN /N AUNCUANDOESMÈS RÈPIDOQUELOSMÏTODOSPRESENTADOSCONANTERIORIDAD

 !NÉLISISDEElCIENCIADELOSMÏTODOSDIRECTOS ,ATABLACONTIENELASFØRMULASNECESARIASPARAOBTENERELNÞMERODECOMPARACIONES YMOVIMIENTOSPARAORDENARUNARREGLOCONLOSTRESMÏTODOSDIRECTOSANALIZADOS,AS COLUMNASINDICANSILOSELEMENTOSDELARREGLOSEENCUENTRANENFORMAORDENADA DESOR DENADAOENORDENINVERSO %NLATABLA POROTRAPARTE SEOBSERVANLOSNÞMEROSDECOMPARACIONESYMO VIMIENTOSNECESARIOSPARAORDENARUNARREGLOCONLOSTRESMÏTODOSDIRECTOSANALIZADOS

4!",! )NTERCAMBIO DIRECTO

)NSERCIØN DIRECTA

3ELECCIØN DIRECTA

/RDENADA

$ESORDENADA

/RDENINVERSO

-

N N  

N N    N  N

N N    N  N

#

 N 

-



#

N N  N 

#

-

N







 N N 

N N  N N 

N N  N 

N N  N 

N 



350 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 4!",! /RDENADA

$ESORDENADA

/RDENINVERSO

)NTERCAMBIO

#













DIRECTO

-













)NSERCIØN

#













DIRECTA

-













3ELECCIØN

#













DIRECTA

-













,ASCOLUMNASINDICANSILOSELEMENTOSDELARREGLOSEENCUENTRANENFORMAORDENADA DESORDENADAOENORDENINVERSO/BSERVEQUEESTASCOLUMNASSEENCUENTRANDIVIDIDASEN DOS,ASUBCOLUMNAIZQUIERDAREPRESENTAUNARREGLODEELEMENTOSYLASUBCOLUMNA DERECHAREPRESENTAUNARREGLODEELEMENTOS %SFÈCILOBSERVARQUEELMÏTODODESELECCIØNDIRECTAESELMEJORYSØLOESSUPERADO PORELMÏTODODEINSERCIØNDIRECTACUANDOLOSELEMENTOSDELARREGLOYASEENCUENTRAN ORDENADOS%LPEORMÏTODO SINDUDA ESELDEINTERCAMBIODIRECTO %NLOSSIGUIENTESINCISOSSEANALIZARÈNLOSMÏTODOSLOGARÓTMICOSMÈSIMPORTANTES

 /RDENACIØNPORELMÏTODODE3HELL %LMÏTODODE3HELLESUNAVERSIØNMEJORADADELMÏTODODEINSERCIØNDIRECTA2ECIBEESE NOMBREENHONORDESUAUTOR $ONALD,3HELL QUIENLOPROPUSOEN%STEMÏTODO TAMBIÏNSECONOCECOMOINSERCIØNCONINCREMENTOSDECRECIENTES %NELMÏTODODEORDENACIØNPORINSERCIØNDIRECTACADAELEMENTOSECOMPARAPARA SU UBICACIØN CORRECTA EN EL ARREGLO CON LOS ELEMENTOS QUE SE ENCUENTRAN EN SU PARTE IZQUIERDA3IELELEMENTOAINSERTARESMÈSPEQUE×OQUEELGRUPODEELEMENTOSQUESE ENCUENTRAN A SU IZQUIERDA SERÈ NECESARIO EFECTUAR VARIAS COMPARACIONES ANTES DE SU UBICACIØN 3HELL PROPONE QUE LAS COMPARACIONES ENTRE ELEMENTOS SE EFECTÞEN CON SALTOS DE MAYORTAMA×O PEROCONINCREMENTOSDECRECIENTESASÓ LOSELEMENTOSQUEDARÈNORDE NADOSENELARREGLOMÈSRÈPIDAMENTE0ARACOMPRENDERMEJORESTEALGORITMOANALICEEL SIGUIENTECASO #ONSIDEREMOSUNARREGLOQUECONTENGAELEMENTOS%NPRIMERLUGAR SEDIVIDIRÈN LOSELEMENTOSDELARREGLOENOCHOGRUPOS TENIENDOENCUENTALOSELEMENTOSQUESEEN CUENTRANAOCHOPOSICIONESDEDISTANCIAENTRESÓYSEORDENARÈNPORSEPARADO1UEDARÈN ENELPRIMERGRUPOLOSELEMENTOS!;= !;= ENELSEGUNDO !;= !;= ENELTER CERO !;= !;= YASÓSUCESIVAMENTE$ESPUÏSDEESTEPRIMERPASOSEDIVIDIRÈNLOS ELEMENTOSDELARREGLOENCUATROGRUPOS TENIENDOENCUENTAAHORALOSELEMENTOSQUESE ENCUENTRENACUATROPOSICIONESDEDISTANCIAENTRESÓYSELESORDENARÈPORSEPARADO1UE

 03%&/"$*Î/*/5&3/"

351

DARÈNENELPRIMERGRUPOLOSELEMENTOS!;= !;= !;= !;= ENELSEGUNDO!;= !;= !;= !;= YASÓSUCESIVAMENTE%NELTERCERPASOSEDIVIDIRÈNLOSELEMENTOS DELARREGLOENGRUPOS TOMANDOENCUENTALOSELEMENTOSQUESEENCUENTRANAHORAADOS POSICIONESDEDISTANCIAENTRESÓYNUEVAMENTESELESORDENARÈPORSEPARADO%NELPRIMER GRUPOQUEDARÈN!;= !;= !;= !;= !;= !;= !;= !;= YENELSEGUNDO!;= !;= !;= !;= !;= !;= !;= !;=  &INALMENTESEAGRUPARÈNYORDENARÈNLOSELEMENTOSDEMANERANORMALESDECIR DE UNOENUNO3EPRESENTAACONTINUACIØNUNEJEMPLO

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLOSELEMENTOSQUESEENCUENTRANENELARREGLOUNIDI MENSIONAL!UTILIZANDOELMÏTODODE3HELL !                 02)-%2!0!3!$! 3EDIVIDENLOSELEMENTOSENGRUPOS

352 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/

,AORDENACIØNPRODUCE !                 !CONTINUACIØNSEPRESENTAELALGORITMODEORDENACIØNPORELMÏTODODE3HELL !LGORITMO 3HELL 3HELL! . [%STE ALGORITMO PERMITE ORDENAR LOS ELEMENTOS DE UN ARREGLO UNIDIMENSIONAL UTILIZANDO EL MÏTODODE3HELL!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [).4 )Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO]  (ACER).4←.   -IENTRAS).4 2EPETIR (ACER).4←PARTEENTERA).4 Y"!.$←6%2$!$%2/  -IENTRAS"!.$6%2$!$%2/ 2EPETIR (ACER"!.$←&!,3/E)←  -IENTRAS) ).4 ≤. 2EPETIR  3I!;)=!;) ).4=ENTONCES (ACER!58←!;)= !;)=←!;) ).4= !;) ).4=←!58 Y"!.$←6%2$!$%2/  [&INDELCONDICIONALDELPASO] (ACER)←)   [&INDELCICLODELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

 03%&/"$*Î/*/5&3/"

353

!NÉLISISDEElCIENCIADELMÏTODODE3HELL %LANÈLISISDEElCIENCIADELMÏTODODE3HELLESUNPROBLEMAMUYCOMPLICADOYAÞNNO RESUELTO(ASTAELMOMENTONOSEHAPODIDOESTABLECERLAMEJORSECUENCIADEINCREMEN TOSCUANDONESGRANDE#ABERECORDARQUECADAVEZQUESEPROPONEUNASECUENCIADE INTERVALOS ESNECESARIOCORRERELALGORITMOPARAANALIZARSUTIEMPODEEJECUCIØN %N 0RATTDESCUBRIØQUEELTIEMPODEEJECUCIØNDELALGORITMOESDELORDEN DEN LOGN 5NASPRUEBASEXHAUSTIVASREALIZADASPARAOBTENERLAMEJORSECUENCIA DEINTERVALOSCUANDOELNÞMERODEELEMENTOSDELARREGLOESIGUALAARROJARONCOMO RESULTADOQUELAMEJORSECUENCIACORRESPONDEAUNINTERVALODE QUENOESMÈSQUEEL MÏTODODEINSERCIØNDIRECTAESTUDIADOPREVIAMENTE%STASPRUEBASTAMBIÏNDETERMINA RONQUEELMENORNÞMERODEMOVIMIENTOSSEREGISTRABACONLASECUENCIA  #ABE ACLARAR QUE LAS PRUEBAS EXHAUSTIVAS CORRESPONDEN AL ANÈLISIS DE  POSIBILIDADES ES DECIR CASOSDIFERENTES %N LA TABLA  SE MUESTRAN LAS DIEZ MEJORES SECUENCIAS OBTENIDAS AL EVALUAR LAS POSIBILIDADESDESECUENCIASQUESEPRESENTANCUANDOSETIENEUNARREGLODE ELEMENTOS 0ARACONCLUIRCONELANÈLISISDEElCIENCIADEMÏTODODE3HELL SEMENCIONAQUEES TUDIOSDE0ETERSONY2USSELL ENLA5NIVERSIDADDE3TANFORD EN MUESTRANQUELAS MEJORESSECUENCIASPARAVALORESDE.COMPRENDIDOSENTREYSONLASQUESE PRESENTANENLATABLA DONDEK     0ORÞLTIMO YPARAACLARARAÞNMÈSLOSCONCEPTOSVERTIDOSSOBREELMÏTODODE3HELL SEINCLUYEUNSEGUNDOEJEMPLO

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODE3HELL,ASECUENCIADEINTERVALOSQUESEUTILIZARÈCORRESPONDEA LAFØRMULAKn PRESENTADAPOR0ETERSONY2USSELL !                

4!",!

0OSICIØN

3ECUENCIA

































































354 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/      K 

4!",!

     Kn

3ECUENCIAS

     K›       K  

,OSRESULTADOSPARCIALESDECADAPASADA ASÓCOMOELRESULTADOlNAL SEOBSERVANEN LATABLA DONDE0!3REPRESENTAELNÞMERODEPASADAE).4REPRESENTAELINTERVALO ENELCUALSEESTÈTRABAJANDO

 /RDENACIØNPORELMÏTODOQUICKSORT %LMÏTODODEORDENACIØNQUICKSORTESACTUALMENTEELMÈSElCIENTEYVELOZDELOSMÏTO DOSDEORDENACIØNINTERNA%STAMBIÏNCONOCIDOCOMOMÏTODORÈPIDOYDEORDENACIØN PORPARTICIØN%STEMÏTODOESUNAMEJORASUSTANCIALDELMÏTODODEINTERCAMBIODIRECTO YSEDENOMINAQUICKSORTˆRÈPIDOˆPORLAVELOCIDADCONQUEORDENALOSELEMENTOSDEL ARREGLO3UAUTOR #!(OARE LOLLAMØASÓ,AIDEACENTRALDEESTEALGORITMOCONSISTE ENLOSIGUIENTE  3ETOMAUNELEMENTO8DEUNAPOSICIØNCUALQUIERADELARREGLO  3ETRATADEUBICARA8ENLAPOSICIØNCORRECTADELARREGLO DETALFORMAQUETODOSLOS ELEMENTOSQUESEENCUENTRENASUIZQUIERDASEANMENORESOIGUALESA8YTODOSLOSQUE SEENCUENTRENASUDERECHASEANMAYORESOIGUALESA8  3EREPITENLOSPASOSANTERIORES PEROAHORAPARALOSCONJUNTOSDEDATOSQUESEEN CUENTRANALAIZQUIERDAYALADERECHADELAPOSICIØNDE8ENELARREGLO  %LPROCESOTERMINACUANDOTODOSLOSELEMENTOSSEENCUENTRANENSUPOSICIØNCO RRECTAENELARREGLO 3EDEBESELECCIONAR ENTONCES UNELEMENTO8CUALQUIERA%NESTECASOSESELECCIO NARÈ!;=3EEMPIEZAARECORRERELARREGLODEDERECHAAIZQUIERDACOMPARANDOSILOS ELEMENTOSSONMAYORESOIGUALESA83IUNELEMENTONOCUMPLECONESTACONDICIØN SE INTERCAMBIANAQUÏLLOSYSEALMACENAENUNAVARIABLELAPOSICIØNDELELEMENTOINTERCAM BIADOˆSEACOTAELARREGLOPORLADERECHAˆ3EINICIANUEVAMENTEELRECORRIDO PERO AHORADEIZQUIERDAADERECHA COMPARANDOSILOSELEMENTOSSONMENORESOIGUALESA8 4!",! 0!3

).4

!RREGLO!

















































































































































































 03%&/"$*Î/*/5&3/"

355

3IUNELEMENTONOCUMPLECONESTACONDICIØN ENTONCESSEINTERCAMBIANAQUÏLLOSYSE ALMACENAENOTRAVARIABLELAPOSICIØNDELELEMENTOINTERCAMBIADOˆSEACOTAELARREGLO PORLAIZQUIERDAˆ3EREPITENLOSPASOSANTERIORESHASTAQUEELELEMENTO8ENCUENTRASU POSICIØNCORRECTAENELARREGLO!NALICEMOSACONTINUACIØNELSIGUIENTEEJEMPLO

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLOSELEMENTOSQUESEENCUENTRANENELARREGLO!UTI LIZANDOELMÏTODO !         3ESELECCIONA!;= PORLOTANTO 8← 3ELLEVANACABOLASCOMPARACIONESQUESEMUESTRANACONTINUACIØN 02)-%2!0!3!$! 2ECORRIDODEDERECHAAIZQUIERDA !;=≥8 !;=≥8

≥ ≥

NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         ↑ ↑ 2ECORRIDODEIZQUIERDAADERECHA !;=≤8

≤

SÓHAYINTERCAMBIO

!         ↑ ↑ 3%'5.$!0!3!$! 2ECORRIDODEDERECHAAIZQUIERDA !;=≥8 !;=≥8 !;=≥8 !;=≥8

≥ ≥ ≥ ≥

NOHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO

!         ↑ ↑ #OMOELRECORRIDODEIZQUIERDAADERECHASEDEBERÓAINICIARENLAMISMAPOSICIØN DONDESEENCUENTRAELELEMENTO8 ELPROCESOTERMINAYAQUESEDETECTAQUEELELEMENTO 8SEENCUENTRAENLAPOSICIØNCORRECTA/BSERVEQUELOSELEMENTOSQUEFORMANPARTEDEL PRIMERCONJUNTOSONMENORESOIGUALESA8 YLOSDELSEGUNDOCONJUNTOSONMAYORESO IGUALESA8

356 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ !        

ERCONJUNTO

OCONJUNTO

%STEPROCESODEPARTICIONAMIENTOAPLICADOPARALOCALIZARLAPOSICIØNCORRECTADEUN ELEMENTO8ENELARREGLOSEREPITECADAVEZQUEQUEDENCONJUNTOSFORMADOSPORDOSO MÈSELEMENTOS%LMÏTODOSEPUEDEAPLICARDEMANERAITERATIVAORECURSIVA%NLATABLA SEPRESENTALAUBICACIØNDELRESTODELOSELEMENTOSENELARREGLO 4!",!

!

















!

















!

















!

















%LALGORITMODEORDENACIØNPORELMÏTODOQUICKSORTENSUVERSIØNRECURSIVAES !LGORITMO 2ÈPIDO?RECURSIVO 2ÈPIDO?RECURSIVO! . [%STEALGORITMOORDENALOSELEMENTOSDELARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODORÈPIDO DEMANERARECURSIVA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS]  ,LAMARALALGORITMO2EDUCE?RECURSIVOCONY.

/BSERVE QUE EL ALGORITMO 2ÈPIDO?RECURSIVO REQUIERE PARA SU FUNCIONAMIENTO DE OTROALGORITMO ELCUALSEPRESENTAENLATABLA !LGORITMO 2EDUCE?RECURSIVO 2EDUCE?RECURSIVO).) &). [).)Y&).REPRESENTANLASPOSICIONESDELEXTREMOIZQUIERDOYDERECHO RESPECTIVAMENTE DEL CONJUNTODEELEMENTOSAORDENAR] [):1 $%2 0/3 Y !58 SON VARIABLES DE TIPO ENTERO "!.$ ES UNA VARIABLE DE TIPO BOOLEANO]  (ACER):1←).) $%2←&). 0/3←).)Y"!.$←6%2$!$%2/  -IENTRAS"!.$6%2$!$%2/ 2EPETIR (ACER"!.$←&!,3/  -IENTRAS!;0/3=≤!;$%2= Y0/3≠$%2 2EPETIR (ACER$%2←$%2n  [&INDELCICLODELPASO]  3I0/3≠$%2 ENTONCES (ACER!58←!;0/3= !;0/3=←!;$%2= !;$%2=←!58Y0/3←$%2

 03%&/"$*Î/*/5&3/"

357

 -IENTRAS!;0/3=≥!;):1= Y0/3≠):1 2EPETIR (ACER):1←):1   [&INDELCICLODELPASO]  3I0/3≠):1 ENTONCES (ACER"!.$←6%2$!$%2/ !58←!;0/3= !;0/3=←!;):1= !;):1=←!58Y0/3←):1  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I0/3n ).) ENTONCES 2EGRESARA2EDUCE?RECURSIVOCON).)Y0/3n [,LAMADARECURSIVA]  [&INDELCONDICIONALDELPASO]  3I&).0/3  ENTONCES 2EGRESARA2EDUCE?RECURSIVOCON0/3  Y&).[,LAMADARECURSIVA]  [&INDELCONDICIONALDELPASO]

!UNCUANDOELALGORITMODELQUICKSORTPRESENTADORESULTECLARO ESPOSIBLEAUMENTAR SUVELOCIDADDEEJECUCIØNELIMINANDOLASLLAMADASRECURSIVAS,ARECURSIVIDADESUNINS TRUMENTOMUYPODEROSO PEROLAElCIENCIADEEJECUCIØNESUNFACTORMUYIMPORTANTEEN UNPROCESODEORDENACIØNQUEESNECESARIOCUIDARYADMINISTRARMUYBIEN%STASLLAMADAS RECURSIVASSEPUEDENSUSTITUIRUTILIZANDOPILAS DANDOLUGARENTONCESALAITERATIVIDAD #ONSIDEREMOSELARREGLOUNIDIMENSIONAL!DELEJEMPLO,UEGODELAPRIMERA PARTICIØN !QUEDADELASIGUIENTEMANERA !        

ERCONJUNTO

OCONJUNTO

!LUTILIZARLAITERATIVIDAD SEDEBENALMACENARENLASPILASLOSÓNDICESDELOSDOSCON JUNTOSDEDATOSQUEFALTATRATAR3EUTILIZARÈNDOSPILAS 0),!-%./2Y0),!-!9/2 %NLAPRIMERASEALMACENARÈELEXTREMOIZQUIERDOYENLAOTRASEALMACENARÈELEXTREMO DERECHODELOSCONJUNTOSDEDATOSQUEFALTATRATAR%NLAlGURASEOBSERVAELESTADO DELASPILAS LUEGODECARGARLOSEXTREMOSDELOSCONJUNTOSQUEFALTATRATAR ,OSÓNDICESDELPRIMERCONJUNTOQUEDARONALMACENADOSENLAPRIMERAPOSICIØNDE 0),!-%./2 Y 0),!-!9/2 RESPECTIVAMENTE ,A POSICIØN DEL EXTREMO IZQUIERDO DELPRIMERCONJUNTO EN0),!-%./2YLADELEXTREMODERECHODELMISMOCONJUNTO  EN0),!-!9/2,ASPOSICIONESDELOSEXTREMOSIZQUIERDOYDERECHODELSEGUNDO CONJUNTO  Y  FUERON ALMACENADOS EN LA CIMA DE 0),!-%./2 Y 0),!-!9/2 RESPECTIVAMENTE

&)'52! 0ILASPARASUSTITUIR LARECURSIVIDAD

358 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ !CONTINUACIØNSEPRESENTAELALGORITMODEORDENACIØNPORELMÏTODODELQUICKSORT UTILIZANDOITERATIVIDADENLUGARDERECURSIVIDAD !LGORITMO 2ÈPIDO?ITERATIVO 2ÈPIDO?ITERATIVO! . [%STE ALGORITMO ORDENA LOS ELEMENTOS DE UN ARREGLO UNIDIMENSIONAL UTILIZANDO EL MÏTODO RÈPIDO DEMANERAITERATIVA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [4/0% ).) &). Y 0/3 SON VARIABLES DE TIPO ENTERO 0),!-%./2 Y 0),!-!9/2 SON ARREGLOSUNIDIMENSIONALES QUEFUNCIONANCOMOPILAS]  (ACER4/0%← 0),!-%./2;4/0%=←Y0),!-!9/2;4/0%=←.  -IENTRAS4/0% 2EPETIR (ACER).)←0),!-%./2;4/0%= &).←0),!-!9/2;4/0%=Y 4/0%←4/0%n ,LAMARALALGORITMO2EDUCE?ITERATIVOCON).) &).Y0/3  3I).)0/3n ENTONCES (ACER4/0%←4/0%  0),!-%./2;4/0%=←).)Y 0),!-!9/2;4/0%=←0/3n  [&INDELCONDICIONALDELPASO]  3I&).0/3  ENTONCES (ACER4/0%←4/0%  0),!-%./2;4/0%=←0/3 Y 0),!-!9/2;4/0%=←&).  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

.OTEQUEELALGORITMO2ÈPIDO?ITERATIVONECESITAPARASUFUNCIONAMIENTODEOTRO ALGORITMO ELCUALSEPRESENTAACONTINUACIØN !LGORITMO 2EDUCE?ITERATIVO 2EDUCE?ITERATIVO).) &). 0/3 [).)Y&).REPRESENTANLASPOSICIONESDELOSEXTREMOSIZQUIERDOYDERECHO RESPECTIVAMENTE DELCONJUNTODEELEMENTOSAEVALUAR0/3ESUNAVARIABLEDONDESEALMACENARÈELRESULTADODE ESTEALGORITMO] [):1 $%2Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO]  (ACER):1←).) $%2←&). 0/3←).)Y"!.$←6%2$!$%2/  -IENTRAS"!.$6%2$!$%2/ 2EPETIR  -IENTRAS!;0/3=≤!;$%2= Y0/3≠$%2 2EPETIR (ACER$%2←$%2n  [&INDELCICLODELPASO]  3I0/3$%2 ENTONCES

 03%&/"$*Î/*/5&3/"

359

(ACER"!.$←&!,3/ SINO (ACER!58←!;0/3= !;0/3=←!;$%2= !;$%2=←!58Y 0/3←$%2  -IENTRAS!;0/3=≥!;):1= Y0/3≠):1 2EPETIR (ACER):1←):1   [&INDELCICLODELPASO]  3I0/3):1 ENTONCES (ACER"!.$←&!,3/ SINO (ACER!58←!;0/3= !;0/3=←!;):1= !;):1=←!58Y0/3←):1  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

%JEMPLO

%N LA TABLA  SE EXPONEN LOS PASOS NECESARIOS PARA ORDENAR LAS CLAVES DEL ARREGLO UNIDIMENSIONAL! !                 ,ACOLUMNA%842%-/CONTIENELOSEXTREMOSIZQUIERDOYDERECHODELCONJUNTO DEELEMENTOSAEVALUAR%N0),!-%./2SEALMACENAELEXTREMOIZQUIERDOYEN0),! -!9/2ELEXTREMODERECHODELOSCONJUNTOSPENDIENTESDETRATAR 5NALEVEMEJORAENELFUNCIONAMIENTODELMÏTODORÈPIDOSEPUEDEPRODUCIRSIEL PRIMERELEMENTOPOSICIONADOENELARREGLOSEENCUENTRAENLAMITADOMUYPRØXIMOASU MITAD0ARALOGRARESTOÞLTIMOSENECESITAPERMUTARLOSCOMPONENTESDELARREGLODETAL FORMAQUEPARAELVALOR8TODOSLOSELEMENTOSQUESEENCUENTRENASUIZQUIERDADESDE !;=HASTA!;I= DONDEIESIGUALAN n SEANMENORESOIGUALESAÏLYTODOSLOSQUE SEENCUENTRENASUDERECHADESDE!;I =HASTA!;.=SEANMAYORESOIGUALESAÏL0OR EJEMPLO ENELSIGUIENTEARREGLOUNIDIMENSIONAL! !          ESELELEMENTOQUEOCUPALAPOSICIØNCENTRALDELARREGLOORDENADOYDIVIDEAÏSTEEN DOSMITADESIGUALES1UEDALATAREADECONSTRUIRELALGORITMOQUEENCUENTRAALELEMENTO 8QUEOCUPALAPOSICIØNCENTRALDELARREGLO

!NÉLISISDEElCIENCIADELMÏTODOQUICKSORT %LMÏTODOQUICKSORTESELMÈSRÈPIDODEORDENACIØNINTERNAQUEEXISTEENLAACTUALIDAD %STOESSORPRENDENTE PORQUEELMÏTODOTIENESUORIGENENELMÏTODODEINTERCAMBIO DIRECTO EL PEOR DE TODOS LOS MÏTODOS DIRECTOS $IVERSOS ESTUDIOS REALIZADOS SOBRE SU COMPORTAMIENTODEMUESTRANQUESISEESCOGEENCADAPASADAELELEMENTOQUEOCUPALA

360 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 4!",!













0/3)#)/.%3    













%842%-/

0),! -%./2

0),! -!9/2

































 

.),

.),

































 









































































































































































 

 

 

 

































 





































 

.),

.),

































 





































 

.),

.),

































.),

.),

.),

POSICIØNCENTRALDELCONJUNTODEDATOSAANALIZAR ELNÞMERODEPASADASNECESARIASPARA ORDENARLOESDELORDENDELOGN2ESPECTODELNÞMERODECOMPARACIONES SIELTAMA×O DELARREGLOESUNAPOTENCIADE ENLAPRIMERAPASADAREALIZARÈNn COMPARACIONES ENLASEGUNDANn COMPARACIONES PEROENDOSCONJUNTOSDIFERENTES ENLATERCERA REALIZARÈNn COMPARACIONES PEROENCUATROCONJUNTOSDIFERENTESYASÓSUCESIVA MENTE0ORLOTANTO #   N  

 N  



 N  

x  N 

 N   N 

 03%&/"$*Î/*/5&3/"

361

LOCUALESLOMISMOQUE #Nn Nn Nn  Nn 3ISECONSIDERAACADAUNODELOSCOMPONENTESDELASUMATORIACOMOUNTÏRMINOY ELNÞMERODETÏRMINOSDELASUMATORIAESIGUALAM ENTONCESSETIENEQUE #Nn M #ONSIDERANDOQUEELNÞMERODETÏRMINOSDELASUMATORIAM ESIGUALALNÞMERODE PASADAS YQUEÏSTEESIGUALALOGN LAEXPRESIØNANTERIORQUEDA

▼ &ØRMULA

#Nn LOGN

3IN EMBARGO ENCONTRAR EL ELEMENTO QUE OCUPE LA POSICIØN CENTRAL DEL CONJUNTO DEDATOSQUESEVANAANALIZARESUNATAREADIFÓCIL YAQUEEXISTENNPOSIBILIDADESDE LOGRARLO!DEMÈS EL RENDIMIENTO MEDIO DEL MÏTODO ES APROXIMADAMENTE  LN  INFERIORALCASOØPTIMO PORLOQUE(OARE ELAUTORDELMÏTODO PROPONECOMOSOLUCIØN QUEELELEMENTO8SESELECCIONEARBITRARIAMENTEOBIENENTREUNAMUESTRARELATIVAMENTE PEQUE×ADEELEMENTOSDELARREGLO %LPEORCASOOCURRECUANDOLOSELEMENTOSDELARREGLOYASEENCUENTRANORDENADOS OBIENCUANDOSEENCUENTRANENORDENINVERSO3UPONGAMOS POREJEMPLO QUESEDEBE ORDENARELSIGUIENTEARREGLOUNIDIMENSIONALQUEYASEENCUENTRAORDENADO !         3ISEESCOGEARBITRARIAMENTEELPRIMERELEMENTO ENTONCESSEPARTICIONARÈEL ARREGLOENDOSMITADES UNADEYOTRADENn ELEMENTOS        

3ISECONTINÞACONELPROCESODEORDENACIØNYSEESCOGENUEVAMENTEELPRIMERELE MENTO DELCONJUNTODEDATOSQUESEANALIZARÈN ENTONCESSEDIVIDIRÈELARREGLOEN DOSNUEVOSCONJUNTOS NUEVAMENTEUNODEYOTRODENn ELEMENTOS0ORLOTANTO EL NÞMERODECOMPARACIONESQUESEREALIZARÈNSERÈ #MÈX  N  N   N  x  

N  N 

 

QUEESIGUALA

#MÈX

N N 

 

▼ &ØRMULA

362 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ #OMOCONCLUSIØN SEPUEDEAlRMARQUEELTIEMPOPROMEDIODEEJECUCIØNDELALGO RITMOESPROPORCIONALAN LOGN /N LOGN %NELPEORCASO ELTIEMPODEEJECUCIØN ESPROPORCIONALAN /N 

 /RDENACIØNPORELMÏTODOHEAPSORTMONTÓCULO %LMÏTODODEORDENACIØNHEAPSORTSECONOCETAMBIÏNCOMOMONTÓCULO3UNOMBRESE DEBEASUAUTOR *77ILLIAMS QUIENLOLLAMØASÓ%SELMÈSElCIENTEDELOSMÏTODOS DEORDENACIØNQUETRABAJANCONÈRBOLES,AIDEACENTRALDEESTEALGORITMOSEBASAENDOS OPERACIONES  #ONSTRUIRUNMONTÓCULO  %LIMINARLARAÓZDELMONTÓCULOENFORMAREPETIDA %SIMPORTANTESE×ALARQUEUNMONTÓCULOSEDElNECOMO0ARATODONODODELÈRBOLSE DEBECUMPLIRQUESUVALORSEAMAYOROIGUALQUEELVALORDECUALQUIERADESUSHIJOS

%JEMPLO

%NLAlGURASEMUESTRAUNMONTÓCULO!LLÓSEPUEDEOBSERVARQUEPARACADANODO+ DELÈRBOL SUVALORESMAYOROIGUALQUEELVALORDECUALQUIERADESUSHIJOS !HORA BIEN PARA REPRESENTAR UN MONTÓCULO EN UN ARREGLO LINEAL SE DEBE TENER EN CUENTAPARATODONODO+LOSIGUIENTE  %LNODO+SEALMACENAENLAPOSICIØN+CORRESPONDIENTEDELARREGLO  %LHIJOIZQUIERDODELNODO+SEALMACENAENLAPOSICIØN +  %LHIJODERECHODELNODO+SEALMACENAENLAPOSICIØN +  ,AlGURACONTIENELAREPRESENTACIØNDELMONTÓCULODELAlGURAENUNARREGLO UNIDIMENSIONAL! /BSERVEQUESISEDESEAOBTENERELHIJOIZQUIERDODELNODO!;= CUYOVALORES SEHACE!; =!;=YSUCONTENIDOES3IDESEAMOSOBTENERENCAMBIOELHIJO DERECHODE!;= HACEMOS!;  =!;=YSUCONTENIDOES

&)'52! -ONTÓCULOCON ELEMENTOS

 03%&/"$*Î/*/5&3/"

363

&)'52! 2EPRESENTACIØNDEUN MONTÓCULOENUNARREGLO LINEAL

!SUVEZ ESPOSIBLECALCULARELPADREDEUNNODONORAÓZ+CUALQUIERA TOMANDOLA PARTEENTERADE+ENTRE !SÓ POREJEMPLO SISEDESEAOBTENERELPADREDELNODO!;= CUYOVALORES SEHACE!;PARTEENTERAENTRE =!;=YSUCONTENIDOES

)NSERCIØNDEUNELEMENTOENUNMONTÓCULO ,AINSERCIØNDEUNELEMENTOENUNMONTÓCULOSELLEVAACABOPORMEDIODELOSSIGUIENTES PASOS  3EINSERTAELELEMENTOENLAPRIMERAPOSICIØNDISPONIBLE  3EVERIlCASISUVALORESMAYORQUEELDESUPADRE3ISECUMPLEESTACONDICIØN ENTONCES SE EFECTÞA EL INTERCAMBIO 3I NO SE CUMPLE ESTA CONDICIØN ENTONCES ELALGORITMOSEDETIENEYELELEMENTOQUEDAUBICADOENSUPOSICIØNCORRECTAENEL MONTÓCULO #ABEACLARARQUEELPASOSEAPLICADEMANERARECURSIVAYDESDEABAJOHACIAARRIBA

%JEMPLO

3UPONGAMOSQUESEQUIEREINCORPORARALMONTÓCULODELAlGURAELELEMENTO,AS COMPARACIONESQUEREALIZAMOSSON   

SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO

,UEGODEHABERINSERTADOELELEMENTO ELMONTÓCULOQUEDACOMOSEMUESTRAEN LAlGURA

&)'52! -ONTÓCULOCON ELEMENTOS .OTA3EUTILIZAmECHADISCON TINUAPARAINDICARLAPOSICIØN INICIALDONDESEINSERTAEL ELEMENTO

364 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ &)'52! -ONTÓCULOLUEGODEHABER INSERTADOLACLAVE

%JEMPLO

3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNMONTÓCULOQUESEENCUEN TRAVACÓO         ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEOBSERVAN ENLAlGURA%LMONTÓCULOSEREPRESENTACOMOÈRBOLYTAMBIÏNCOMOARREGLO,AS mECHASDISCONTINUASINDICANLAPOSICIØNINICIALDONDESEINSERTAELOLOSELEMENTOS

%JEMPLO

$ADOELMONTÓCULODELAlGURAF VERIlQUESIÏSTEQUEDAIGUALALMONTÓCULO REPRESEN TADOCOMOARREGLO DELAlGURA LUEGODEINSERTARLASSIGUIENTESCLAVES        

&)'52! )NSERCIONESENUN MONTÓCULO .OTA3EUTILIZALAmECHA DISCONTINUAPARAINDICARLAPO SICIØNINICIALDONDESEINSERTA ELOLOSELEMENTOS

 03%&/"$*Î/*/5&3/"

&)'52! CONTINUACIØN )NSERCIONESENUNMONTÓCULO .OTA3EUTILIZALAmECHADISCONTINUAPARAINDICARLAPOSICIØNINICIALDONDESEINSERTA ELOLOSELEMENTOS

365

366 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/       

&)'52! CONTINUACIØN )NSERCIONESENUNMON TÓCULO .OTA3EUTILIZALAmECHA DISCONTINUAPARAINDICARLAPO SICIØNINICIALDONDESEINSERTA ELOLOSELEMENTOS

%LALGORITMOPARAINSERTARELEMENTOSENUNMONTÓCULOES !LGORITMO )NSERTA?MONTÓCULO )NSERTA?MONTÓCULO! . [%L ALGORITMO INSERTA LOS ELEMENTOS EN UN MONTÓCULO REPRESENTADO COMO ARREGLO ! ES UN ARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) +Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO]  2EPETIRCON)DESDEHASTA. (ACER+←)Y"!.$←6%2$!$%2/  -IENTRAS+ Y"!.$6%2$!$%2/ 2EPETIR (ACER"!.$←&!,3/  3I!;+=!;PARTEENTERA+ENTRE =ENTONCES (ACER!58←!;PARTEENTERA+ENTRE = !;PARTEENTERA+ENTRE =←!;+= !;+=←!58 +←PARTEENTERA+ENTRE Y"!.$←6%2$!$%2/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

 03%&/"$*Î/*/5&3/"

367

&)'52! -ONTÓCULOREPRESENTADO COMOARREGLO UNIDIMENSIONAL

%LIMINACIØNDEUNMONTÓCULO %LPROCESOPARAOBTENERLOSELEMENTOSORDENADOSSEEFECTÞAELIMINANDOLARAÓZDELMON TÓCULOENFORMAREPETIDA!HORABIEN LOSPASOSNECESARIOSPARALOGRARLAELIMINACIØNDE LARAÓZDELMONTÓCULOSON  3EREEMPLAZALARAÓZCONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO  3EVERIlCASIELVALORDELARAÓZESMENORQUEELVALORMÈSGRANDEDESUSHIJOS3ISE CUMPLELACONDICIØN ENTONCESSEEFECTÞAELINTERCAMBIO3INOSECUMPLELACONDI CIØN ENTONCESELALGORITMOSEDETIENEYELELEMENTOQUEDAUBICADOENSUPOSICIØN CORRECTAENELMONTÓCULO #ABEACLARARQUEELPASOSEAPLICADEMANERARECURSIVAYDESDEARRIBAHACIAABAJO

%JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLARAÓZDELMONTÓCULO DELAlGURA 2EEMPLAZAMOSLARAÓZ  PORELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCU LO !CONTINUACIØNEFECTUAMOSLASSIGUIENTESCOMPARACIONES 

SÓHAYINTERCAMBIO

ESELMAYORDELOSHIJOSDE



SÓHAYINTERCAMBIO

ESELMAYORDELOSHIJOSDE

%LMONTÓCULO LUEGODEHABERSEELIMINADOLARAÓZ QUEDACOMOELQUESEPRESENTAEN LAlGURA

&)'52! -ONTÓCULOREPRESENTADO COMOÉRBOL

368 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ &)'52! -ONTÓCULOREPRESENTADO COMOÉRBOL

%JEMPLO

3UPONGAMOSQUESEDESEAELIMINARLARAÓZDELMONTÓCULO PRESENTADOCOMOARREGLO DE LAlGURA ENFORMAREPETIDA #ABEACLARARQUEALREEMPLAZARLARAÓZPORELÞLTIMOELEMENTODELMONTÓCULO ÏSTA SECOLOCAENLAPOSICIØNDELÞLTIMOELEMENTO%SDECIR LAPRIMERAVEZLARAÓZSERÈCOLO CADAENLAPOSICIØNN LASEGUNDAVEZENLAPOSICIØNNn LATERCERAVEZENLAPOSICIØN Nn YASÓSUCESIVAMENTEHASTAQUEQUEDECOLOCADAENLASPOSICIONESY ENFORMA RESPECTIVA,OSPASOSAREALIZARSON 02)-%2!%,)-).!#)».$%,!2!¶: 3EINTERCAMBIALARAÓZ  CONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO ,ASCOMPARACIONESQUESEREALIZANSON !;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

!;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

!;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

,UEGODEELIMINARLAPRIMERARAÓZ ELMONTÓCULOQUEDAASÓ                 &)'52! -ONTÓCULOREPRESENTADO COMOARREGLOUNIDIMEN SIONAL

 03%&/"$*Î/*/5&3/"

369

/BSERVEQUEELELEMENTOMÈSGRANDESEUBICØENLAÞLTIMAPOSICIØNDELARREGLO

3%'5.$!%,)-).!#)».$%,!2!¶: 3EINTERCAMBIALARAÓZ  CONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO ,ASCOMPARACIONESQUESEREALIZANSON !;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

!;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

!;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

,UEGODEELIMINARLASEGUNDARAÓZ ELMONTÓCULOQUEDAASÓ                

4%2#%2!%,)-).!#)».$%,!2!¶: 3EINTERCAMBIALARAÓZ  CONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO ,ASCOMPARACIONESQUESEREALIZANSON !;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

!;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

!;=!;=



SÓHAYINTERCAMBIO

!;=ESELMAYORDELOSHIJOSDE!;=

,UEGODEELIMINARLATERCERARAÓZ ELMONTÓCULOQUEDAASÓ                 %NLATABLASEPRESENTAELRESULTADODELASRESTANTESELIMINACIONES/BSERVEQUE LUEGODEELIMINARLARAÓZDELMONTÓCULO ENFORMAREPETIDA ELARREGLOQUEDAORDENADO !CONTINUACIØNSEPRESENTAELALGORITMOQUEELIMINASUCESIVAMENTELARAÓZDELMON TÓCULO#ABEACLARARQUEPARAEFECTODEAUMENTARLAElCIENCIADELALGORITMOSEELIMINAN LOS INTERCAMBIOS PARCIALES UTILIZANDO UNA VARIABLE AUXILIAR EN LA QUE SE ALMACENA EL ÞLTIMOELEMENTODELMONTÓCULO

370 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 4!",! %LIMINACIØN





-ONTÓCULO

























































































































































































































































































































































































































!LGORITMO %LIMINA?MONTÓCULO %LIMINA?MONTÓCULO! . [%LALGORITMOELIMINALARAÓZDELMONTÓCULOENFORMAREPETIDA!ESUNARREGLOUNIDIMENSIONAL DE.ELEMENTOS] [) !58 ):1 $%2 + Y!0 SON VARIABLES DE TIPO ENTERO "//, ES UNA VARIABLE DE TIPO BOOLEANO]  2EPETIRCON)DESDE.HASTA[#ICLODESCENDENTE] (ACER!58←!;)= !;)=←!;= ):1← $%2← +←Y "//,←6%2$!$%2/  -IENTRAS):1) Y"//,6%2$!$%2/ 2EPETIR (ACER-!9/2←!;):1=Y!0←):1  3I-!9/2!;$%2= Y$%2≠) ENTONCES (ACER-!9/2←!;$%2=Y!0←$%2  [&INDELCONDICIONALDELPASO]  3I!58-!9/2 ENTONCES (ACER!;+=←!;!0=Y+←!0 SINO (ACER"//,←&!,3/  [&INDELCONDICIONALDELPASO] (ACER):1←+ Y$%2←):1   [&INDELCICLODELPASO] (ACER!;+=←!58  [&INDELCICLODELPASO]

 03%&/"$*Î/&95&3/"

371

%LPROCESODEORDENACIØNPORELMÏTODODELMONTÓCULOCONSTADEDOSPARTES  #ONSTRUIRELMONTÓCULO%STAOPERACIØNSEBASAENLADEINSERCIØNPRESENTADAENEL ALGORITMO  %LIMINARREPETIDAMENTELARAÓZDELMONTÓCULO%STAOPERACIØNSEBASAENLADEELIMI NACIØNPRESENTADAENELALGORITMO %LALGORITMODEORDENACIØN RESULTAENTONCESDELASIGUIENTEMANERA !LGORITMO -ONTÓCULO -ONTÓCULO! . [%LALGORITMOORDENALOSELEMENTOSDELARREGLOUTILIZANDOELMÏTODODELMONTÓCULO!ESUN ARREGLOUNIDIMENSIONALDE.ELEMENTOS]  ,LAMARALALGORITMO)NSERTA?MONTÓCULOCON!Y.  ,LAMARALALGORITMO%LIMINA?MONTÓCULOCON!Y.

!NÉLISISDEElCIENCIADELMÏTODODELMONTÓCULO %LANÈLISISDELMÏTODODELMONTÓCULO COMOELDELOSMÏTODOSLOGARÓTMICOS ESCOMPLEJO %SIMPORTANTETENERENCUENTATANTOLAFASEDECONSTRUCCIØNDELMONTÓCULOCOMOLAFASE DONDESEELIMINAREPETIDAMENTESURAÓZ PARAlNALMENTEOBTENERELARREGLOORDENADO !DIFERENCIADELOQUESEPUDIERAPENSAR YAQUEENLAFASEDECONSTRUCCIØNDELMON TÓCULOLOSELEMENTOSMAYORESSECARGANHACIALAIZQUIERDAYENLAFASEDEELIMINACIØNDE LARAÓZLOSELEMENTOSMAYORESSECARGANHACIALADERECHA ÏSTEESUNMÏTODOMUYRÈPIDO SOBRETODOPARAVALORESGRANDESDE.,OSESTUDIOSREALIZADOSALRESPECTODEMUESTRAN QUEELTIEMPODEEJECUCIØNDELALGORITMOENAMBASFASESESDE/N LOGN  !UNQUEELMÏTODODELMONTÓCULOPUEDESERUNPOCOMÈSLENTOQUEELQUICKSORTSE ESTIMAEN ESELÞNICOQUEGARANTIZAQUEAUNENELPEORCASOSUTIEMPODEEJECU CIØNESPROPORCIONALAN LOGN /N LOGN 2ECUERDEQUEELTIEMPODEEJECUCIØNDEL MÏTODOQUICKSORT ENELPEORCASO ESPROPORCIONALAN /N 

 /2$%.!#)¼.%84%2.! %NLAACTUALIDADESMUYCOMÞNPROCESARTALESVOLÞMENESDEINFORMACIØNQUELOSDATOS NOSEPUEDENALMACENARENLAMEMORIAPRINCIPALDELACOMPUTADORA%STOSDATOS ORGA NIZADOSENARCHIVOS SEGUARDANENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO COMO CINTAS DISCOS ETCÏTERA %LPROCESODEORDENARLOSDATOSALMACENADOSENVARIOSARCHIVOSSECONOCECOMO FUSIØNOMEZCLASEENTIENDEPORESTECONCEPTOALACOMBINACIØNOINTERCALACIØNDEDOS OMÈSSECUENCIASORDENADASENUNAÞNICASECUENCIAORDENADA3EDEBEHACERHINCAPIÏEN

372 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ QUESØLOSECOLOCANENLAMEMORIAPRINCIPALDELACOMPUTADORALOSDATOSQUESEPUEDEN ACCEDERENFORMADIRECTA

 )NTERCALACIØNDEARCHIVOS 0OR INTERCALACIØN DE ARCHIVOS SE ENTIENDE LA UNIØN O FUSIØN DE DOS O MÈS ARCHIVOS ORDENADOSDEACUERDOCONUNDETERMINADOCAMPOCLAVE ENUNSOLOARCHIVO!NALICEMOS ELSIGUIENTEEJEMPLO

%JEMPLO

3UPONGAQUESETIENENDOSARCHIVOS &Y& CUYAINFORMACIØNESTÈORDENADADEACUER DOCONUNCAMPOCLAVE &     &       3EDEBEPRODUCIR ENTONCES UNARCHIVO&ORDENADO COMORESULTADODELAMEZCLA DE&Y&3ØLOSEPUEDENACCEDERENFORMADIRECTADOSCLAVES LAPRIMERADELARCHIVO & Y LA SEGUNDA DEL ARCHIVO & ,AS COMPARACIONES QUE SE REALIZAN PARA PRODUCIR EL ARCHIVO&SON 

SÓSECUMPLELACONDICIØN 3EESCRIBEENELARCHIVODESALIDA&YSEVUELVEALEEROTRACLAVE DE&



SÓSECUMPLELACONDICIØN 3EESCRIBEENELARCHIVODESALIDA&YSEVUELVEALEEROTRACLAVE DE&



NOSECUMPLELACONDICIØN 3EESCRIBEENELARCHIVODESALIDA&YSEVUELVEALEEROTRACLAVE DE&

%LESTADODELOSARCHIVOS& &Y& HASTAELMOMENTO ESCOMOSEMUESTRAMÈS ABAJO,AmECHASE×ALAELÞLTIMOELEMENTOLEÓDODELOSARCHIVOSQUESEESTÈNINTERCA LANDO ↓ &     ↓ &       &   %LPROCESOCONTINÞAHASTAQUEENUNOUOTROARCHIVOSEDETECTESUlNALENTALCASO SØLOSETENDRÈQUECOPIARLAINFORMACIØNDELARCHIVONOVACÓOALARCHIVODESALIDA&%L RESULTADOlNALDELAINTERCALACIØNENTRELOSARCHIVOS&Y&ES

 03%&/"$*Î/&95&3/"

373

&             !CONTINUACIØNSEMUESTRAELALGORITMODEINTERCALACIØNDEARCHIVOS !LGORITMO )NTERCALACIØN

)NTERCALACIØN& & & [%LALGORITMOINTERCALALOSELEMENTOSDEDOSARCHIVOSYAORDENADOS&Y&YALMACENAEL RESULTADOENELARCHIVO&] [2Y2SONVARIABLESDETIPOENTERO"!.Y"!.SONVARIABLESDETIPOBOOLEANO]

 !BRIRLOSARCHIVOS&Y&PARALECTURA  !BRIRELARCHIVO&PARAESCRITURA  (ACER"!.←6%2$!$%2/Y"!.←6%2$!$%2/  -IENTRAS NO SEA EL lN DE ARCHIVO DE & O "!.  &!,3/ Y NO SEA EL lN DE ARCHIVODE& O"!.&!,3/ 2EPETIR  3I"!.6%2$!$%2/ ENTONCES[3EDEBELEER2DE&] ,EER2DE& (ACER"!.←&!,3/  [&INDELCONDICIONALDELPASO]  3I"!.6%2$!$%2/ ENTONCES[3EDEBELEER2DE&] ,EER2DE& (ACER"!.←&!,3/  [&INDELCONDICIONALDELPASO]  3I22 ENTONCES %SCRIBIR2EN& (ACER"!.←6%2$!$%2/ SINO %SCRIBIR2EN& (ACER"!.←6%2$!$%2/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO] [6ERIlCASISELEYØUNELEMENTODE&YNOSECOPIØEN&]  3I"!.&!,3/ ENTONCES %SCRIBIR2EN&  -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN&  [&INDELCICLODELPASO]  [&INDELCONDICIONALDELPASO] [6ERIlCASISELEYØUNELEMENTODE&YNOSECOPIØEN&]  3I"!.&!,3/ ENTONCES %SCRIBIR2EN&  -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR

374 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/

,EER2DE& %SCRIBIR2EN&  [&INDELCICLODELPASO]  [&INDELCONDICIONALDELPASO]  [#ERRARLOSARCHIVOS& &Y&]

 /RDENACIØNDEARCHIVOS ,A ORDENACIØN DE ARCHIVOS SE EFECTÞA CUANDO EL VOLUMEN DE LOS DATOS ES DEMASIADO GRANDE Y ÏSTOS NO CABEN EN LA MEMORIA PRINCIPAL DE LA COMPUTADORA!L OCURRIR ESTA SITUACIØNNOSEPUEDENAPLICARLOSMÏTODOSDEORDENACIØNINTERNAESTUDIADOSENLAPRI MERAPARTEDEESTECAPÓTULO DEMODOQUESEDEBEPENSARENOTROTIPODEALGORITMOSPARA ORDENARDATOSALMACENADOSENARCHIVOS 0ORORDENACIØNDEARCHIVOSSEENTIENDE ENTONCES LAORDENACIØNOCLASIlCACIØNDE ÏSTOS ASCENDENTEODESCENDENTEMENTE DEACUERDOCONUNCAMPODETERMINADOALQUE SEDENOMINARÈCAMPOCLAVE,APRINCIPALDESVENTAJADEESTAORDENACIØNESELTIEMPODE EJECUCIØN DEBIDOALASSUCESIVASOPERACIONESDELECTURAYESCRITURAADEARCHIVO ,OS DOS MÏTODOS DE ORDENACIØN EXTERNA MÈS IMPORTANTES SON LOS BASADOS EN LA MEZCLADIRECTAYENLAMEZCLAEQUILIBRADA

 /RDENACIØNPORMEZCLADIRECTA %LMÏTODODEORDENACIØNPORMEZCLADIRECTAESPROBABLEMENTEELMÈSUTILIZADOPORSU FÈCILCOMPRENSIØN,AIDEACENTRALDEESTEALGORITMOCONSISTEENLAREALIZACIØNSUCESIVA DEUNAPARTICIØNYUNAFUSIØNQUEPRODUCESECUENCIASORDENADASDELONGITUDCADAVEZ MAYOR%NLAPRIMERAPASADA LAPARTICIØNESDELONGITUDYLAFUSIØNOMEZCLAPRODUCE SECUENCIASORDENADASDELONGITUD%NLASEGUNDAPASADA LAPARTICIØNESDELONGITUD YLAFUSIØNOMEZCLAPRODUCESECUENCIASORDENADASDELONGITUD%STEPROCESOSEREPITE HASTAQUELALONGITUDDELASECUENCIAPARALAPARTICIØNSEA 0ARTEENTERAN   $ONDENREPRESENTAELNÞMERODEELEMENTOSDELARCHIVOORIGINAL

%JEMPLO

3UPONGAMOSQUESEDESEAORDENARLASCLAVESDELARCHIVO&0ARAREALIZARTALACTIVIDADSE UTILIZANDOSARCHIVOSAUXILIARESALOSQUESELESDENOMINARÈ&Y& &                02)-%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD

 03%&/"$*Î/&95&3/"

375

& ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ & ʹ ʹ ʹ ʹ ʹ ʹ ʹ &USIØNENSECUENCIASDELONGITUD &  ʹ  ʹ  ʹ  ʹ  ʹ  ʹ  ʹ ʹ 3%'5.$!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &  ʹ  ʹ  ʹ  ʹ &  ʹ  ʹ  ʹ ʹ &USIØNENSECUENCIASDELONGITUD &    ʹ    ʹ    ʹ   ʹ 4%2#%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &    ʹ    ʹ &    ʹ   ʹ &USIØNENSECUENCIASDELONGITUD &        ʹ       ʹ #5!24!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &        ʹ &       ʹ &USIØNENSECUENCIASDELONGITUD &                !CONTINUACIØNSEPRESENTAELALGORITMODEORDENACIØNDEARCHIVOSPORELMÏTODO DEMEZCLADIRECTA

376 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ !LGORITMO -EZCLA?DIRECTA -EZCLA?DIRECTA& & & . [%LALGORITMOORDENALOSELEMENTOSDELARCHIVO&PORELMÏTODODEMEZCLADIRECTA5TILIZADOS ARCHIVOSAUXILIARES&Y&.ESELNÞMERODEELEMENTOSDELARCHIVO&] [0!24ESUNAVARIABLEDETIPOENTERO]  (ACER0!24←  -IENTRAS0!24PARTEENTERA.   2EPETIR ,LAMARALALGORITMO0ARTICIONACON& & &Y0!24 ,LAMARALALGORITMO&USIONACON& & &Y0!24 (ACER0!24←0!24   [&INDELCICLODELPASO]

/BSERVEQUEELALGORITMOREQUIEREPARASUFUNCIONAMIENTODEDOSALGORITMOSAUXI LIARES LOSCUALESSEPRESENTANACONTINUACIØN

!LGORITMO 0ARTICIONA

0ARTICIONA& & & 0!24 [%L ALGORITMO GENERA DOS ARCHIVOS AUXILIARES & Y & A PARTIR DEL ARCHIVO & 0!24 ES LA LONGITUDDELAPARTICIØNQUESEVAAREALIZAR] [+ ,Y2SONVARIABLESDETIPOENTERO]  !BRIRELARCHIVO&PARALECTURA  !BRIRLOSARCHIVOS&Y&PARAESCRITURA  -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR (ACER+←  -IENTRAS+0!24 YNOSEAELlNDEARCHIVODE& GZeZi^g ,EER2DE& %SCRIBIR2EN& (ACER+←+   [&INDELCICLODELPASO] (ACER,←  -IENTRAS,0!24 YNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN& (ACER,←,   [&INDELCICLODELPASO]  [&INDELCICLODELPASO]

 03%&/"$*Î/&95&3/"

377

!LGORITMO &USIONA &USIONA& & & 0!24 [%LALGORITMOFUSIONALOSARCHIVOS&Y&ENELARCHIVO&0!24ESLALONGITUDDELAPARTICIØN QUESEREALIZØPREVIAMENTE] [2 2 +Y,SONVARIABLESDETIPOENTERO"Y"SONVARIABLESDETIPOBOOLEANO]  !BRIRELARCHIVO&PARAESCRITURA  !BRIRLOSARCHIVOS&Y&PARALECTURA  (ACER"←6%2$!$%2/Y"←6%2$!$%2/  3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/  [&INDELCONDICIONALDELPASO]  3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/  [&INDELCONDICIONALDELPASO]  -IENTRASNOSEAELlNDEARCHIVODE& O"&!,3/ YNOSEAEL lNDEARCHIVODE& O"&!,3/ 2EPETIR (ACER+←Y,←  -IENTRAS+0!24 Y"&!,3/ Y,0!24 Y"&!,3/ 2EPETIR  3I2≤2 ENTONCES %SCRIBIR2EN& (ACER"←6%2$!$%2/Y+←+   3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/  [&INDELCONDICIONALDELPASO] SINO %SCRIBIR2EN& (ACER"←6%2$!$%2/Y,←,   3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  -IENTRAS+0!24 Y"&!,3/ 2EPETIR %SCRIBIR2EN& (ACER"←6%2$!$%2/Y+←+   3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

378 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/  -IENTRAS,0!24 Y"&!,3/ 2EPETIR %SCRIBIR2EN& (ACER"←6%2$!$%2/Y,←,   3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [&INDELCICLODELPASO]  3I"&!,3/ ENTONCES %SCRIBIR2EN&  [&INDELCONDICIONALDELPASO]  3I"&!,3/ ENTONCES %SCRIBIR2EN&  [&INDELCONDICIONALDELPASO]  -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN&  [&INDELCONDICIONALDELPASO]  -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN&  [&INDELCICLODELPASO]  [#ERRARLOSARCHIVOS& &Y&]

%JEMPLO

3UPONGAMOS QUE SE DESEA ORDENAR LAS CLAVES DEL ARCHIVO & UTILIZANDO EL MÏTODO DE MEZCLADIRECTO &                    ,OSPASOSQUESEREALIZANSON 02)-%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ & ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ &USIØNENSECUENCIASDELONGITUD &  ʹ  ʹ  ʹ  ʹ  ʹ  ʹ  ʹ  ʹ  ʹ ʹ

 03%&/"$*Î/&95&3/"

379

3%'5.$!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &  ʹ  ʹ  ʹ  ʹ  ʹ &  ʹ  ʹ  ʹ  ʹ ʹ &USIØNENSECUENCIASDELONGITUD &    ʹ    ʹ    ʹ    ʹ   ʹ 4%2#%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &    ʹ    ʹ   ʹ &    ʹ    ʹ &USIØNENSECUENCIASDELONGITUD &        ʹ     ʹ   ʹ   ʹ #5!24!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &        ʹ   ʹ &        ʹ &USIØNENSECUENCIASDELONGITUD &                ʹ  ʹ 15).4!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD &                ʹ &   ʹ &USIØNENSECUENCIASDELONGITUD &                   

380 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/

 /RDENACIØNPORELMÏTODODEMEZCLAEQUILIBRADA %L MÏTODO DE ORDENACIØN POR MEZCLA EQUILIBRADA CONOCIDO TAMBIÏN CØMO MEZCLA NATURAL ESUNAOPTIMIZACIØNDELMÏTODODEMEZCLADIRECTA ,AIDEACENTRALDEESTEALGORITMOCONSISTEENREALIZARLASPARTICIONESTOMANDOSE CUENCIASORDENADASDEMÈXIMALONGITUDENLUGARDESECUENCIASDETAMA×OlJOPREVIA MENTEDETERMINADAS,UEGOSEREALIZALAFUSIØNDELASSECUENCIASORDENADAS ENFORMA ALTERNADA SOBREDOSARCHIVOS!PLICANDOESTASACCIONESENFORMAREPETIDASELOGRARÈQUE ELARCHIVOORIGINALQUEDEORDENADO0ARALAREALIZACIØNDEESTEPROCESODEORDENACIØN SENECESITARÈNCUATROARCHIVOS%LARCHIVOORIGINAL&YTRESARCHIVOSAUXILIARESALOS QUESEDENOMINARÈ& &Y&$EESTOSARCHIVOS DOSSERÈNCONSIDERADOSDEENTRADA YDOSDESALIDAESTO DEMANERAALTERNADA CONELOBJETODEREALIZARLAFUSIØN PARTICIØN %LPROCESOTERMINACUANDOENLAREALIZACIØNDEUNAFUSIØN PARTICIØNELSEGUNDOARCHIVO QUEDEVACÓO

%JEMPLO

3UPONGAMOS QUE SE DESEA ORDENAR LAS CLAVES DEL ARCHIVO & UTILIZANDO EL MÏTODO DE MEZCLAEQUILIBRADA &                ,OSPASOSQUESEREALIZANSON 0!24)#)».).)#)!, &  ʹ ʹ ʹ  ʹ &  ʹ  ʹ     ʹ 02)-%2!&53)». 0!24)#)». &    ʹ        ʹ &   ʹ 3%'5.$!&53)». 0!24)#)». &       ʹ &        ʹ 4%2#%2!&53)». 0!24)#)». &                & /BSERVEQUEALREALIZARLATERCERAFUSIØN PARTICIØNELSEGUNDOARCHIVOQUEDAVACÓO PORLOTANTO SEPUEDEAlRMARQUEELARCHIVOYASEENCUENTRAORDENADO!CONTINUACIØN SEPRESENTALADESCRIPCIØNFORMALDELALGORITMODEMEZCLAEQUILIBRADA

 03%&/"$*Î/&95&3/"

381

!LGORITMO -EZCLA?EQUILIBRADA -EZCLA?EQUILIBRADA& & & & [%LALGORITMOORDENALOSELEMENTOSDELARCHIVO&PORELMÏTODODEMEZCLAEQUILIBRADA5TILIZA TRESARCHIVOSAUXILIARES& &Y&] ["!.$ESUNAVARIABLEDETIPOBOOLEANO]  ,LAMARALALGORITMO0ARTICIØN?INICIALCON& &Y&  ,LAMARALALGORITMO0ARTICIØN?FUSIØNCON& & &Y& (ACER"!.$←&!,3/  -IENTRAS&≠6!#¶/ O&≠6!#¶/ 2EPETIR  3I"!.$6%2$!$%2/ ENTONCES ,LAMARALALGORITMO0ARTICIØN?FUSIØNCON& & &Y& (ACER"!.$←&!,3/ SINO ,LAMARALALGORITMO0ARTICIØN?FUSIØNCON& & &Y& (ACER"!.$←6%2$!$%2/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]

%L ALGORITMO  REQUIERE PARA SU FUNCIONAMIENTO DE DOS ALGORITMOS AUXILIARES 0ARTICIØN?INICIALY0ARTICIØN?FUSIØN LOSCUALESSEPRESENTANACONTINUACIØN !LGORITMO 0ARTICIØN?INICIAL 0ARTICIØN?INICIAL& & & [%LALGORITMOPRODUCELAPARTICIØNINICIALDELARCHIVO&ENDOSARCHIVOSAUXILIARES &Y&] [!58Y2SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO]  !BRIRELARCHIVO&PARALECTURA  !BRIRLOSARCHIVOS&Y&PARAESCRITURA  ,EER2DE&  %SCRIBIR2EN&  (ACER"!.$←6%2$!$%2/Y!58←2  -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE&  3I2≥!58 ENTONCES (ACER!58←2  3I"!.$6%2$!$%2/ ENTONCES %SCRIBIR2EN& SINO

382 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ %SCRIBIR2EN&  [&INDELCONDICIONALDELPASO] SINO (ACER!58←2  3I"!.$6%2$!$%2/ ENTONCES %SCRIBIR2EN& (ACER"!.$←&!,3/ SINO %SCRIBIR2EN& (ACER"!.$←6%2$!$%2/  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  [#ERRARLOSARCHIVOS& &Y&]

!LGORITMO 0ARTICIØN?FUSIØN 0ARTICIØN?FUSIØN&! &" &# &$ [%LALGORITMOPRODUCELAPARTICIØNYLAFUSIØNDELOSARCHIVOS&!Y&" ENLOSARCHIVOS&#Y &$] [2 2 Y!58 SON VARIABLES DE TIPO ENTERO "!. "!. Y "!. SON VARIABLES DE TIPO BOOLEANO]  !BRIRLOSARCHIVOS&!Y&"PARALECTURA  !BRIRLOSARCHIVOS&#Y&$PARAESCRITURA  (ACER"!.←6%2$!$%2/ "!.←6%2$!$%2/ "!.←6%2$!$%2/Y !58←n[!58SEINICIALIZACONUNVALORNEGATIVOALTO]  -IENTRASNOSEAELlNDEARCHIVODE&! O"!.&!,3/ YNO SEAELlNDEARCHIVODE&" O"!.&!,3/ 2EPETIR  3I"!.6%2$!$%2/ ENTONCES ,EER2DE&! (ACER"!.←&!,3/  [&INDELCONDICIONALDELPASO]  3I"!.6%2$!$%2/ ENTONCES ,EER2DE&" (ACER"!.←&!,3/  [&INDELCONDICIONALDELPASO]  3I22 ENTONCES  3I2≥!58 ENTONCES  3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN&# SINO

 03%&/"$*Î/&95&3/"

%SCRIBIR2EN&$  [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←2 SINO  3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN&# (ACER"!.←&!,3/ SINO %SCRIBIR2EN&$ (ACER"!.←6%2$!$%2/  [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←n  [&INDELCONDICIONALDELPASO] SINO  3I2≥!58 ENTONCES  3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN&# SINO %SCRIBIR2EN&$  [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←2 SINO  3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN&# (ACER"!.←&!,3/ SINO %SCRIBIR2EN&$ (ACER"!.←6%2$!$%2/  [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←n  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.&!,3/ ENTONCES  3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN&#  -IENTRASNOSEAELlNDEARCHIVODE&! 2EPETIR ,EER2DE&! %SCRIBIR2EN&#  [&INDELCICLODELPASO] SINO %SCRIBIR2EN&$  -IENTRASNOSEAELlNDEARCHIVODE&! 2EPETIR ,EER2DE&! %SCRIBIR2EN&$

383

384 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/  [&INDELCICLODELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  3I"!.&!,3/ ENTONCES  3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN&#  -IENTRASNOSEAELlNDEARCHIVODE&" 2EPETIR ,EER2DE&" %SCRIBIR2EN&#  [&INDELCICLODELPASO] SINO %SCRIBIR2EN&$  -IENTRASNOSEAELlNDEARCHIVODE&" 2EPETIR ,EER2DE&" %SCRIBIR2EN&$  [&INDELCICLODELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [#ERRARLOSARCHIVOS&! &" &#Y&$]

%JEMPLO

3UPONGAMOS QUE SE DESEA ORDENAR LAS CLAVES DEL ARCHIVO & UTILIZANDO EL MÏTODO DE MEZCLAEQUILIBRADA &                    ,OSPASOSQUESEREALIZANSON 0!24)#)».).)#)!, &  ʹ     ʹ   ʹ ʹ &   ʹ  ʹ ʹ 02)-%2!&53)». 0!24)#)». &     ʹ     ʹ &        ʹʹ 3%'5.$!&53)». 0!24)#)». &             ʹ &      ʹ

 03%&/"$*Î/&95&3/"

385

4%2#%2!&53)». 0!24)#)». &                    &

386 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/

▼ %*%2#)#)/3 /RDENACIØNINTERNA Ê £° %NUNARREGLOSEGUARDANLOSAPELLIDOSDE.ALUMNOS!PLIQUEELMÏTODODELABUR BUJAˆORDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOˆPARAORDENARELARREGLO ENFORMAASCENDENTE DEMANERAQUE !P≤!P≤≤!PN Ê Ó° 2ESUELVAELPROBLEMAAPLICANDOELMÏTODODELABURBUJACONSE×AL Ê Î° 2ESUELVAELPROBLEMAAPLICANDOELMÏTODOSHAKERSORT Ê {° #OMPAREELTIEMPODEEJECUCIØNDELASSOLUCIONES YPARADISTINTOSVALORESDE . Ê x° $ADOUNARREGLOUNIDIMENSIONALDE.NÞMEROSENTEROS ORDÏNELOENFORMADESCEN DENTEAPLICANDO A )NSERCIØNDIRECTA B )NSERCIØNBINARIA C 3ELECCIØNDIRECTA #OMPAREELTIEMPODEEJECUCIØNDELASSOLUCIONESA BYCPARADISTINTOSVALORES DE. Ê È° 3ETIENENTRESARREGLOSPARALELOS%LPRIMERODEELLOSALMACENALASMATRÓCULASDE. ALUMNOSELSEGUNDO LASCALIlCACIONESDELOS.ALUMNOSOBTENIDASENUNEXAMEN lNAL YELTERCERO ELNÞMEROTOTALDEMATERIASAPROBADASPORCADAALUMNO,OSELE MENTOSDELOSARREGLOSSECORRESPONDEN A !PLIQUEELMÏTODODEINSERCIØNDIRECTAPARAORDENARLOSARREGLOS DEMANERAQUE QUEDENORDENADOSENFORMAASCENDENTEPORMATRÓCULA B !PLIQUEELMÏTODOQUICKSORTPARAORDENARLOSARREGLOS DEMANERAQUEQUEDENORDE NADOSENFORMADESCENDENTEPORELNÞMEROTOTALDEMATERIASAPROBADAS Ê Ç° %NCIERTAEMPRESASEMANEJAUNALISTADEPRECIOSDELOS.ARTÓCULOSQUESEVENDEN $ECADAARTÓCULOSETIENELASIGUIENTEINFORMACIØN ◗ ◗ ◗

#LAVEDELARTÓCULO .OMBREDELARTÓCULO 0RECIODELARTÓCULO

A /RDENEELARREGLOENFORMAASCENDENTESEGÞNELCAMPOhCLAVEv!PLIQUEELMÏTODO QUICKSORT

&+&3$*$*04

387

B /RDENEELARREGLOENFORMADESCENDENTESEGÞNELCAMPOhPRECIOv!PLIQUEELMÏTO DODELMONTÓCULO Ê n° 2ESUELVA EL INCISO A DEL PROBLEMA  APLICANDO EL MÏTODO DE SELECCIØN DIRECTA #OMPAREELTIEMPODEEJECUCIØNDEESTASOLUCIØNCONLAOBTENIDAENELEJERCICIO ANTERIOR PARADISTINTOSVALORESDE. Ê ™° 5NACOMPA×ÓAPROPIETARIADEUNACADENADEHOTELESQUIEREQUESEORDENESUINFOR MACIØN$ECADAHOTELSETIENENLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗

.OMBREDELHOTEL #IUDADENLAQUESEENCUENTRAELHOTEL .ÞMERODEESTRELLAS .ÞMERODECUARTOS %NUNAMISMACIUDADPUEDEHABERVARIOSHOTELESDELACOMPA×ÓA %SCRIBAUNPROGRAMAQUEORDENEELARREGLOSEGÞNELCAMPOhCIUDADv ENPRIMER TÏRMINO YLUEGO SEGÞNELCAMPO hNOMBREv%SDECIR ELARREGLODEBEQUEDAR .OMBRE .OMBRE  .OMBREI  .OMBREN

#IUDAD #IUDAD

.ÞMESTRELLAS .ÞMESTRELLAS

.ÞMCUARTOS .ÞMCUARTOS

#IUDAD

.ÞMESTRELLASI

.ÞMCUARTOSI

#IUDADK

.ÞMESTRELLASK

.ÞMCUARTOSN

$ONDE ◗ ◗ ◗



#IUDAD#IUDAD#IUDADK .OMBRE.OMBRE.OMBREIn .OMBREI.OMBREI .OMBREJn  .OMBRET.OMBRET .OMBREN

£ä°2ETOMEELPROBLEMADELCAPÓTULO/RDENELOSARREGLOS352 #%.42/Y./2 4% APLICANDO A )NSERCIØNDIRECTA B )NSERCIØNBINARIA C 3HELL ££°5NAESCUELATIENEALMACENADOSLOSPRINCIPALESDATOSDECADAALUMNO²STOSSON ◗ ◗ ◗ ◗

.OMBREDELALUMNO -ATRÓCULA .ÞMERODEMATERIASAPROBADAS 0ROMEDIO

388 >«‰ÌՏœÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ A !PLIQUEELMÏTODODESELECCIØNDIRECTAPARAORDENARELARREGLODE.ALUMNOSEN FORMAASCENDENTE SEGÞNELCAMPOhNOMBREv B !PLIQUEELMÏTODOQUICKSORTPARAORDENARELARREGLODE.ALUMNOSENFORMAASCEN DENTE SEGÞNELCAMPOhNÞMERODEMATERIASAPROBADASv £Ó°3ETIENEUNARREGLODE.NÞMEROSENTEROS A z#UÈNTASCOMPARACIONESYCUÈNTOSINTERCAMBIOSSEDEBENREALIZARSISEORDENAEL ARREGLOCONELMÏTODODELABURBUJA B z#UÈNTASCOMPARACIONESYCUÈNTOSINTERCAMBIOSSEDEBENREALIZARSISEORDENAEL ARREGLOCONELMÏTODODESELECCIØNDIRECTA £Î°$ADOUNARREGLOUNIDIMENSIONALDE.NÞMEROSENTEROSQUEDEBESERORDENADOEN FORMAASCENDENTE CONTESTELASSIGUIENTESPREGUNTAS A #UÈNTASCOMPARACIONESEINTERCAMBIOSSEDEBENREALIZAR APLICANDOELMÏTODODE INSERCIØNDIRECTA SI ◗ %LARREGLOYAESTÈORDENADO ◗ %LARREGLOESTÈORDENADOENFORMADESCENDENTE B #ONTESTELAPREGUNTADELINCISOANTERIOR PARAELMÏTODOQUICKSORT C #ONTESTELAPREGUNTADELINCISOANTERIOR PARAELMÏTODODELMONTÓCULO £{°2ETOMEELPROBLEMA CONSIDERANDOQUESEDElNIØLACLASE!RTÓCULOYSETIENEUN ARREGLODEOBJETOSDEESTETIPO%SCRIBAUNAFUNCIØNQUEORDENEELARREGLODEOBJE TOS UTILIZANDOELALGORITMODEQUICKSORT £x°$ElNAUNACLASE!RREGLO SEGÞNLOVISTOENELCAPÓTULO%NLACLASEDEBEINCLUIRPOR LOMENOSMÏTODOSDELOSESTUDIADOSENESTECAPÓTULOPARAORDENARLOSELEMENTOS DELARREGLO £È°%SCRIBAUNAFUNCIØNQUEANIMEELPROCESODEORDENACIØNUSANDOELALGORITMODE QUICKSORT%SDECIR ENLAMEDIDAENQUESEVAORDENANDOELARREGLO ENLAPANTALLA SEDEBEIRREmEJANDOGRÈlCAMENTESUCAMBIODEESTADO

/RDENACIØNEXTERNA £Ç°$ADOUNARCHIVODENÞMEROSENTEROS ORDÏNELOEIMPRÓMALO £n°%NELARCHIVO%-0,%!$/3SETIENEINFORMACIØNSOBRELOSEMPLEADOSDEUNAEM PRESA,OSDATOSALMACENADOSPORCADAEMPLEADOSON ◗ ◗ ◗

.OMBRE %STADOCIVIL !NTIGàEDAD

&+&3$*$*04 ◗ ◗

389

#ATEGORÓA 3UELDO /RDENEELARCHIVOSEGÞNELCAMPOhNOMBREv

A !PLIQUEMEZCLADIRECTA B !PLIQUEMEZCLAEQUILIBRADA £™°3ETIENEUNARCHIVOCONINFORMACIØNSOBREHUÏSPEDESDEUNHOTEL ◗ ◗ ◗

.ÞMERODEHABITACIØN .OMBREDELHUÏSPED &ECHADELLEGADA /RDENEELARCHIVOAPLICANDOELMÏTODODEMEZCLADIRECTA

A 3EGÞNELCAMPOhNÞMERODEHABITACIØNv B 3EGÞNELCAMPOhNOMBREv Óä°$ADOUNARCHIVODECADENASDECARACTERES ORDÏNELOENFORMADESCENDENTEAPLICAN DOELMÏTODODEMEZCLAEQUILIBRADA Ó£°3ETIENENDOSARCHIVOSORDENADOSCONLOSNOMBRESDELOSESTUDIANTESDEUNAESCUE LA.OSEHANACTUALIZADODELAMISMAMANERALOSDOSARCHIVOS HABIÏNDOSEDADODE ALTAAALGUNOSALUMNOSENUNARCHIVOPERONOENELOTRO%SCRIBAUNPROGRAMAQUE OBTENGAUNTERCERARCHIVO TAMBIÏNORDENADO INTERCALANDOLAINFORMACIØNDELOS DOSARCHIVOSEXISTENTES.ODEBENQUEDARELEMENTOSREPETIDOS ÓÓ°3ETIENENTRESARCHIVOS! !Y!CONINFORMACIØNSOBRERECITALESEFECTUADOSEN UNTEATRO ALOLARGODELOSTRESÞLTIMOSA×OS#ADAREGISTRODELOSARCHIVOSTIENELOS SIGUIENTESCAMPOS ◗ ◗ ◗

.OMBREDELCANTANTEUORQUESTAQUEOFRECIØELRECITAL .ÞMERODEPRESENTACIONES &ECHASDELASPRESENTACIONES ,OSTRESARCHIVOSESTÈNORDENADOSENFORMAASCENDENTESEGÞNELPRIMERCAMPO %SCRIBAUNPROGRAMAQUEINTERCALELOSTRESARCHIVOS FORMANDOELARCHIVO2% #)4!,%3

#APÓTULO

™

-³4/$/3 $%"Â315%$!  ).42/$5##)¼. %STECAPÓTULOSEDEDICAALESTUDIODEUNADELASOPERACIONESMÈSIMPORTANTESENELPRO CESAMIENTODEINFORMACIØNLABÞSQUEDA%STAOPERACIØNSEUTILIZABÈSICAMENTEPARA RECUPERARDATOSQUESEHABÓANALMACENADOCONANTICIPACIØN%LRESULTADOPUEDESERDE ÏXITOSISEENCUENTRALAINFORMACIØNDESEADA ODEFRACASO ENCASOCONTRARIO ,A BÞSQUEDA OCUPA UNA PARTE IMPORTANTE DE NUESTRA VIDA 0RÈCTICAMENTE TODO EL TIEMPOESTAMOSBUSCANDOALGO%LMUNDOENQUESEVIVEHOYDÓAESDESARROLLADO AUTO MATIZADO YLAINFORMACIØNREPRESENTAUNELEMENTODEVITALIMPORTANCIA%SFUNDAMENTAL ESTARINFORMADOSY PORLOTANTO BUSCARYRECUPERARINFORMACIØN0OREJEMPLO SEBUSCAN NÞMEROSTELEFØNICOSENUNDIRECTORIO OFERTASLABORALESENUNPERIØDICO LIBROSENUNA BIBLIOTECA ETCÏTERA

&)'52! %JEMPLOPRÉCTICO DEBÞSQUEDA

392 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" &)'52! %JEMPLOPRÉCTICO DEBÞSQUEDA

%NLOSEJEMPLOSMENCIONADOS LABÞSQUEDASEREALIZA GENERALMENTE SOBREELEMEN TOSQUEESTÈNORDENADOS,OSDIRECTORIOSTELEFØNICOSESTÈNORGANIZADOSALFABÏTICAMENTE LASOFERTASLABORALESESTÈNORDENADASPORTIPODETRABAJOYLOSLIBROSDEUNABIBLIOTECAES TÈNCLASIlCADOSPORTEMA3INEMBARGO PUEDESUCEDERQUELABÞSQUEDASEREALICESOBRE UNACOLECCIØNDEELEMENTOSNOORDENADOS0OREJEMPLO CUANDOSEBUSCALALOCALIZACIØN DEUNACIUDADDENTRODEUNMAPA 3ECONCLUYEQUELAOPERACIØNDEBÞSQUEDASEPUEDELLEVARACABOSOBREELEMENTOS ORDENADOSODESORDENADOS#ABEDESTACARQUELABÞSQUEDAESMÈSFÈCILYOCUPAMENOS TIEMPOCUANDOLOSDATOSSEENCUENTRANORDENADOS ,OS MÏTODOS DE BÞSQUEDA SE PUEDEN CLASIlCAR EN INTERNOS Y EXTERNOS SEGÞN LA UBICACIØNDELOSDATOSSOBRELOSCUALESSEREALIZARÈLABÞSQUEDA3EDENOMINABÞSQUEDA INTERNACUANDOTODOSLOSELEMENTOSSEENCUENTRANENLAMEMORIAPRINCIPALDELACOMPU TADORA POR EJEMPLO ALMACENADOS EN ARREGLOS LISTAS LIGADAS O ÈRBOLES %S BÞSQUEDA EXTERNASILOSELEMENTOSESTÈNENMEMORIASECUNDARIAESDECIR SIHUBIERAARCHIVOSEN DISPOSITIVOSCOMOCINTASYDISCOSMAGNÏTICOS %N LA SIGUIENTE SECCIØN SE ESTUDIARÈN LOS MÏTODOS INTERNOS POSTERIORMENTE EN LA SECCIØNSEHARÈLOPROPIOCONLOSEXTERNOS

 "Â315%$!).4%2.! ,A BÞSQUEDA INTERNA TRABAJA CON ELEMENTOS QUE SE ENCUENTRAN ALMACENADOS EN LA MEMORIAPRINCIPALDELAMÈQUINA²STOSPUEDENESTARENESTRUCTURASESTÈTICASˆARRE GLOSˆODINÈMICASˆLISTASLIGADASYÈRBOLESˆ,OSMÏTODOSDEBÞSQUEDAINTERNAMÈS IMPORTANTESSON ◗ ◗

3ECUENCIALOLINEAL "INARIA

 #Ò426&%"*/5&3/" ◗ ◗

393

0ORTRANSFORMACIØNDECLAVES «RBOLESDEBÞSQUEDA

 "ÞSQUEDASECUENCIAL ,ABÞSQUEDASECUENCIALCONSISTEENREVISARELEMENTOTRASELEMENTOHASTAENCONTRAREL DATOBUSCADO OLLEGARALlNALDELCONJUNTODEDATOSDISPONIBLE 0RIMEROSETRATARÈSOBRELABÞSQUEDASECUENCIALENARREGLOS YLUEGOENLISTASENLA ZADAS%NELPRIMERCASO SEDEBEDISTINGUIRENTREARREGLOSORDENADOSYDESORDENADOS %STAÞLTIMACONSISTE BÈSICAMENTE ENRECORRERELARREGLODEIZQUIERDAADERECHA HASTAQUESEENCUENTREELELEMENTOBUSCADOOSETERMINEELARREGLO LOQUEOCURRAPRIME RO.ORMALMENTECUANDOUNAFUNCIØNDEBÞSQUEDACONCLUYECONÏXITO INTERESACONOCER EN QUÏ POSICIØN FUE HALLADO EL ELEMENTO QUE SE ESTABA BUSCANDO %STA IDEA SE PUEDE GENERALIZARPARATODOSLOSMÏTODOSDEBÞSQUEDA !CONTINUACIØNSEPRESENTAELALGORITMODEBÞSQUEDASECUENCIALENARREGLOSDESOR DENADOS !LGORITMO 3ECUENCIAL?DESORDENADO

3ECUENCIAL?DESORDENADO6 . 8 [%STE ALGORITMO BUSCA SECUENCIALMENTE EL ELEMENTO 8 EN UN ARREGLO UNIDIMENSIONAL DESOR DENADO6 DE.COMPONENTES] [)ESUNAVARIABLEDETIPOENTERO]  (ACER)←  -IENTRAS)≤. Y6;)=≠8 2EPETIR (ACER)←)   [&INDELCICLODELPASO]  3I). ENTONCES %SCRIBIRh,AINFORMACIØNNOESTÈENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv )  [&INDELCONDICIONALDELPASO]

3ONDOSLOSPOSIBLESRESULTADOSQUESEPUEDENOBTENERALAPLICARESTEALGORITMOLA POSICIØNENLAQUEENCONTRØELELEMENTO OUNMENSAJEDEFRACASOSIELELEMENTONOSE HALLAENELARREGLO3IHUBIERADOSOMÈSOCURRENCIASDELMISMOVALOR SEENCUENTRALA PRIMERADEELLAS3INEMBARGO ESPOSIBLEMODIlCARELALGORITMOPARAOBTENERTODASLAS OCURRENCIASDELDATOBUSCADO !CONTINUACIØNSEPRESENTAUNAVARIANTEDEESTEALGORITMO PEROUTILIZANDORECURSI VIDAD ENLUGARDEITERATIVIDAD

394 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" !LGORITMO 3ECUENCIAL?DESORDENADO?RECURSIVO 3ECUENCIAL?DESORDENADO?RECURSIVO6 . 8 ) [%STE ALGORITMO BUSCA SECUENCIALMENTE Y DE FORMA RECURSIVA AL ELEMENTO 8 EN EL ARREGLO UNIDIMENSIONALDESORDENADO6 DE.COMPONENTES] [)ESUNPARÈMETRODETIPOENTEROQUEINICIALMENTESEENCUENTRAEN]  3I). ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO  3I6;)=8 ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv ) SINO 2EGRESARA3ECUENCIAL?DESORDENADO?RECURSIVOCON6 . 8E)   [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

,ABÞSQUEDASECUENCIALENARREGLOSORDENADOSESSIMILARALCASOANTERIOR3INEM BARGO ELORDENENTRELOSELEMENTOSDELARREGLOPERMITEINCLUIRUNANUEVACONDICIØNQUE HACE MÈS ElCIENTE AL PROCESO! CONTINUACIØN ANALICEMOS EL ALGORITMO DE BÞSQUEDA SECUENCIALENARREGLOSORDENADOS !LGORITMO 3ECUENCIAL?ORDENADO 3ECUENCIAL?ORDENADO6 . 8 [%STEALGORITMOBUSCASECUENCIALMENTEALELEMENTO8ENUNARREGLOUNIDIMENSIONALORDENADO 6 DE.COMPONENTES6SEENCUENTRAORDENADOCRECIENTEMENTE6;=≤6;=≤≤6;.=] [)ESUNAVARIABLEDETIPOENTERO]  (ACER)←  -IENTRAS)≤. Y86;)= 2EPETIR (ACER)←)   [&INDELCICLODELPASO  3I). O86;)= ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv )  [&INDELCONDICIONALDELPASO]

 #Ò426&%"*/5&3/"

395

#OMOELARREGLOESTÈORDENADO SEESTABLECEUNANUEVACONDICIØNELELEMENTOBUS CADOTIENEQUESERMAYORQUEELDELARREGLO#UANDOELCICLOSEINTERRUMPE SEEVALÞA CUÈLDELASCONDICIONESESFALSA3I). OSISECOMPARØELELEMENTOCONUNVALOR MAYORASÓMISMO86;)= SEESTÈANTEUNCASODEFRACASOELELEMENTONOESTÈENEL ARREGLO3I86;)=ENTONCESSEENCONTRØALELEMENTOENELARREGLO !CONTINUACIØNSEPRESENTAELALGORITMODEBÞSQUEDAENARREGLOSORDENADOS PERO ENFORMARECURSIVA !LGORITMO 3ECUENCIAL?ORDENADO?RECURSIVO 3ECUENCIAL?ORDENADO?RECURSIVO6 . 8 ) [%STE ALGORITMO BUSCA EN FORMA SECUENCIAL Y RECURSIVA AL ELEMENTO 8 EN UN ARREGLO UNIDI MENSIONALORDENADO6 DE.COMPONENTES6SEENCUENTRAORDENADODEMANERACRECIENTE6;= ≤6;=≤≤6;.=)INICIALMENTETIENEELVALORDE]  3I)≤. Y86;)= ENTONCES ,LAMARA3ECUENCIAL?ORDENADO?RECURSIVOCON6 . 8E)  SINO  3I). O86;)= ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv )  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%LMÏTODODEBÞSQUEDASECUENCIALTAMBIÏNSEPUEDEAPLICARALISTASLIGADAS#ON SISTEENRECORRERLALISTANODOTRASNODO HASTAENCONTRARALELEMENTOBUSCADOˆÏXITOˆ OHASTAQUELLEGUEMOSALlNALDELALISTAˆFRACASOˆ,ALISTA COMOENELCASODEARRE GLOS SEPUEDEENCONTRARORDENADAODESORDENADA%LORDENENELCUALSEPUEDERECORRER LALISTADEPENDEDESUSCARACTERÓSTICASPUEDESERSIMPLEMENTELIGADA CIRCULARODOBLE MENTELIGADA%NESTECAPÓTULOSEPRESENTARÈELCASODEBÞSQUEDASECUENCIALENLISTAS SIMPLEMENTE LIGADAS DESORDENADAS %L LECTOR CON LOS CONOCIMIENTOS QUE TIENE SOBRE LISTASYBÞSQUEDA PUEDEIMPLEMENTARFÈCILMENTELOSOTROSALGORITMOS !LGORITMO 3ECUENCIAL?LISTA?DESORDENADA 3ECUENCIAL?LISTA?DESORDENADA0 8 [%STEALGORITMOBUSCAENFORMASECUENCIALALELEMENTO8ENUNALISTASIMPLEMENTELIGADA QUE ALMACENA INFORMACIØN QUE ESTÈ DESORDENADA 0 ES UN APUNTADOR AL PRIMER NODO DE LA LISTA ).&/Y,)'!SONLOSCAMPOSDECADANODO] [1ESUNAVARIABLEDETIPOAPUNTADOR]

396 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"  (ACER1←0  -IENTRAS1≠.), Y1>).&/≠8 2EPETIR (ACER1←1>,)'!  [&INDELCICLODELPASO]  3I1.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENLALISTAv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]

3ILALISTAESTUVIERAORDENADASEMODIlCARÓAESTEALGORITMO INCLUYENDOUNACON DICIØNSIMILARALAQUESEESCRIBIØENELALGORITMO%STOÞLTIMOCONELOBJETIVODE DISMINUIRELNÞMERODECOMPARACIONES ! CONTINUACIØN SE PRESENTA LA VARIANTE RECURSIVA DE ESTE ALGORITMO DE BÞSQUEDA SECUENCIALENLISTASSIMPLEMENTELIGADASDESORDENADAS !LGORITMO 3ECUENCIAL?LISTA?DESORDENADA?RECURSIVO 3ECUENCIAL?LISTA?DESORDENADA?RECURSIVO0 8 [%STEALGORITMOBUSCADEMANERASECUENCIALYENFORMARECURSIVAALELEMENTO8ENUNALISTA SIMPLEMENTELIGADA QUEALMACENAINFORMACIØNQUEESTÈDESORDENADA0ESUNAPUNTADORAL PRIMERNODODELALISTA).&/Y,)'!SONLOSCAMPOSDECADANODO]  3I0≠.), Y0>).&/≠8 ENTONCES 2EGRESARA3ECUENCIAL?LISTA?DESORDENADA?RECURSIVOCON0>,)'!Y8 SINO  3I0.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENLALISTAv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!NÉLISISDELABÞSQUEDASECUENCIAL %LNÞMERODECOMPARACIONESESUNODELOSFACTORESMÈSIMPORTANTESQUESEUTILIZANPARA DETERMINARLACOMPLEJIDADDELOSMÏTODOSDEBÞSQUEDA0ARAANALIZARLACOMPLEJIDADDE LABÞSQUEDASECUENCIAL SEDEBENESTABLECERLOSCASOSMÈSFAVORABLEODESFAVORABLEQUE SEPRESENTEN !LBUSCAR POREJEMPLO UNELEMENTOENUNARREGLOUNIDIMENSIONALDESORDENADODE .COMPONENTES PUEDESUCEDERQUEESEVALORNOSEENCUENTREPORLOTANTO SEHARÈN.

 #Ò426&%"*/5&3/"

397

COMPARACIONESALRECORRERTODOELARREGLO0OROTRAPARTE SIELELEMENTOSEENCUENTRAEN ELARREGLO ÏSTEPUEDEESTARENLAPRIMERAPOSICIØN ENLAÞLTIMAOENALGUNAINTERMEDIA3I ESELPRIMERO SEHARÈUNACOMPARACIØNSISETRATADELÞLTIMO SEHARÈN.COMPARACIONES YSISEENCUENTRAENLAPOSICIØNII. ENTONCESSEREALIZARÈNICOMPARACIONES !HORABIEN ELNÞMERODECOMPARACIONESQUESELLEVANACABOSITRABAJAMOSCON ARREGLOSORDENADOSSERÈELMISMOQUEPARADESORDENADOS SIEMPREYCUANDOELELEMENTO SEENCUENTREENELARREGLO3INOFUERAÏSTEELCASO ENTONCESELNÞMERODECOMPARACIO NESDISMINUIRÈSENSIBLEMENTEENARREGLOSORDENADOS SIEMPREQUEELVALORBUSCADOESTÏ COMPRENDIDOENTREELPRIMEROYELÞLTIMOELEMENTOSDELARREGLO 0OR OTRA PARTE EL NÞMERO DE COMPARACIONES EN LA BÞSQUEDA SECUENCIAL EN LISTAS SIMPLEMENTELIGADASESELMISMOQUEPARAARREGLOS%NLAFØRMULASEPRESENTANLOS NÞMEROSMÓNIMO MEDIANOYMÈXIMODECOMPARACIONESQUESEEJECUTANCUANDOSETRA BAJACONLABÞSQUEDASECUENCIAL

#MÓN  

#MED 

 N 

#MÈX  .

▼ &ØRMULA

,ATABLAPRESENTA PARADISTINTOSVALORESDE. LOSNÞMEROSMÓNIMO MEDIANOY MÈXIMODECOMPARACIONESQUESEREQUIERENPARABUSCARSECUENCIALMENTEUNELEMENTO ENUNARREGLOOLISTALIGADA

 "ÞSQUEDABINARIA ,ABÞSQUEDABINARIACONSISTEENDIVIDIRELINTERVALODEBÞSQUEDAENDOSPARTES COM PARANDOELELEMENTOBUSCADOCONELQUEOCUPALAPOSICIØNCENTRALENELARREGLO0ARAEL CASODEQUENOFUERANIGUALESSEREDElNENLOSEXTREMOSDELINTERVALO SEGÞNELELEMENTO CENTRAL SEA MAYOR O MENOR QUE EL ELEMENTO BUSCADO DISMINUYENDO DE ESTA FORMA EL ESPACIODEBÞSQUEDA%LPROCESOCONCLUYECUANDOELELEMENTOESENCONTRADO OCUANDO ELINTERVALODEBÞSQUEDASEANULA ESVACÓO %LMÏTODODEBÞSQUEDABINARIAFUNCIONAEXCLUSIVAMENTECONARREGLOSORDENADOS .O SE PUEDE UTILIZAR CON LISTAS SIMPLEMENTE LIGADAS ˆNO PODRÓAMOS RETROCEDER PARA ESTABLECERINTERVALOSDEBÞSQUEDAˆNICONARREGLOSDESORDENADOS#ONCADAITERACIØN DELMÏTODOELESPACIODEBÞSQUEDASEREDUCEALAMITADPORLOTANTO ELNÞMERODECOM

4!",! #OMPLEJIDADDELMÏTODO DEBÞSQUEDASECUENCIAL

.

#MÓN

#MED

#MÈX









































398 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" PARACIONES A REALIZAR DISMINUYE NOTABLEMENTE %STA DISMINUCIØN RESULTA SIGNIlCATIVA CUANTOMÈSGRANDESEAELTAMA×ODELARREGLO!CONTINUACIØNSEPRESENTAELALGORITMO DEBÞSQUEDABINARIA !LGORITMO "INARIA "INARIA6 . 8 [%STE ALGORITMO BUSCA AL ELEMENTO 8 EN UN ARREGLO UNIDIMENSIONAL ORDENADO 6 DE . COM PONENTES] [):1 #%.Y$%2SONVARIABLESDETIPOENTERO"!.ESUNAVARIABLEDETIPOBOOLEANO]  (ACER):1← $%2←.Y"!.←&!,3/  -IENTRAS):1≤$%2 Y"!.&!,3/ 2EPETIR  3I86;#%.= ENTONCES (ACER"!.←6%2$!$%2/ SINO[3EREDElNEELINTERVALODEBÞSQUEDA]  3I86;#%.= ENTONCES (ACER):1←#%.  SINO (ACER$%2←#%.n  [&INDELCONDICIONALDELPASO  [&INDELCONDICIONALDELPASO  [&INDELCICLODELPASO  3I"!.6%2$!$%2/ ENTONCES %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv #%. SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv  [&INDELCONDICIONALDELPASO]

!NALICEMOSAHORAUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEESTEALGORITMO

%JEMPLO

&)'52!

3EA6UNARREGLOUNIDIMENSIONALDENÞMEROSENTEROS ORDENADODEMANERACRECIENTE COMOSEMUESTRAENLAlGURA %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOCUANDO8ESIGUALA 8  %NLAlGURASEOBSERVAGRÈlCAMENTE PARAESTECASOENPARTICULAR CØMOSEVA REDUCIENDOELINTERVALODEBÞSQUEDA

 #Ò426&%"*/5&3/" 4!",! "ÞSQUEDABINARIA

399

0ASO

"!.

):1

$%2

#%.

86;#%.=

86;#%.=



&ALSO







.O

.O



&ALSO







.O

3Ó



&ALSO







3Ó



6ERDADERO

,ATABLA POROTRAPARTE MUESTRANUEVAMENTEELSEGUIMIENTODELALGORITMO PARA8 VALORQUENOSEENCUENTRAENELARREGLO ,AlGURAREPRESENTAGRÈlCAMENTECØMOSEVAREDUCIENDOELINTERVALODEBÞS QUEDAHASTAANULARSE$%2):1  !CONTINUACIØNSEPRESENTAUNAVARIANTEDELALGORITMODEBÞSQUEDABINARIAQUENO UTILIZABANDERAˆ"!.ˆ

4!",! "ÞSQUEDABINARIA

&)'52! 2EDUCCIØNDELINTERVALO DEBÞSQUEDAA 0ASO B 0ASOC 0ASODELA TABLA

0ASO

"!.

):1

$%2

#%.

86;#%.=

86;#%.=



&ALSO







.O

3Ó



&ALSO







.O

3Ó



&ALSO







.O

3Ó



&ALSO







.O

.O



&ALSO





400 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" &)'52! 2EDUCCIØNDELINTERVALO DEBÞSQUEDAA 0ASO B 0ASOC 0ASO D 0ASOE 0ASODE LATABLA

!LGORITMO "INARIA?SIN?BANDERA "INARIA?SIN?BANDERA6 . 8 [%STE ALGORITMO BUSCA AL ELEMENTO 8 EN EL ARREGLO UNIDIMENSIONAL ORDENADO 6 DE . COM PONENTES] [):1 $%2Y#%.SONVARIABLESDETIPOENTERO]  (ACER):1← $%2←.Y#%.←0!24%%.4%2!):1 $%2   -IENTRAS):1≤$%2 Y8≠6;#%.= 2EPETIR  3I86;#%.= ENTONCES (ACER):1←#%.  SINO (ACER$%2←#%.n  [&INDELCONDICIONALDELPASO] (ACER#%.←0!24%%.4%2!):1 $%2   [&INDELCICLODELPASO]  3I):1$%2

 #Ò426&%"*/5&3/"

401

ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv #%.  [&INDELCONDICIONALDELPASO]

&INALMENTE SEPRESENTAUNAVERSIØNRECURSIVADEESTEALGORITMODEBÞSQUEDABINARIA !LGORITMO "INARIA?RECURSIVO

"INARIA?RECURSIVO6 ):1 $%2 8 [%STEALGORITMOBUSCAALELEMENTO8ENELARREGLOUNIDIMENSIONALORDENADO6DE.COMPO NENTES):1INGRESAINICIALMENTEALALGORITMOCONELVALORDE$%2 POROTRAPARTE INGRESA CONELVALORDE.] [#%.ESUNAVARIABLEDETIPOENTERO]  3I):1≥$%2 ENTONCES %SCRIBIR8 h.OSEENCUENTRAENELARREGLOv SINO (ACER#%.←0!24%%.4%2!$%2 ):1   3I86;#%.= ENTONCES %SCRIBIRh%LDATOBUSCADOSEENCUENTRAENLAPOSICIØNv #%. SINO  3I86;#%.= ENTONCES 2EGRESARA"INARIA?RECURSIVOCON6 #%.  $%2 8 SINO 2EGRESARA"INARIA?RECURSIVOCON6 ):1 #%.n 8  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!NÉLISISDELABÞSQUEDABINARIA 0ARA ANALIZAR LA COMPLEJIDAD DEL MÏTODO DE BÞSQUEDA BINARIA ES NECESARIO ESTABLECER LOS CASOS MÈS FAVORABLES Y DESFAVORABLES QUE SE PUDIERAN PRESENTAR EN EL PROCESO DE BÞSQUEDA%LPRIMEROSUCEDECUANDOELELEMENTOBUSCADOESELCENTRAL ENDICHOCASO SEHARÈUNASOLACOMPARACIØNELSEGUNDOSUCEDECUANDOELELEMENTONOSEENCUENTRA ENELARREGLOENTONCESSEHARÈNAPROXIMADAMENTELOGN COMPARACIONES YAQUECON CADACOMPARACIØNELNÞMERODEELEMENTOSENLOSCUALESSEDEBEBUSCARSEREDUCEENUN FACTORDE$EESTAFORMA SEDETERMINANLOSNÞMEROSMÓNIMO MEDIANOYMÈXIMODE COMPARACIONESQUESEDEBENREALIZARCUANDOSEUTILIZAESTETIPODEBÞSQUEDA

402 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

#MÓN  

#MED

 LOG  .  

#MÈX  LOG  .

▼ &ØRMULA

%NLATABLASEPRESENTAN PARADISTINTOSVALORESDE. LOSNÞMEROSMÓNIMO ME DIANOYMÈXIMODECOMPARACIONESREQUERIDASPARABUSCARUNELEMENTOENUNARREGLO APLICANDOELMÏTODODEBÞSQUEDABINARIA 3ISECOMPARANLOSVALORESDELATABLACONLOSDELATABLARESULTACLAROQUE ELMÏTODODEBÞSQUEDABINARIAESMÈSElCIENTEQUEELMÏTODODEBÞSQUEDASECUENCIAL !DEMÈS LADIFERENCIASEHACEMÈSSIGNIlCATIVACONFORMEMÈSGRANDESEAELTAMA×ODEL ARREGLO 3IN EMBARGO NO HAY QUE OLVIDAR QUE EL MÏTODO DE BÞSQUEDA BINARIA TRABAJA SOLAMENTECONARREGLOSORDENADOSPORLOTANTO SIELARREGLOESTUVIERADESORDENADOANTES DEEMPLEARESTEMÏTODO AQUÏLDEBERÓAORDENARSE #ABEDESTACAR SINEMBARGO QUELAORDENACIØNDEUNARREGLOTAMBIÏNIMPLICACOM PARACIONESYMOVIMIENTOSDEELEMENTOS ASÓQUESISEVAAREALIZARSØLOUNABÞSQUEDA SOBREUNARREGLODESORDENADOCONVIENEUTILIZARELMÏTODOSECUENCIAL%NCAMBIO SISE REALIZANBÞSQUEDASENFORMACONTINUA CONVENDRÓAORDENARLOPARAPODERAPLICARELMÏ TODODEBÞSQUEDABINARIA

 "ÞSQUEDAPORTRANSFORMACIØNDECLAVES ,OSDOSMÏTODOSANALIZADOSANTERIORMENTEPERMITENENCONTRARUNELEMENTOENUNARRE GLO%NAMBOSCASOSELTIEMPODEBÞSQUEDAESPROPORCIONALASUNÞMERODECOMPONEN TES%SDECIR AMAYORNÞMERODEELEMENTOSSEDEBEREALIZARMAYORNÞMERODECOMPARA CIONES3EMENCIONØADEMÈSQUESIBIENELMÏTODODEBÞSQUEDABINARIAESMÈSElCIENTE QUEELSECUENCIAL EXISTELARESTRICCIØNDEQUEELARREGLOSEDEBEENCONTRARORDENADO %STA SECCIØN SE DEDICA A UN NUEVO MÏTODO DE BÞSQUEDA %STE MÏTODO CONOCIDO COMOTRANSFORMACIØNDECLAVESOHASH PERMITEAUMENTARLAVELOCIDADDEBÞSQUEDASIN NECESIDADDETENERLOSELEMENTOSORDENADOS#UENTACONLAVENTAJADEQUEELTIEMPODE BÞSQUEDAESINDEPENDIENTEDELNÞMERODECOMPONENTESDELARREGLO 3UPONGAMOSQUESETIENEUNACOLECCIØNDEDATOS CADAUNODEELLOSIDENTIlCADOPOR UNACLAVE%SCLAROQUERESULTAATRACTIVOTENERACCESOAELLOSDEMANERADIRECTAESDECIR SINRECORRERALGUNOSDATOSANTESDELOCALIZARALBUSCADO%LMÏTODOPORTRANSFORMACIØN DECLAVESPERMITEREALIZARJUSTAMENTEESTAACTIVIDADESDECIR LOCALIZARELDATOENFORMA

4!",! #OMPLEJIDADDELMÏTODODE BÞSQUEDABINARIA

.

#MÓN

#MED

#MÈX









































 #Ò426&%"*/5&3/"

403

DIRECTA%LMÏTODOTRABAJAUTILIZANDOUNAFUNCIØNQUECONVIERTEUNACLAVEDADAENUNA DIRECCIØNˆÓNDICEˆDENTRODELARREGLO DIRECCIØN←(CLAVE ,AFUNCIØNHASH( APLICADAALACLAVEGENERAUNÓNDICEDELARREGLOQUEPERMITE ACCEDERDIRECTAMENTEALELEMENTO%LCASOMÈSTRIVIALSEPRESENTACUANDOLASCLAVESSON NÞMEROSENTEROSCONSECUTIVOS 3UPONGAMOSQUESEDESEAALMACENARLAINFORMACIØNRELACIONADACONALUMNOS CUYASMATRÓCULASSONNÞMEROSDELAL%NESTECASOCONVIENEDElNIRUNARREGLODE ELEMENTOSCONÓNDICESNUMÏRICOSCOMPRENDIDOSENTRELOSVALORESY,OSDATOSDE CADAALUMNOOCUPARÈNLAPOSICIØNDELARREGLOQUESECORRESPONDACONELNÞMERODELAMA TRÓCULADEESTAMANERASEPODRÈACCEDERDIRECTAMENTEALAINFORMACIØNDECADAALUMNO #ONSIDEREMOSAHORAQUESEDESEAALMACENARLAINFORMACIØNDEEMPLEADOS,A CLAVEDECADAEMPLEADOCORRESPONDEALNÞMERODESUSEGUROSOCIAL3ILACLAVEESTÈFORMA DAPORDÓGITOS RESULTAPORCOMPLETOINElCIENTEDElNIRUNARREGLOCON ELEMENTOSPARAALMACENARSOLAMENTELOSDATOSDELOSEMPLEADOS5TILIZARUNARREGLO TANGRANDEASEGURALAPOSIBILIDADDEACCEDERDIRECTAMENTEASUSELEMENTOSSINEMBARGO ELCOSTOENMEMORIARESULTATANTORIDÓCULOCOMOEXCESIVO3IEMPREESIMPORTANTEEQUILI BRARELCOSTODELESPACIODEMEMORIACONELCOSTOPORTIEMPODEBÞSQUEDA #UANDOSETIENENCLAVESQUENOSECORRESPONDENCONÓNDICESˆPOREJEMPLO POR SERALFANUMÏRICASˆ OCUANDOLASCLAVESREPRESENTENVALORESNUMÏRICOSMUYGRANDES ONOSECORRESPONDENCONLOSÓNDICESDELOSARREGLOS SEUTILIZARÈUNAFUNCIØNHASHQUE PERMITATRANSFORMARLACLAVEPARAOBTENERUNADIRECCIØNAPROPIADA%STAFUNCIØNHASH DEBESERSIMPLEDECALCULARYASIGNARDIRECCIONESDELAMANERAMÈSUNIFORMEPOSIBLE%S DECIR DEBEGENERARPOSICIONESDIFERENTESDADASDOSCLAVESTAMBIÏNDIFERENTES3IESTO ÞLTIMONOOCURRE(+ D (+ DY+≠+ HAYUNACOLISIØN QUESEDElNECOMO LAASIGNACIØNDEUNAMISMADIRECCIØNADOSOMÈSCLAVESDISTINTAS %NESTECONTEXTO PARATRABAJARCONESTEMÏTODODEBÞSQUEDASEDEBESELECCIONAR PREVIAMENTE ◗ ◗

5NAFUNCIØNHASHQUESEAFÈCILDECALCULARYDISTRIBUYAUNIFORMEMENTELASCLAVES 5N MÏTODO PARA RESOLVER COLISIONES 3I ÏSTAS SE PRESENTAN SE CONTARÈ CON ALGÞN MÏTODOQUEGENEREPOSICIONESALTERNATIVAS

%STOSDOSCASOSSETRATARÈNENFORMASEPARADA#OMOYASEMENCIONØ SELECCIONARUNA BUENAFUNCIØNHASHESMUYIMPORTANTE PEROESDIFÓCILENCONTRARLA"ÈSICAMENTEPORQUENO EXISTENREGLASQUEPERMITANDETERMINARCUÈLSERÈLAFUNCIØNMÈSAPROPIADAPARAUNCONJUN TODECLAVESQUEASEGURELAMÈXIMAUNIFORMIDADENSUDISTRIBUCIØN2EALIZARUNANÈLISISDE LASPRINCIPALESCARACTERÓSTICASDELASCLAVESSIEMPREAYUDAENLAELECCIØNDEUNAFUNCIØN DEESTETIPO!CONTINUACIØNSEEXPLICANALGUNASDELASFUNCIONESHASHMÈSUTILIZADAS

 &UNCIØNHASHPORMØDULODIVISIØN ,AFUNCIØNHASHPORMØDULOODIVISIØNCONSISTEENTOMARELRESIDUODELADIVISIØNDE LACLAVEENTREELNÞMERODECOMPONENTESDELARREGLO3UPONGAMOS POREJEMPLO QUESE

404 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" TIENEUNARREGLODE.ELEMENTOS Y+ESLACLAVEDELDATOABUSCAR,AFUNCIØNHASHQUEDA DElNIDAPORLASIGUIENTEFØRMULA

(+ +MOD. 

▼ &ØRMULA

%NLAFØRMULASEOBSERVAQUEALRESIDUODELADIVISIØNSELESUMA ESTOÞLTIMO CONELOBJETIVODEOBTENERUNVALORCOMPRENDIDOENTREY. 0ARALOGRARMAYORUNIFORMIDADENLADISTRIBUCIØN ESIMPORTANTEQUE.SEAUNNÞ MEROPRIMOODIVISIBLEENTREMUYPOCOSNÞMEROS0ORLOTANTO SI.NOESUNNÞMERO PRIMO SEDEBECONSIDERARELVALORPRIMOMÈSCERCANO %NELEJEMPLOSEPRESENTAUNCASODEFUNCIØNHASHPORMØDULO

%JEMPLO

3UPONGAMOS QUE .   ES EL TAMA×O DEL ARREGLO Y LAS DIRECCIONES QUE SE DEBEN ASIGNAR A LOS ELEMENTOS AL GUARDARLOS O RECUPERARLOS SON LOS NÞMEROS DEL  AL  #ONSIDEREMOSADEMÈSQUE+Y+SONLASDOSCLAVESALASQUESEDEBEN ASIGNARPOSICIONESENELARREGLO3IAPLICAMOSLAFØRMULACON. PARACALCULAR LASDIRECCIONESCORRESPONDIENTESA+Y+ OBTENEMOS (+ MOD  (+ MOD  #OMO(+ ESIGUALA(+ Y+ESDISTINTODE+ SEESTÈANTEUNACOLISIØNQUESE DEBERESOLVERPORQUEALOSDOSELEMENTOSLECORRESPONDERÓALAMISMADIRECCIØN /BSERVEMOS SINEMBARGO QUESIAPLICÈRAMOSLAFØRMULACONUNNÞMEROPRIMO CERCANOA. ELRESULTADOCAMBIARÓA (+ MOD  (+ MOD  #ON.SEHAELIMINADOLACOLISIØN

 &UNCIØNHASHCUADRADO ,AFUNCIØNHASHCUADRADOCONSISTEENELEVARALCUADRADOLACLAVEYTOMARLOSDÓGITOS CENTRALES COMO DIRECCIØN %L NÞMERO DE DÓGITOS QUE SE DEBE CONSIDERAR SE ENCUENTRA DETERMINADOPORELRANGODELÓNDICE3EA+LACLAVEDELDATOABUSCAR LAFUNCIØNHASH CUADRADOQUEDADElNIDA ENTONCES PORLASIGUIENTEFØRMULA

(+ DÓGITOS?CENTRALES+ 

▼ &ØRMULA

,ASUMADEUNAUNIDADALOSDÓGITOSCENTRALESESÞTILPARAOBTENERUNVALORCOM PRENDIDOENTREY. %NELEJEMPLOSEPRESENTAUNCASODEFUNCIØNHASHCUADRADO

 #Ò426&%"*/5&3/"

%JEMPLO

405

3EA.ELTAMA×ODELARREGLO YSUSDIRECCIONESLOSNÞMEROSCOMPRENDIDOSENTRE Y3EAN+Y+DOSCLAVESALASQUESEDEBENASIGNARPOSICIONES ENELARREGLO3EAPLICALAFØRMULAPARACALCULARLASDIRECCIONESCORRESPONDIENTESA +Y+ +  +  (+ DÓGITOS?CENTRALES  (+ DÓGITOS?CENTRALES  #OMOELRANGODEÓNDICESENNUESTROEJEMPLOVARÓADEA SETOMANSOLAMENTE LOSDOSDÓGITOSCENTRALESDELCUADRADODELASCLAVES

 &UNCIØNHASHPORPLEGAMIENTO ,AFUNCIØNHASHPORPLEGAMIENTOCONSISTEENDIVIDIRLACLAVEENPARTES TOMANDOIGUAL NÞMERODEDÓGITOSAUNQUELAÞLTIMAPUEDETENERMENOS YOPERARCONELLAS ASIGNANDO COMODIRECCIØNLOSDÓGITOSMENOSSIGNIlCATIVOS,AOPERACIØNENTRELASPARTESSEPUEDE REALIZARPORMEDIODESUMASOMULTIPLICACIONES3EA+LACLAVEDELDATOABUSCAR+ESTÈ FORMADAPORLOSDÓGITOSD D  DN,AFUNCIØNHASHPORPLEGAMIENTOQUEDADElNIDA PORLASIGUIENTEFØRMULA

(+ DÓGMENSIGDDI DI DJ  DDN 

▼ &ØRMULA

%LOPERADORQUEAPARECEENLAFØRMULAOPERANDOLASPARTESDELACLAVEESELDESUMA PERO COMOYASEACLARØ PUEDESERELDELAMULTIPLICACIØN%NESTECONTEXTO LASUMADE UNAUNIDADALOSDÓGITOSMENOSSIGNIlCATIVOSˆDÓGMENSIGˆESPARAOBTENERUNVALOR COMPRENDIDOENTREY. %NELEJEMPLOSEPRESENTAUNCASODEFUNCIØNHASHPORPLEGAMIENTO

%JEMPLO

3EA.ELTAMA×ODELARREGLO YLASDIRECCIONESQUEDEBENTOMARSUSELEMENTOSLOS NÞMEROSCOMPRENDIDOSENTREY3EAN+Y+DOSCLAVESALASQUE SEDEBENASIGNARPOSICIONESENELARREGLO3EAPLICALAFØRMULAPARACALCULARLASDI RECCIONESCORRESPONDIENTESA+Y+ (+ DÓGMENSIG  DÓGMENSIG  (+ DÓGMENSIG  DÓGMENSIG  $E LA SUMA DE LAS PARTES SE TOMAN SOLAMENTE DOS DÓGITOS PORQUE LOS ÓNDICES DEL ARREGLOVARÓANDEA

406 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

 &UNCIØNHASHPORTRUNCAMIENTO ,A FUNCIØN HASH POR TRUNCAMIENTO CONSISTE EN TOMAR ALGUNOS DÓGITOS DE LA CLAVE Y FORMARCONELLOSUNADIRECCIØN%STEMÏTODOESDELOSMÈSSENCILLOS PEROESTAMBIÏNDE LOSQUEOFRECENMENOSUNIFORMIDADENLADISTRIBUCIØNDELASCLAVES 3EA+LACLAVEDELDATOABUSCAR+ESTÈFORMADAPORLOSDÓGITOSD D  DN,A FUNCIØNHASHPORTRUNCAMIENTOSEREPRESENTACONLASIGUIENTEFØRMULA

(+ ELEGIRDÓGITOSD DDN 

▼ &ØRMULA

,A ELECCIØN DE LOS DÓGITOS ES ARBITRARIA 3E PODRÓAN TOMAR LOS DE LAS POSICIONES IMPARESODELASPARES,UEGOSEPODRÓANUNIRDEIZQUIERDAADERECHAODEDERECHAA IZQUIERDA,ASUMADEUNAUNIDADALOSDÓGITOSSELECCIONADOSESÞTILPARAOBTENERUN VALORENTREY %NELEJEMPLOSEMUESTRAUNCASODEFUNCIØNHASHPORTRUNCAMIENTO

%JEMPLO

3EA.ELTAMA×ODELARREGLO YLASDIRECCIONESDESUSELEMENTOSLOSNÞMEROSENTRE Y3EAN+Y+DOSCLAVESALASQUESEDEBENASIGNARPOSICIONESENEL ARREGLO3EAPLICALAFØRMULAPARACALCULARLASDIRECCIONESCORRESPONDIENTESA+Y+ (+ ELEGIRDÓGITOS   (+ ELEGIRDÓGITOS   %N ESTE EJEMPLO SE TOMAN EL PRIMERO Y TERCER NÞMEROS DE LA CLAVE Y SE UNEN DE IZQUIERDAADERECHA %SIMPORTANTEDESTACARQUEENTODOSLOSCASOSANTERIORESSEPRESENTARONEJEMPLOS DE CLAVES NUMÏRICAS 3IN EMBARGO EN LA PRÈCTICA LAS CLAVES PUEDEN SER ALFABÏTICAS O ALFANUMÏRICAS%NGENERAL CUANDOAPARECENLETRASENLASCLAVESSESUELEASOCIARACADA UNAUNENTEROCONELPROPØSITODECONVERTIRLASENNUMÏRICAS ! 

" 

# 

$ 

: 

3I POREJEMPLO LACLAVEFUERA!$! SUEQUIVALENTENUMÏRICASERÓA3IHU BIERACOMBINACIØNDELETRASYNÞMEROS SEPROCEDERÓADELAMISMAMANERA0OREJEMPLO DADAUNACLAVE:& SUEQUIVALENTENUMÏRICASERÓA/TRAALTERNATIVASERÓA TOMARELVALORDECIMALASOCIADOPARACADACARÈCTERSEGÞNELCØDIGO!3#))5NAVEZOB TENIDALACLAVEENSUFORMANUMÏRICA SEPUEDEUTILIZARNORMALMENTECUALESQUIERADELAS FUNCIONESANTESMENCIONADAS%LEJEMPLOILUSTRAUNCASODECLAVEALFABÏTICA

 3OLUCIØNDECOLISIONES ,AELECCIØNDEUNMÏTODOADECUADOPARARESOLVERCOLISIONESESTANIMPORTANTECOMOLA ELECCIØNDEUNABUENAFUNCIØNHASH#UANDOÏSTAOBTIENEUNAMISMADIRECCIØNPARADOS CLAVESDIFERENTES SEESTÈANTEUNACOLISIØN.ORMALMENTE CUALQUIERAQUESEAELMÏTODO

 #Ò426&%"*/5&3/"

407

ELEGIDORESULTACOSTOSOTRATARLASCOLISIONES%SPORELLOQUESEDEBEHACERUNESFUERZO IMPORTANTEPARAENCONTRARLAFUNCIØNQUEOFREZCALAMAYORUNIFORMIDADENLADISTRIBU CIØNDELASCLAVES ,AMANERAMÈSNATURALDERESOLVERELPROBLEMADELASCOLISIONESESRESERVARUNA CASILLAPORCLAVEESDECIR AQUELLASQUESECORRESPONDANUNAAUNACONLASPOSICIONESDEL ARREGLO0ERO COMOYASEMENCIONØ ESTASOLUCIØNPUEDETENERUNALTOCOSTOENMEMO RIAPORLOTANTO SEDEBENANALIZAROTRASALTERNATIVASQUEPERMITANEQUILIBRARELUSODE MEMORIACONELTIEMPODEBÞSQUEDA %NADELANTESEESTUDIARÈNALGUNOSDELOSMÏTODOSMÈSUTILIZADOSPARARESOLVERCOLI SIONES QUESEPUEDENCLASIlCAREN ◗ ◗ ◗

2EASIGNACIØN !RREGLOSANIDADOS %NCADENAMIENTO

 2EASIGNACIØN %XISTENVARIOSMÏTODOSQUETRABAJANBAJOELPRINCIPIODECOMPARACIØNYREASIGNACIØNDE ELEMENTOS!CONTINUACIØNSEANALIZARÈNTRESDEELLOS ◗ ◗ ◗

0RUEBALINEAL 0RUEBACUADRÈTICA $OBLEDIRECCIØNHASH

0RUEBALINEAL %LMÏTODODEPRUEBALINEALCONSISTEENQUEUNAVEZQUESEDETECTALACOLISIØN SERECORRE ELARREGLOSECUENCIALMENTEAPARTIRDELPUNTODECOLISIØN BUSCANDOALELEMENTO%LPRO CESODEBÞSQUEDACONCLUYECUANDOELELEMENTOESHALLADO OCUANDOSEENCUENTRAUNA POSICIØNVACÓA%LARREGLOSETRATACOMOUNAESTRUCTURACIRCULARELSIGUIENTEELEMENTO DESPUÏSDELÞLTIMOESELPRIMERO !CONTINUACIØNSEEXPONEELALGORITMODESOLUCIØNDECOLISIONESPORMEDIODELA PRUEBALINEAL !LGORITMO 0RUEBA?LINEAL 0RUEBA?LINEAL6 . + [%STEALGORITMOBUSCAALDATOCONCLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVEELPROBLEMADELASCOLISIONESPORMEDIODELMÏTODODEPRUEBALINEAL] [$Y$8SONVARIABLESDETIPOENTERO]  (ACER$←(+ ['ENERADIRECCIØN]  3I6;$8=≠6!#¶/ Y6;$=+ ENTONCES

408 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $ SINO (ACER$8←$   -IENTRAS$8≤. Y6;$8=≠6!#¶/ Y6;$8=≠+ Y$8≠$ 2EPETIR (ACER$8←$8   3I$8.  ENTONCES (ACER$8←  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I6;$8=6!#¶/ O$8$ ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $8  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

,ACUARTACONDICIØNDELCICLODELPUNTO $8≠8 ESPARAEVITARCAERENUNCICLO INlNITOSIELARREGLOESTUVIERALLENOYELELEMENTOABUSCARNOSEENCONTRARAENÏL ,APRINCIPALDESVENTAJADEESTEMÏTODOESQUEPUEDEHABERUNFUERTEAGRUPAMIENTO ALREDEDOR DE CIERTAS CLAVES MIENTRAS QUE OTRAS ZONAS DEL ARREGLO PODRÓAN PERMANECER VACÓAS3ILASCONCENTRACIONESDECLAVESSONMUYFRECUENTES LABÞSQUEDASERÈPRINCIPAL MENTESECUENCIAL PERDIENDOASÓLASVENTAJASDELMÏTODOHASH%LEJEMPLOILUSTRAEL FUNCIONAMIENTODELALGORITMO

%JEMPLO

3EA6UNARREGLOUNIDIMENSIONALDEELEMENTOS,ASCLAVES       YFUERONASIGNADASSEGÞNLAFUNCIØNHASH (+ +MOD  %NLAlGURASEAPRECIAELESTADODEARREGLOA YLATABLACON(+ PARACADA CLAVEB  %NLATABLASEPRESENTAELSEGUIMIENTODELASVARIABLESIMPORTANTESDELALGORITMO PARAELCASODELEJEMPLOANTERIOR%LDATOABUSCARESIGUALA !LAPLICARLAFUNCIØNHASHALACLAVE SEOBTIENEUNADIRECCIØN$ IGUALA3IN EMBARGO ENESAPOSICIØNNOSEENCUENTRAELELEMENTOBUSCADO PORLOQUESECOMIENZA ARECORRERSECUENCIALMENTEELARREGLOAPARTIRDELAPOSICIØN$8 IGUALA%NESTECASO LABÞSQUEDACONCLUYECUANDOSEENCUENTRAALVALORBUSCADOENLAPOSICIØN

4!",!

$

$8

3OLUCIØNDECOLISIONESPOR LAPRUEBALINEAL+



 

 #Ò426&%"*/5&3/"

409

&)'52! 3OLUCIØNDECOLISIONESPOR LAPRUEBALINEALA !RREGLO B 4ABLACON(+ 

%NLATABLASEPRESENTAAHORAELSEGUIMIENTODELASVARIABLESIMPORTANTESDEL ALGORITMO PEROAHORAPARAUNCASOMÈSCOMPLEJODELEJEMPLOANTERIOR%LDATOA BUSCARESIGUALA

0RUEBACUADRÉTICA %LMÏTODODELAPRUEBACUADRÈTICAESSIMILARALANTERIOR,ADIFERENCIACONSISTEENQUE ENELDELAPRUEBACUADRÈTICALASDIRECCIONESALTERNATIVASSEGENERARÈNCOMO$  $  $   $ IENVEZDE$  $   $ I%STAVARIACIØNPERMITEUNAMEJOR DISTRIBUCIØNDELASCLAVESQUECOLISIONAN !CONTINUACIØNSEPRESENTAELALGORITMODESOLUCIØNDECOLISIONESPORMEDIODELA PRUEBACUADRÈTICA

4!",!

$

$8

3OLUCIØNDECOLISIONESPOR LAPRUEBALINEAL+



    

410 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" !LGORITMO 0RUEBA?CUADRÈTICA 0RUEBA?CUADRÈTICA6 . + [%STEALGORITMOBUSCAALDATOCONCLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVEELPROBLEMADELASCOLISIONESPORMEDIODELAPRUEBACUADRÈTICA] [$ $8E)SONVARIABLESDETIPOENTERO]  (ACER$←(+ ['ENERADIRECCIØN]  3I6;$8=≠6!#¶/ Y6;$=+ ENTONCES %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $ SINO (ACER)←Y$8←$ ) )  -IENTRAS6;$8=≠6!#¶/ Y6;$8=≠+ 2EPETIR (ACER)←) Y$8←$ ) )  3I$8. ENTONCES (ACER)← $8←Y$←  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I6;$8=6!#¶/ ENTONCES %SCRIBIRh,AINFORMACIØNNOESTÈENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $8  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

!CONTINUACIØNSEPRESENTAUNEJEMPLOQUEILUSTRAELFUNCIONAMIENTODELALGORITMO 

%JEMPLO

3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,ASCLAVES       YSEASIGNARONSEGÞNLAFUNCIØNHASH (+ +MOD  %NLAlGURASEPRESENTAELESTADODELARREGLOA YLATABLACON(+ PARA CADACLAVEB  ,ATABLACONTIENEELSEGUIMIENTODELASVARIABLESIMPORTANTESDELALGORITMO PARAELCASODELEJEMPLOANTERIOR YELDATOABUSCARESIGUALA

4!",! 3OLUCIØNDECOLISIONESPOR LAPRUEBACUADRÉTICA +

$

)

$8











 #Ò426&%"*/5&3/"

411

&)'52! 3OLUCIØNDECOLISIONESPOR LAPRUEBACUADRÉTICA A !RREGLOB 4ABLACON (+ 

!LAPLICARLAFUNCIØNHASHALACLAVE SEOBTIENEUNADIRECCIØN$ IGUALA SINEMBARGO ENESADIRECCIØNNOSEENCUENTRAELELEMENTOBUSCADO3ECALCULAPOSTE RIORMENTE$8 COMOLASUMA$ ) ) OBTENIÏNDOSEDEESTAFORMALADIRECCIØN%L ALGORITMO DE BÞSQUEDA CONCLUYE CUANDO SE ENCUENTRA EL VALOR DESEADO EN LA DÏCIMA POSICIØNDELARREGLO %NLATABLASEPRESENTAELSEGUIMIENTODELASVARIABLESIMPORTANTESDELALGORITMO PARAUNCASOMÈSCOMPLEJOQUEELANTERIOR%LDATOABUSCARES

$OBLEDIRECCIØNHASH %LMÏTODODEDOBLEDIRECCIØNHASHCONSISTEENQUEUNAVEZQUESEDETECTALACOLISIØN SEGENERAOTRADIRECCIØNAPLICANDOLAMISMAFUNCIØNHASHALADIRECCIØNPREVIAMENTE OBTENIDA%LPROCESOSEDETIENECUANDOELELEMENTOESHALLADO OCUANDOSEENCUENTRA UNAPOSICIØNVACÓA

4!",!

$

)

$8

3OLUCIØNDECOLISIONESPOR LAPRUEBACUADRÉTICA +

























412 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" $(+ $ʹ($ $ʹʹ($ʹ  ,AFUNCIØNHASHQUESEAPLICANONECESARIAMENTETIENEQUESERLAMISMAQUEORIGI NALMENTESEAPLICØALACLAVEPODRÓASERCUALQUIEROTRA3INEMBARGO NOEXISTENINGÞN ESTUDIOQUEPRECISECUÈLESLAMEJORFUNCIØNQUESEDEBEUTILIZARENELCÈLCULODELAS DIRECCIONESSUCESIVAS !NALICEMOSAHORAELALGORITMODESOLUCIØNDECOLISIONESPORMEDIODELMÏTODODE LADOBLEDIRECCIØNHASH !LGORITMO $OBLE?DIRECCIØN $OBLE?DIRECCIØN6 . + [%STEALGORITMOBUSCAALDATOCONLACLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVEELPROBLEMADELASCOLISIONESPORMEDIODELADOBLEDIRECCIØNHASH] [$Y$8SONVARIABLESDETIPOENTERO]  (ACER$←(+  3I6;$8=≠6!#¶/ Y6;$=+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv $ SINO (ACER$8←(ʹ$  -IENTRAS$8≤. Y6;$8=≠6!#¶/ Y6;$8=≠+ Y$8≠$ 2EPETIR (ACER$8←(ʹ$8  [&INDELCICLODELPASO]  3I6;$8=6!#¶/ O6;$8=≠+ ENTONCES %SCRIBIRh,AINFORMACIØNBUSCADANOESTÈENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $8  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%LSIGUIENTEEJEMPLOILUSTRAELFUNCIONAMIENTODEESTEALGORITMO

%JEMPLO

3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,ASCLAVES       YFUERONASIGNADASSEGÞNLAFUNCIØNHASH (+ +MOD  !DEMÈSSEDElNIØUNAFUNCIØN(ʹPARACALCULARDIRECCIONESALTERNATIVASENCASODE HABERCOLISIØN

 #Ò426&%"*/5&3/"

413

&)'52! 3OLUCIØNDECOLISIONES PORELMÏTODODEDOBLE DIRECCIØNHASHA !RREGLO B 4ABLACON(+ (ʹ$ (ʹ$ʹ (ʹ$ʹʹ 

(ʹ$ $ L MOD L %NLAlGURASEPRESENTAELESTADODELARREGLOA YLATABLAB CON(+ PARACADACLAVE Y(ʹ$ ENCASODECOLISIØN %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOPARAELCASODELEJEM PLOANTERIOR%LDATOABUSCARESIGUALA !LAPLICARLAFUNCIØNHASH( ALACLAVE SEOBTUVOUNADIRECCIØN$ IGUALA #OMOENESAPOSICIØNNOSEENCUENTRAELELEMENTOBUSCADO SEAPLICAREITERADAMENTE (ʹ GENERANDODIRECCIONESHASTALOCALIZARELVALORDESEADO%NESTEEJEMPLOFUEPRECISO APLICARTRESVECESLAFUNCIØN(ʹ OBTENIÏNDOSELASDIRECCIONES Y ENLAQUElNAL MENTESEENCONTRØELDATOBUSCADO

 !RREGLOSANIDADOS %LMÏTODODEARREGLOSANIDADOSCONSISTEENQUECADAELEMENTODELARREGLOTENGAOTRO ARREGLO ENELCUALSEALMACENENLOSELEMENTOSQUECOLISIONAN3IBIENLASOLUCIØNPA RECESERSENCILLA ESCLAROQUERESULTAINElCIENTE!LTRABAJARCONARREGLOSSEDEPENDE DELESPACIOQUESEHAYAASIGNADOAÏSTOS LOCUALCONDUCEAUNNUEVOPROBLEMADIFÓCIL

4!",! 3OLUCIØNDECOLISIONESPOR ELMÏTODODEDOBLEDIREC CIØNHASH+

$

$8



  

414 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" DESOLUCIONARELEGIRUNTAMA×OADECUADODEARREGLOQUEPERMITAUNEQUILIBRIOENTREEL COSTODEMEMORIAYELNÞMERODEVALORESˆQUECOLISIONANˆQUEPUDIERAALMACENAR !NALICEMOSUNEJEMPLO

%JEMPLO

3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,OSELEMENTOSCONCLAVES      YSEALMACENARONENELARREGLOUNIDIMENSIONAL6UTILIZANDOLA FUNCIØNHASH (+ +MOD  %NLAlGURASEPRESENTAELESTADODELARREGLOANIDADOA YLATABLACON(+ PARACADACLAVEB 

 %NCADENAMIENTO %LMÏTODODEENCADENAMIENTOCONSISTEENQUECADAELEMENTODELARREGLOTENGAUNAPUN TADORAUNALISTALIGADA LACUALSEIRÈGENERANDOYALMACENARÈLOSVALORESQUECOLISIONAN %SELMÏTODOMÈSElCIENTEDEBIDOALDINAMISMOPROPIODELASLISTAS#UALQUIERAQUESEA ELNÞMERODECOLISIONESQUESEPRESENTEN SEPODRÈNRESOLVERSININCONVENIENTES #OMO DESVENTAJAS DEL MÏTODO DE ENCADENAMIENTO SE MENCIONA EL HECHO DE QUE OCUPAESPACIOADICIONALALDELATABLAYQUEEXIGEELMANEJODELISTASLIGADAS!DEMÈS SI LASLISTASCRECENDEMASIADOSEPERDERÈLAFACILIDADDEACCESODIRECTODELMÏTODOHASH ,AlGURAMUESTRALAESTRUCTURADEDATOSNECESARIAPARARESOLVERCOLISIONESPOR MEDIODELMÏTODODEENCADENAMIENTO !CONTINUACIØNSEPRESENTAELALGORITMODESOLUCIØNDECOLISIONESPORENCADENA MIENTO

&)'52! 3OLUCIØNDECOLISIONESCON ARREGLOSANIDADOS A !RREGLOANIDADO B 4ABLACON(+ 

 #Ò426&%"*/5&3/"

415

&)'52! 3OLUCIØNDECOLISIONESPOR ENCADENAMIENTO

!LGORITMO %NCADENAMIENTO %NCADENAMIENTO6 . + [%STEALGORITMOBUSCAALDATOCONCLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVELASCOLISIONESPORMEDIODEENCADENAMIENTOENLISTASLIGADAS3)'E).&/SONLOS CAMPOSDECADANODODELALISTA] [$ESUNAVARIABLEDETIPOENTERO1ESUNAVARIABLEDETIPOPUNTERO]  (ACER$←(+ ['ENERADIRECCIØN]  3I6;$=≠6!#¶/ Y6;$=+ ENTONCES %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $ SINO (ACER1←6;$=3)'[!PUNTADORALALISTA]  -IENTRAS1≠6!#¶/ Y1>).&/≠+ (ACER1←1>3)'  [&INDELCICLODELPASO]  3I16!#¶/ ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENLALISTAv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLALISTAv  [&INDELCONDICIONALDELPASO]  [&INDELCONDICIONALDELPASO]

%LFUNCIONAMIENTODEESTEALGORITMOQUEDAMÈSCLAROCONELSIGUIENTEEJEMPLO

416 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" %JEMPLO

3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,OSELEMENTOSCONCLAVES      YSEALMACENARONENELARREGLOUNIDIMENSIONAL6UTILIZANDOLA SIGUIENTEFUNCIØNHASH (+ +MOD  %NLAlGURASEPRESENTAELESTADODELARREGLOCONENCADENAMIENTOA YLA TABLACON(+ PARACADACLAVEB  5NAVEZDETECTADALACOLISIØNENUNACIERTAPOSICIØNDELARREGLO SEDEBERECORRERLA LISTAASOCIADAAELLAHASTAENCONTRARELELEMENTOBUSCADOOLLEGARASUlNAL %NELEJEMPLOSEPRESENTAOTROCASODESOLUCIØNDECOLISIONESPORENCADENA MIENTODONDELASCLAVESSONALFABÏTICAS

%JEMPLO

3EA0UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS ENELCUALSEALMACENANLOSDATOSDE ALGUNOSPINOSMEXICANOS3EUTILIZACOMOCLAVEELNOMBREDELOSPINOSPARAASIGNARA CADAUNODEELLOSUNADIRECCIØNENELARREGLO00ARAELLOPRIMEROSEOBTENDRÈUNNÞMERO QUERESULTARÈDESUSTITUIRCADALETRAPORUNDÓGITODELAL YAESTENÞMEROSELE APLICARÈLAFUNCIØNHASH( DElNIDADELASIGUIENTEMANERA (CLAVE CLAVEMOD  ,ATABLACONTIENELOSNOMBRESDELOSPINOS ELVALORNUMÏRICOASOCIADOCLAVE YLADIRECCIØNEN0QUELECORRESPONDE #OMOSEPUEDEAPRECIARENLATABLA HAHABIDOCOLISIONES0ARARESOLVERLAS SEAPLICA RÈELMÏTODODEENCADENAMIENTO,AESTRUCTURARESULTANTESEMUESTRAENLAlGURA #ABEDESTACARQUECUALQUIERAQUESEAELMÏTODOSELECCIONADOPARARESOLVERLASCO LISIONES SEDEBETENERENCUENTAENQUÏESTADOQUEDALAESTRUCTURAALINSERTARY SOBRE TODO ALELIMINARELEMENTOS,AELIMINACIØNESLAOPERACIØNQUEMÈSAFECTACUANDOSE

&)'52! 3OLUCIØNDECOLISIONESPOR ENCADENAMIENTO

 #Ò426&%"*/5&3/" 4!",!

.OMBRE

6ALORNUMÏRICO

417

$IRECCIØN

#EMBROIDES





%DULIS





#ULMINICOLA





1UADRIFOLIA





0INSEANA





&LEXILIS





!YACAHUITE





4EOCOTE





#OOPERI





0RINGLEI





TIENENCOLISIONES PORLOQUESELEDEBEDEDICARESPECIALATENCIØNPARANOPERDERElCIEN CIAENLABÞSQUEDA

!NÉLISISDELMÏTODOPORTRANSFORMACIØNDECLAVES 0ARAANALIZARLACOMPLEJIDADDEESTEMÏTODOESNECESARIOREALIZARVARIOSCÈLCULOSPRO BABILÓSTICOS QUENOSEESTUDIARÈNENESTAOBRA,ADIlCULTADDELANÈLISISSEDEBEPRIN CIPALMENTEAQUENOSØLOINTERVIENELAFUNCIØNHASHSINOTAMBIÏNELMÏTODOUTILIZADO PARARESOLVERLASCOLISIONES0ORLOTANTO SEDEBERÓAANALIZARCADAUNADELASPOSIBLES COMBINACIONESQUESEPUDIERANPRESENTAR

&)'52! 3OLUCIØNDECOLISIONESPOR ENCADENAMIENTO

418 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" 3EAλELFACTORDEOCUPACIØNDEUNARREGLO DElNIDOCOMO-. DONDE-ESELNÞ MERODEELEMENTOSENELARREGLOY.ESSUTAMA×O3EGÞN,IPSCHUTZ LAPROBABILIDADDE LLEVARACABOUNABÞSQUEDACONÏXITO3 YOTRASINÏXITO: QUEDANDETERMINADASPOR LASSIGUIENTESFØRMULAS ▼ &ØRMULAS

A "ÞSQUEDACONÏXITO B "ÞSQUEDASINÏXITO 3 L 

    L 

    L 

: L 



#ABEACLARARQUEESTASFØRMULASSONVÈLIDASSOLAMENTEENCASODEFUNCIONESHASH CONELMÏTODOLINEALDESOLUCIØNDECOLISIONES

 ­RBOLESDEBÞSQUEDA %NELCAPÓTULOSEPRESENTARONLOSÈRBOLESCOMOUNAESTRUCTURAPODEROSAYElCIENTEPARA ALMACENARYRECUPERARINFORMACIØN$EBIDOALDINAMISMOQUECARACTERIZAALOSÈRBOLES ELBENElCIODEUTILIZARLOSESMAYORCUANTOMÈSVARIABLESEAELNÞMERODEDATOSATRATAR

&)'52! 2EPRESENTACIØNDETRIES

 #Ò426&%"*/5&3/"

419

%NESTASECCIØNSØLOSEHABLARÈDELAESTRUCTURATRIE QUEESUNAVARIANTEDELAES TRUCTURATIPOÈRBOL 5NTRIEESUNAESTRUCTURASIMILARAUNÈRBOLCON.RAÓCES CONLAPARTICULARIDADDE QUECADANODODELÈRBOLPUEDESERNUEVAMENTEUNTRIE%NLAlGURASEPRESENTAUN DIAGRAMACORRESPONDIENTEAUNTRIEQUECONTIENELASPROPOSICIONESDELCASTELLANO 5NTRIEPUEDEREPRESENTARUNAESTRUCTURASUMAMENTEÞTILPARABÞSQUEDA,ASRAÓCESDEL ÈRBOLTIENENCOMOOBJETIVODIRIGIRELCAMINODEBÞSQUEDAHACIALAMETA,APROFUNDIDADDE UNAESTRUCTURADEESTETIPODEPENDEDELADISCRIMINACIØNENLACLAVEDEBÞSQUEDAQUEREALI CEELUSUARIO%NLAlGURASEPUEDEOBSERVARUNTRIECUYAPROFUNDIDADESVARIABLEPARA CADARAÓZ$EESTAFORMASELOCALIZALAINFORMACIØNBUSCADADIRECTAMENTEENELNODOTERMI NAL SINTENERQUEREALIZARBÞSQUEDASECUENCIAL%NLAlGURAELLECTORPUEDEOBSERVAR UNTRIECONPROFUNDIDADTRESLADISCRIMINACIØNENLACLAVEDEBÞSQUEDAESIGUALA #ONELPROPØSITODEINSTRUMENTARESTAESTRUCTURAENUNLENGUAJEDEALTONIVEL PODE MOSREPRESENTARUNTRIECOMOUNBOSQUE0OSTERIORMENTE APLICANDOLASREGLASNECESARIAS ˆANALIZADASENELCAPÓTULOˆ SEDEBECONVERTIRESTAESTRUCTURAENÈRBOLBINARIO%NLA lGURASEMUESTRAELBOSQUEQUEREPRESENTAALTRIEDELAlGURA &INALMENTE ENLAlGURASEMUESTRAALÈRBOLBINARIOQUEREPRESENTAALBOSQUE DELAlGURA

&)'52! 2EPRESENTACIØNDEUNTRIECONDISCRIMINACIØN

420 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" &)'52! 2EPRESENTACIØNDELTRIEDELAlGURACOMOBOSQUE

 "Â315%$!%84%2.! %NLASECCIØNANTERIORSEESTUDIARONLASTÏCNICASDEBÞSQUEDAQUESONAPLICABLESCUANDO LAINFORMACIØNRESIDEENLAMEMORIAPRINCIPALDELACOMPUTADORA%NPARTICULAR SEANALI ZØLAOPERACIØNDEBÞSQUEDAENESTRUCTURASESTÈTICASˆARREGLOSˆYDINÈMICASˆLISTASY ÈRBOLESˆDEINFORMACIØN3INEMBARGO EXISTENCASOSENLOSCUALESNOSEPUEDEMANEJAR TODALAINFORMACIØNENMEMORIAPRINCIPAL SINOQUEESNECESARIOTRABAJARCONINFORMA CIØNALMACENADAENARCHIVOS%STETIPODEBÞSQUEDASEDENOMINABÞSQUEDAEXTERNA ,OS ARCHIVOS SE USAN NORMALMENTE CUANDO EL VOLUMEN DE DATOS ES SIGNIlCATIVO OCUANDOLAAPLICACIØNEXIGELAPERMANENCIADELOSDATOS AUNDESPUÏSDEQUEÏSTASE TERMINEDEEJECUTAR#OMOLOSARCHIVOSSEENCUENTRANALMACENADOSENDISPOSITIVOSPE RIFÏRICOSˆCINTAS DISCOS ETCˆ LASOPERACIONESDEESCRITURAYLECTURADEDATOSTIENEN UNALTOCOSTOENCUANTOATIEMPO PORLOSACCESOSAESTOSPERIFÏRICOS0ARADISMINUIREL

 #Ò426&%"&95&3/"

&)'52! 2EPRESENTACIØNDELBOSQUEDELAlGURACOMOÉRBOLBINARIO

421

422 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" TIEMPODEACCESOESMUYIMPORTANTEOPTIMIZARLASOPERACIONESDEBÞSQUEDA INSERCIØN YELIMINACIØNENARCHIVOS5NAFORMADEHACERLOESTRABAJARCONARCHIVOSORDENADOS! CONTINUACIØNSEDESCRIBENALGUNOSDELOSMÏTODOSMÈSUTILIZADOSENBÞSQUEDAEXTERNA

 "ÞSQUEDAENARCHIVOSSECUENCIALES ,OSARCHIVOSSECUENCIALESSONAQUELLOSCUYOSCOMPONENTESOREGISTROSOCUPANPOSI CIONESRELATIVASCONSECUTIVAS4ODOCOMPONENTEOREGISTRODEUNARCHIVOTIENEGENERAL MENTEUNCAMPOQUELOIDENTIlCA LLAMADOCAMPOCLAVE²STESEENCUENTRAFORMADOPOR UNCONJUNTODECARACTERESODÓGITOS!DEMÈS OCUPALAMISMAPOSICIØNRELATIVAENTODOS LOSREGISTROSDEUNMISMOARCHIVO!LGUNOSEJEMPLOSDECAMPOSCLAVESONELNÞMERODE CLIENTEˆARCHIVODECLIENTESˆ ELNÞMERODECONTRIBUYENTEˆARCHIVODEHACIENDAˆ LAMATRÓCULADEUNALUMNOˆARCHIVODEALUMNOSˆ ELNÞMERODEEMPLEADOˆARCHIVO DEEMPLEADOSˆ ETC0UEDESUCEDERQUELACLAVEDEUNREGISTROESTÏFORMADAPORMÈS DEUNCAMPO0OREJEMPLO ENUNSISTEMADEINVENTARIOSCADAPIEZASEPODRÓAIDENTIlCAR PORUNCAMPOQUEHAGAREFERENCIAALDEPARTAMENTOALCUALPERTENECE YOTROCAMPOPARA LAPIEZAENSÓ %NSEGUIDASEDESCRIBENALGUNOSMÏTODOSDEBÞSQUEDAENARCHIVOSSECUENCIALES

 "ÞSQUEDASECUENCIAL %LMÏTODODEBÞSQUEDASECUENCIALCONSISTEENRECORRERELARCHIVOCOMPARANDOLACLAVE BUSCADACONLACLAVEDELREGISTROENCURSO%LRECORRIDOLINEALDELARCHIVOTERMINACUANDO SEENCUENTRAELELEMENTO OCUANDOSEALCANZAELlNALDELARCHIVO3EPUEDENPRESENTAR ALGUNASVARIANTESDENTRODEESTEMÏTODO DEPENDIENDOSOBRETODODESIELARCHIVOESTÈ ORDENADOODESORDENADO !CONTINUACIØNSEDETALLAELALGORITMODEBÞSQUEDALINEALENUNARCHIVOSECUENCIAL DESORDENADO !LGORITMO !RCHIVO?SECUENCIAL?DESORDENADO

!RCHIVO?SECUENCIAL?DESORDENADO&! + [%STEALGORITMOBUSCASECUENCIALMENTEENUNARCHIVODESORDENADO&! UNREGISTROCONCLAVE +] ["!. ES UNA VARIABLE DE TIPO BOOLEANO 2 ES UNA VARIABLE DE TIPO REGISTRO #,!6% ES UN CAMPODELREGISTRO]  !BRIRELARCHIVO&!PARALECTURA  (ACER"!.←&!,3/  -IENTRASNOSEAELlNDEARCHIVODE&! Y"!.&!,3/ 2EPETIR ,EER2DE&!  3I2#,!6%+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELARCHIVOv

 #Ò426&%"&95&3/"

423

(ACER"!.←6%2$!$%2/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.&!,3/ ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARCHIVOv  [&INDELCONDICIONALDELPASO]

%STEALGORITMOESSIMILARAL%NGENERAL TIENELASMISMASCARACTERÓSTICASQUEEL MÏTODOSECUENCIALENARREGLOSDESORDENADOS %LALGORITMODEBÞSQUEDAENARCHIVOSORDENADOSSEESTUDIARÈCONSIDERANDO ENPAR TICULAR ARCHIVOSORDENADOSENFORMACRECIENTE !LGORITMO !RCHIVO?SECUENCIAL?ORDENADO !RCHIVO?SECUENCIAL?ORDENADO&! + [%STE ALGORITMO BUSCA SECUENCIALMENTE EN UN ARCHIVO &! ORDENADO EN FORMA CRECIENTE UN REGISTROCONCLAVE+] ["!. ES UNA VARIABLE DE TIPO BOOLEANO 2 ES UNA VARIABLE DE TIPO REGISTRO #,!6% ES UN CAMPODELREGISTRO]  !BRIRELARCHIVO&!PARALECTURA  (ACER"!.←&!,3/  -IENTRASNOSEAELlNDEARCHIVODE&! Y"!.&!,3/ 2EPETIR ,EER2DE&!  3I2#,!6%≥+ ENTONCES (ACER"!.←6%2$!$%2/  [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I2#,!6%+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELARCHIVOv SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARCHIVOv  [&INDELCONDICIONALDELPASO]

,ADIFERENCIAENTREESTEALGORITMOYELANTERIORCONSISTEENQUELABÞSQUEDATAMBIÏN SEDETIENECUANDOLACLAVEDE2ESMAYORQUE+%STOÞLTIMOSEDEBEAQUESIELARCHIVO ESTÈ ORDENADO YA NO SE ENCONTRARÈ EL REGISTRO CON CLAVE + ENTRE LOS REGISTROS AÞN NO VISITADOS

424 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

 "ÞSQUEDASECUENCIALMEDIANTEBLOQUES ,ABÞSQUEDASECUENCIALMEDIANTEBLOQUESCONSISTEENTOMARBLOQUESDEREGISTROSEN VEZDEREGISTROSAISLADOS5NBLOQUEESUNCONJUNTODEREGISTROS3UTAMA×OESARBITRARIO YDEPENDEDELNÞMERODEELEMENTOSDELARCHIVO'ENERALMENTESEDElNEELTAMA×ODEL . . BLOQUEIGUALA DONDEESELNÞMERODEREGISTROSDELARCHIVOˆLADEMOSTRACIØNDE . PORQUÏESSEPRESENTAMÈSADELANTEˆ%LARCHIVODEBEESTARORDENADO,ABÞSQUEDA SEREALIZAALCOMPARARLACLAVEENCUESTIØNCONELÞLTIMOREGISTRODECADABLOQUE3ILA CLAVERESULTAMENOR ENTONCESSEBUSCAENFORMASECUENCIALATRAVÏSDELOSREGISTROSSAL TEADOSENELBLOQUE%NCASOCONTRARIOSECONTINÞACONELSIGUIENTEBLOQUE%NPROMEDIO . ELNÞMERODECOMPARACIONESREQUERIDASPARAENCONTRARUNVALORDADOSERÈIGUALA !CONTINUACIØNSEPRESENTAUNALGORITMODEBÞSQUEDASECUENCIALUSANDOBLOQUES !LGORITMO !RCHIVO?SECUENCIAL?BLOQUES !RCHIVO?SECUENCIAL?BLOQUES&! . + [%STEALGORITMOBUSCASECUENCIALMENTEENUNARCHIVOORDENADO&!DE.ELEMENTOS UNREGISTRO CONCLAVE+] [)Y4"SONVARIABLESDETIPOENTERO"!.ESUNAVARIABLEDETIPOBOOLEANO]  !BRIRELARCHIVO&!PARALECTURA  (ACER"!.←&!,3/ )←Y4"←0ARTE%NTERASQRT. [#ALCULAELTAMA×ODEL BLOQUECOMOLARAÓZCUADRADADE.]  -IENTRAS4" )≤. Y"!.&!,3/ 2EPETIR ,EER2DE&!ENLAPOSICIØN4" )  3I2#,!6%≥+ ENTONCES (ACER"!.←6%2$!$%2/ SINO (ACER)←)   [&INDELCONDICIONALDELPASO]  [&INDELCICLODELPASO]  3I"!.6%2$!$%2/ ENTONCES  3I2#,!6%+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELARCHIVOv SINO 2EALIZARBÞSQUEDASECUENCIALENLOSREGISTROSSALTEADOSDELREGISTRO 4" )n  ALREGISTRO4" )n 2EPOSICIONARELPUNTERODELARCHIVO YAPLICARELALGORITMOPARA EJECUTARLABÞSQUEDAELEMENTOPORELEMENTO  [&INDELCONDICIONALDELPASO] SINO[3I4"NOESMÞLTIPLODE. QUEDARONELEMENTOSSINREVISAR] 2EALIZARBÞSQUEDASECUENCIALENLOSREGISTROSCOMPRENDIDOSENTRE 4" )n  Y.  [&INDELCONDICIONALDELPASO]

 #Ò426&%"&95&3/"

425

%NESTEALGORITMOSELEEELÞLTIMOREGISTRODECADABLOQUE YDELACOMPARACIØNDEL ELEMENTOBUSCADOCONÏLSEDECIDECØMOCONTINUARCONLABÞSQUEDA%LSIGUIENTEEJEM PLOILUSTRAMEJORELFUNCIONAMIENTODEESTEALGORITMO

%JEMPLO

3EA&!UNARCHIVOORDENADODEREGISTROS,OSREGISTROSOCUPANPOSICIONESCONSECU TIVASCONDIRECCIONESRELATIVASDELAL,ASCLAVESDELOSREGISTROSALMACENADOSEN &!SON                     $ADOQUESECONOCE. SECALCULAELTAMA×ODELBLOQUEDELASIGUIENTEMANERA 4"  



                    ,ATABLAPRESENTAELSEGUIMIENTODELALGORITMOPARA+ %NLACOLUMNA2EGISTROLEÓDOAPARECEELÞLTIMOREGISTRODELBLOQUE PASOS Y %NELPASO CUANDOSECUMPLELACONDICIØNDEQUE2#,!6%≥+ ENTONCESSECOMIEN ZALABÞSQUEDASECUENCIALAPARTIRDELELEMENTO4" )n  ˆELEMENTOˆ EN ESTECASOEL HASTAQUESEENCUENTRAELVALORDESEADOˆÏXITOˆOHASTAELELEMENTO 4" )n ˆELEMENTOˆ/BSERVEQUEENELPASOSEENCUENTRAELREGISTROBUSCADO

 "ÞSQUEDASECUENCIALCONÓNDICES %LMÏTODODEBÞSQUEDASECUENCIALCONÓNDICESTRABAJACONBLOQUESYCONARCHIVOSDE ÓNDICES%NELARCHIVODEÓNDICESSEALMACENANLASCLAVESQUEHACENREFERENCIAACADA BLOQUEYLADIRECCIØNDELOSBLOQUESENELARCHIVO,ABÞSQUEDADEUNELEMENTOCOMIEN ZA RECORRIENDO EL ARCHIVO DE ÓNDICES COMPARANDO LAS CLAVES ALLÓ ALMACENADAS CON LA CLAVEDELELEMENTOENCUESTIØN5NAVEZQUESEDETERMINAELBLOQUEENELCUALSEPUEDE ENCONTRAR EL REGISTRO BUSCADO SE CONTINÞA LA BÞSQUEDA AHORA RECORRIENDO SECUENCIAL MENTEDICHOBLOQUE

4!",! "ÞSQUEDASECUENCIALCON BLOQUE

0ASO

)

2EGISTROLEÓDO

#OMPARA

"ANDERA







≥

&







≥

&







≥

6













426 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" ,ADESVENTAJADEESTEMÏTODOESQUEREQUIEREMÈSESPACIODEMEMORIA YAQUESE TRABAJACONDOSARCHIVOSELPRINCIPAL ENELCUALSEALMACENANLOSREGISTROS YELDEÓN DICES5NAFORMADEACELERARELPROCESODEBÞSQUEDACONSISTEENMANTENERENMEMORIA PRINCIPALELARCHIVODEÓNDICES %N LA lGURA  SE PRESENTA UN ESQUEMA DE UN ARCHIVO CON SU CORRESPONDIENTE ARCHIVODEÓNDICES %LARCHIVODEÓNDICESSERECORRESECUENCIALMENTEHASTAENCONTRARLACLAVEQUESEA MAYOROIGUALALACLAVEBUSCADA#UANDOESTOÞLTIMOSUCEDA SETOMARÈLADIRECCIØNDEL BLOQUEAPUNTADOPORDICHACLAVEYSEAPLICARÈBÞSQUEDASECUENCIALALGORITMO EN DICHOBLOQUE

$ETERMINACIØNDELTAMA×ODELBLOQUE %LTAMA×ODELBLOQUESEDEBEELEGIRDETALFORMAQUEPERMITAREDUCIRELNÞMERODECOM PARACIONES3EA.ELNÞMERODEREGISTROSENELARCHIVOY4"ELTAMA×ODELBLOQUE,A PROBABILIDADDEENCONTRARUNREGISTROENUNBLOQUEESIGUALPARATODOSLOSBLOQUESPOR LOTANTO ELNÞMEROMEDIODEBLOQUESEXAMINADOSSERÈ

.  4"

¥



´

¤ ¦§ I  .  4" µ¶  I 

.  4"  



$ONDE.4" REPRESENTALAPROBABILIDADDEENCONTRARUNREGISTROENUNBLOQUE #ONSIDERE ADEMÈS QUETODOSLOSREGISTROSTIENENLAMISMAPROBABILIDADDESERELBUS CADOPORLOTANTO ELNÞMEROMEDIODEREGISTROSEXAMINADOSSERÈ

&)'52! "ÞSQUEDASECUENCIALCON ÓNDICES

 #Ò426&%"&95&3/" 4" 



¥

¤ § I 4" ´¶  I

4"  

427



$ONDE4"ESLAPROBABILIDADDEQUEELREGISTROEXAMINADOSEAELBUSCADO 3ESUMANLASEXPRESIONESYPARAOBTENERELNÞMEROTOTALMEDIODECOMPARACIO NES4# QUESEDEBENHACERPARAENCONTRARUNELEMENTOENELARCHIVO 4# 

 .  4"  4"  





/PERANDOSEOBTIENE 4# 

. 4"  4" 



!LMINIMIZAR4#SEPODRÈDETERMINARCUÈLESELTAMA×OADECUADOPARADElNIRLOS BLOQUESESDECIR ELPROBLEMASEREDUCEAENCONTRARUNVALORTALPARA4"QUEMINIMICE ELVALORDE4#

.  D  4#  D  4"   4"  



3EIGUALAACEROLAEXPRESIØNYSEHACENLASOPERACIONES 

.     4" 

.       4"



$ELAEXPRESIØNSEPUEDEAlRMARQUEELVALORDE4"QUEMINIMIZAA4#ES

4"  .

▼ &ØRMULA

,OSARCHIVOSDEÓNDICES POROTRAPARTE SEPUEDENDElNIRADISTINTOSNIVELESESDECIR SEPUEDENDElNIRÓNDICESDEÓNDICES3IBIENESTETIPODEORGANIZACIØNOPTIMIZAELTIEMPO DEBÞSQUEDA TIENEELINCONVENIENTEDEQUEOCUPAMUCHOESPACIODEALMACENAMIENTO

 "ÞSQUEDABINARIA %LPRINCIPIOQUERIGEELMÏTODODEBÞSQUEDABINARIAENLABÞSQUEDAEXTERNAESELMIS MOQUESEEXPLICØENBÞSQUEDABINARIAINTERNA SECCIØNDEESTECAPÓTULO%LARCHIVO DEBEESTARORDENADOYSEDEBECONOCERSUNÞMERODEELEMENTOS. PARAAPLICARESTE MÏTODO%LLECTORPUEDEDESARROLLARLOFÈCILMENTE YAQUECONOCEELMÏTODODEBÞSQUEDA BINARIAENMEMORIAPRINCIPALˆINTERNAˆ

428 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" #ABE DESTACAR QUE UN GRAN INCONVENIENTE DE LA BÞSQUEDA BINARIA EXTERNA ES QUE REQUIERE ACCESOS A DIFERENTES POSICIONES DEL DISPOSITIVO PERIFÏRICO EN EL CUAL ESTÈ AL MACENADOELARCHIVOELLOPRODUCEUNALTOCOSTOENTIEMPODEACCESO QUEHACEMUY IMPRÈCTICAESTABÞSQUEDA

 "ÞSQUEDAPORTRANSFORMACIØNDECLAVESHASH %LMÏTODODEBÞSQUEDAEXTERNAPORTRANSFORMACIØNDECLAVESTIENEBÈSICAMENTELAS MISMASCARACTERÓSTICASQUEELPRESENTADOENLASECCIØN,OSARCHIVOSNORMALMENTE SE ENCUENTRAN ORGANIZADOS EN ÈREAS LLAMADAS CUBETAS ²STAS SE ENCUENTRAN FORMADAS PORCERO UNOOMÈSBLOQUESDEREGISTROS0ORLOTANTO LAFUNCIØNHASH APLICADAAUNA CLAVE DARÈCOMORESULTADOUNVALORQUEHACEREFERENCIAAUNACUBETAENLACUALSEPUEDE ENCONTRARELREGISTROBUSCADO 4ALCOMOSEMENCIONØENBÞSQUEDAINTERNA LAELECCIØNDEUNAADECUADAFUNCIØN HASHYDEUNMÏTODOPARARESOLVERCOLISIONESESFUNDAMENTALPARALOGRARMAYORElCIEN CIAENLABÞSQUEDA !NTESDEPRESENTARALGUNASFUNCIONESHASHSEHARÈUNCOMENTARIOSOBRELASCOLISIO NES,OSBLOQUESCONTIENENUNNÞMEROlJODEREGISTROS#ONRESPECTOALASCUBETAS NOSE ESTABLECEUNLÓMITEENCUANTOALNÞMERODEBLOQUESQUEPUEDENALMACENAR%STACARAC TERÓSTICAPERMITESOLUCIONAR ALMENOSPARCIALMENTE ELPROBLEMADELASCOLISIONES3IN EMBARGO SIELTAMA×ODELASCUBETASCRECECONSIDERABLEMENTE SEPERDERÈNLASVENTAJAS PROPIASDEESTEMÏTODO%SDECIR SIELNÞMERODEBLOQUESQUESEDEBENRECORRERENUNA CUBETAESGRANDE ELTIEMPONECESARIOPARAELLOSERÈSIGNIlCATIVOPORLOTANTO YANOSE CONTARÈCONLAVENTAJADELACCESODIRECTOQUECARACTERIZAALMÏTODOPORTRANSFORMACIØN DECLAVES%NLAlGURASEPRESENTAUNAESTRUCTURADEARCHIVOORGANIZADOENCUBETAS LASQUEASUVEZESTÈNFORMADASPORBLOQUES #OMO SE MUESTRA EN LA lGURA  CADA CUBETA PUEDE TENER UN APUNTADOR A UN BLOQUE3IUNACUBETATIENEDOSOMÈSBLOQUESSEESTABLECENLIGASENTREELLOS$ADALA CLAVEDEUNREGISTROBUSCADO SEAPLICARÈUNAFUNCIØNHASH LACUALDARÈCOMORESULTADO UNNÞMERODECUBETA5NAVEZLOCALIZADAÏSTA HABRÈQUERECORRERSUSBLOQUESHASTAEN CONTRARELREGISTRO OLLEGARAUNBLOQUECONPUNTERONULO LOCUALINDICARÈQUENOEXISTEN OTROSBLOQUES %SIMPORTANTEELEGIRUNAFUNCIØNHASHQUEDISTRIBUYALASCLAVESENFORMAHOMOGÏ NEAATRAVÏSDELASCUBETAS DEMANERAQUESEEVITELACONCENTRACIØNDENUMEROSASCLAVES

&)'52! !RCHIVOORGANIZADOCON CUBETASDEBLOQUES

 #Ò426&%"&95&3/"

429

ENUNACUBETAMIENTRASOTRASPERMANECENVACÓAS!CONTINUACIØNSEPRESENTANALGUNAS DELASFUNCIONESHASHMÈSCOMUNES

&UNCIONESHASH 5NAFUNCIØNHASHSEPUEDEDElNIRCOMOUNATRANSFORMACIØNDECLAVEAUNADIRECCIØN!L APLICARUNAFUNCIØNHASHAUNACLAVESEOBTIENEELNÞMERODECUBETAENLACUALSEPUEDE ENCONTRARELREGISTROCONDICHACLAVE ,AFUNCIØNDEBETRANSFORMARLASCLAVESPARAQUELADIRECCIØNRESULTANTESEAUNNÞ MEROCOMPRENDIDOENTRELOSPOSIBLESVALORESDELASCUBETAS0OREJEMPLO SISETIENEN CUBETASNUMERADASDEA LASDIRECCIONESPRODUCIDASPORLAFUNCIØNDEBEN SERVALORESCOMPRENDIDOSENTREY3ILASCLAVESFUERANALFABÏTICASOALFANUMÏ RICAS PRIMERO DEBERÈN CONVERTIRSE EN NUMÏRICAS TRATANDO DE NO PERDER INFORMACIØN PARALUEGOSERTRANSFORMADASENUNADIRECCIØN%SIMPORTANTEQUELAFUNCIØNDISTRIBUYA HOMOGÏNEAMENTELASCLAVESENTRELOSNÞMEROSDECUBETASDISPONIBLES ,ASFUNCIONESMØDULO CUADRADO PLEGAMIENTOYTRUNCAMIENTOPRESENTADASANTERIOR MENTEPARABÞSQUEDAINTERNASONVÈLIDASTAMBIÏNPARABÞSQUEDAEXTERNA/TRAFUNCIØN QUESEPUEDEUTILIZARPARAELCÈLCULODEDIRECCIONESESLADECONVERSIØNDEBASES AUNQUE NOPROPORCIONAMAYORHOMOGENEIDADENLADISTRIBUCIØN$ETODAS LAFUNCIØNMØDULOES SINEMBARGO LAQUEOFRECEMAYORUNIFORMIDAD

#ONVERSIONESDEBASES ,ACONVERSIØNDEBASESCONSISTEENMODIlCARDEMANERAARBITRARIALABASEDELACLAVE OBTENIENDOUNNÞMEROQUECORRESPONDAAUNACUBETA3IELNÞMERODEDÓGITOSDELVALOR RESULTANTEEXCEDEELORDENDELASDIRECCIONES ENTONCESSESUPRIMIRÈNLOSDÓGITOSMÈS SIGNIlCATIVOS

%JEMPLO

3UPONGAMOSQUESETIENENCUBETAS CADAUNADEELLASREFERENCIADAPORUNNÞMERO ENTEROCOMPRENDIDOENTREY3EA+LACLAVEDELREGISTROQUESEBUSCA3E ELIGEELCOMOBASEALACUALSECONVIERTELACLAVE ( DÓGMENSIG        ( DÓGMENSIG  3ETOMAENTONCESCOMODIRECCIØNELYLOSDÓGITOSMÈSSIGNIlCATIVOS Y SE DESPRECIAN

 3OLUCIØNDECOLISIONES #OMOSEMENCIONØANTERIORMENTECUANDOSETRATØBÞSQUEDAINTERNA UNODELOSASPECTOS QUESIEMPRESEDEBENDECONSIDERARENELMÏTODOPORTRANSFORMACIØNDECLAVESESLASO LUCIØNDECOLISIONES#UANDODOSOMÈSELEMENTOSCONDISTINTASCLAVESTIENENUNAMISMA DIRECCIØN SEORIGINAUNACOLISIØN 0ARAEVITARLASCOLISIONESSEDEBEELEGIRUNTAMA×OADECUADODECUBETASYDEBLO QUES#ONRESPECTOALASCUBETAS SISEDElNENMUYPEQUE×ASELNÞMERODECOLISIONES

430 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" AUMENTA MIENTRASQUESISEDElNENMUYGRANDESSEPIERDEElCIENCIAENCUANTOAESPACIO DEALMACENAMIENTO!DEMÈS SISENECESITARACOPIARUNACUBETAENMEMORIAPRINCIPALY ÏSTAFUERAMUYGRANDE OCASIONARÓAPROBLEMASPORFALTADEESPACIO/TROINCONVENIENTE QUESEPRESENTAENELCASODECUBETASMUYGRANDESESQUESEREQUIEREMUCHOTIEMPO PARARECORRERLAS #ONRESPECTOALTAMA×ODELOSBLOQUES ESIMPORTANTECONSIDERARLACAPACIDADDE ÏSTOSPARAALMACENARREGISTROS5NBLOQUEPUEDEALMACENARUNO DOSOMÈSREGISTROS .ORMALMENTELOSTAMA×OSDELASCUBETASYLOSBLOQUESDEPENDENDELASCAPACIDADESDEL EQUIPOCONELQUESEESTÏTRABAJANDO #ABEDESTACARQUEUTILIZANDOUNAESTRUCTURACOMOLADELAlGURANOSETENDRÓA PROBLEMASDECOLISIONES DEBIDOPRINCIPALMENTEAQUEPORMÈSQUELACUBETAESTÏOCU PADA ESPOSIBLESEGUIRENLAZANDOTANTOSBLOQUESCOMOFUERANNECESARIOS%STEESQUEMA DESOLUCIØNSECORRESPONDECONELPRESENTADOENBÞSQUEDAINTERNA BAJOELNOMBREDE ENCADENAMIENTO3INEMBARGO NOSIEMPREESPOSIBLEDElNIRUNAESTRUCTURADEESTETIPO #ONSIDERE POREJEMPLO UNARCHIVOORGANIZADOENCUBETASCOMOELQUESEMUESTRAEN LAlGURA %NESTEARCHIVOCADACUBETATIENEUNBLOQUEY PORLOTANTO UNACAPACIDADMÈXIMA DETERMINADAPORELTAMA×ODELBLOQUEASOCIADOCONELLA5NAVEZQUESESATURALACAPA CIDADDELACUBETA CUALQUIERREGISTROASIGNADOAELLAPRODUCIRÈUNACOLISIØN!CONTINUA CIØNSEANALIZARÈNDOSMANERASDIFERENTESDEENFRENTARESTASITUACIØN

&)'52! 3OLUCIØNDECOLISIONES

 #Ò426&%"&95&3/"

431

5SODEÉREASINDEPENDIENTESPARACOLISIONES %L USO DE ÈREAS INDEPENDIENTES PARA COLISIONES CONSISTE EN DElNIR ÈREAS SEPARADAS ˆSECUNDARIASˆDELASÈREASPRIMARIASDEALMACENAMIENTO ENLASQUESEALMACENARÈN TODOSLOSREGISTROSQUEHAYANCOLISIONADO%LÈREADECOLISIONESPUEDEESTARORGANIZADA DEDIFERENTESMANERAS5NAALTERNATIVACONSISTEENTENERELÈREACOMÞNATODASLASCU BETAS%NCONSECUENCIA SISEPRODUCEUNACOLISIØNHABRÈQUEBUSCARALOLARGODELÈREA SECUNDARIAHASTAENCONTRARELELEMENTODESEADO SEGÞNLAlGURA /TRAFORMADEORGANIZARELÈREADECOLISIONESCONSISTEENDIVIDIRLAENBLOQUES ASO CIANDOCADAUNODEELLOSAUNODELÈREAPRIMARIA%STAALTERNATIVAOPTIMIZAELTIEMPO DEBÞSQUEDAENELÈREADECOLISIONES PEROTIENEELINCONVENIENTEDEQUEESTOSBLOQUES PODRÓAN ASUVEZ SATURARSE OCASIONANDONUEVAMENTECOLISIONES%LESQUEMACORRESPON DIENTEAESTAESTRUCTURASEMUESTRAENLAlGURA

&)'52! 3OLUCIØNDECOLISIONESMEDIANTEUNÉREACOMÞNDECOLISIONES

432 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

&)'52! 3OLUCIØNDECOLISIONESMEDIANTEUNÉREADECOLISIONESORGANIZADAENBLOQUES

5SODEÉREASDECOLISIONESENTRELOSBLOQUES DEALMACENAMIENTOPRIMARIO %LUSODEÈREASDECOLISIONESENTRELOSBLOQUESDEALMACENAMIENTOPRIMARIOCON SISTEENDElNIRÈREASDECOLISIONESENTRELOSBLOQUESDEALMACENAMIENTOPRIMARIO%STE MÏTODOESSIMILARALPRESENTADOENBÞSQUEDAINTERNABAJOELNOMBREDEREASIGNACIØN 5NAVEZDETECTADAUNACOLISIØNENUNBLOQUESEDEBEBUSCARENELÈREADECOLISIONESIN MEDIATAADICHOBLOQUE3IELELEMENTONOSEENCUENTRAYELÈREADECOLISIONESESTÈLLENA SECONTINUARÈLABÞSQUEDAATRAVÏSDELASOTRASÈREASDECOLISIONES%LPROCESOTERMINA CUANDOELELEMENTOSEENCUENTRAOBIENCUANDOEXISTENESPACIOSVACÓOSENUNBLOQUE ˆELELEMENTOBUSCADONOSEENCUENTRAENELARCHIVOˆ%LESQUEMACORRESPONDIENTEA ESTEESQUEMASEMUESTRAENLAlGURA

 #Ò426&%"&95&3/"

433

&)'52! 3OLUCIØNDECOLISIONES MEDIANTEBLOQUESPARAÊ COLISIONESENTRELOSBLOQUES PRIMARIOS

 (ASHINGDINÉMICOBÞSQUEDADINÉMICA

PORTRANSFORMACIØNDECLAVES ,APRINCIPALCARACTERÓSTICADELHASHINGDINÈMICOESSUDINAMISMOPARAVARIARELNÞ MERODECUBETASENFUNCIØNDESUDENSIDADDEOCUPACIØN3ECOMIENZAATRABAJARCON UNNÞMERODETERMINADODECUBETAS YAMEDIDAQUEÏSTASSEVANLLENANDOSEASIGNAN NUEVASCUBETASALARCHIVO%XISTENBÈSICAMENTEDOSFORMASDETRABAJARCONELHASHING DINÈMICO ◗ ◗

0ORMEDIODEEXPANSIONESTOTALES 0ORMEDIODEEXPANSIONESPARCIALES

 -ÏTODODELASEXPANSIONESTOTALES %LMÏTODODEEXPANSIONESTOTALESESPROBABLEMENTEELMÈSUTILIZADO#ONSISTEENDU PLICARELNÞMERODECUBETASENLAMEDIDAENQUEÏSTASSUPERANLADENSIDADDEOCUPACIØN PREVIAMENTEESTABLECIDA!SÓ POREJEMPLO SIELNÞMEROINICIALDECUBETASES.YSEHACE UNA EXPANSIØNTOTAL ELVALORRESULTANTEˆNUEVONÞMERODECUBETASˆSERÈ.3ISE HACEUNASEGUNDAEXPANSIØNTOTAL SETENDRÈ. YASÓSUCESIVAMENTE %LDINAMISMODEESTEMÏTODOTAMBIÏNSEDAENSENTIDOCONTRARIOESDECIR QUEA MEDIDAQUELADENSIDADDEOCUPACIØNDELASCUBETASDISMINUYE SEREDUCEELNÞMERODE ÏSTAS!SÓ SEGANAmEXIBILIDADENCUANTOAQUESEPUEDENINCREMENTARLOSESPACIOSDEAL MACENAMIENTO PEROTAMBIÏNSEPUEDENREDUCIRSILADEMANDADEESPACIOASÓLOINDICA

%JEMPLO

3UPONGAMOSQUESETIENEUNARCHIVOORGANIZADOENDOSCUBETAS. YSEHAlJADO UNADENSIDADDEOCUPACIØNDE,ADENSIDADDEOCUPACIØNSECALCULACOMOELCO CIENTEENTREELNÞMERODEREGISTROSOCUPADOSYELDEREGISTROSDISPONIBLES#ADACUBETA TIENEDOSREGISTROS YLAFUNCIØNHASHQUETRANSFORMACLAVESENDIRECCIONESSEDElNEDE LASIGUIENTEMANERA (CLAVE CLAVE-/$.ÞMERODECUBETAS

434 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" &)'52! (ASHDINÉMICO.  EXPANSIØNTOTAL

,OSVALORES  YSONLASCLAVESDELOSREGISTROSQUESEDESEAALMACENAR )NICIALMENTEELARCHIVOESTÈVACÓO%NLAlGURASEPRESENTAUNESQUEMADECØMO QUEDANLASCUBETAS DESPUÏSDEINSERTARLASTRESPRIMERASCLAVES #UANDOSEQUIEREINSERTARLACLAVE SESUPERALADENSIDADDEOCUPACIØNESTABLECI DA YAQUESEALCANZARÓADELLENADO0ORLOTANTO SEDEBENEXPANDIRYREASIGNARLOS REGISTROSCONSIDERANDOAHORAQUEELNÞMERODECUBETASESIGUALA . lGURA 3UPONGAMOSAHORAQUESEDESEAINCORPORARLOSREGISTROSCONCLAVES       YENESTEORDEN%LRESULTADO DESPUÏSDEINSERTARLASDOSPRIMERAS CLAVES SEPUEDEOBSERVARENLAlGURA #UANDOSEINSERTAELREGISTROCONCLAVE LADENSIDADDEOCUPACIØNSUPERAEL lJADO3EVUELVEN ENTONCES AEXPANDIRYAREASIGNARLOSREGISTROSALMACENADOSlGURA A YLUEGOSECONTINÞACONLAINSERCIØNDELRESTODELOSELEMENTOS,AlGURAB PRESENTAELESTADODELASCUBETASLUEGODEREALIZARTODASLASINSERCIONES EXCEPTOLAÞL TIMA #UANDOSEINSERTALAÞLTIMACLAVE  SESUPERANUEVAMENTELADENSIDADDEOCUPA CIØNYHAYQUEVOLVERAEXPANDIRLASCUBETAS0ORLOTANTO AHORA.SERÈIGUALAlGURA   %SIMPORTANTESE×ALARQUEENESTEMÏTODOTAMBIÏNSEPUEDENPRODUCIRCOLISIONES LASCUALESPODRÓANTRATARSESEGÞNALGUNODELOSESQUEMASPROPUESTOSANTERIORMENTE0OR EJEMPLO SIENELCASOANTERIORlGURA LUEGODEINSERTARLOSREGISTROSCONCLAVES YSETRATARADEAGREGARELREGISTROCONCLAVE SEPRODUCIRÓAUNACOLISIØN YAQUE LACUBETAESTÈLLENA

%JEMPLO

$ADOUNARCHIVOORGANIZADOENDOSCUBETAS. DONDECADAUNADEELLASTIENETRES REGISTROS SEQUIEREALMACENARLASSIGUIENTESCLAVES                Y 3EHAESTABLECIDOUNADENSIDADDEOCUPACIØNMAYORAPARAEXPANSIØNYMENOR APARAREDUCCIØN%SIMPORTANTEREMARCARQUEELPORCENTAJEDEOCUPACIØN PARAEL

&)'52! (ASHDINÉMICO.  EXPANSIØNTOTAL

 #Ò426&%"&95&3/"

435

&)'52! (ASHDINÉMICO.  EXPANSIØNTOTAL A ,UEGODEINSERTAR B ,UEGODEINSERTAR

CASODEREDUCCIØN SECALCULACOMOELCOCIENTEENTREELNÞMERODEREGISTROSOCUPADOSY ELNÞMERODECUBETAS !CONTINUACIØNSEPRESENTALAFUNCIØNHASHQUESEUTILIZA (CLAVE CLAVE-/$.ÞMERODECUBETAS ,ASCLAVESSEALMACENANENELORDENENQUESEDAN,AREPRESENTACIØNlNALSEPUEDE OBSERVARENLAlGURA %NELSIGUIENTEEJEMPLOSEACLARAELCONCEPTODEREDUCCIØNDELNÞMERODECUBETAS ENELMÏTODODINÈMICOPORTRANSFORMACIØNDECLAVES CONEXPANSIONESTOTALES

&)'52! (ASHDINÉMICO. EXPANSIØNTOTALA ,UEGODEINSERTAR B ,UEGODEINSERTAR

436 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

&)'52! (ASHDINÉMICO.  EXPANSIØNTOTAL

%JEMPLO

3UPONGAMOSQUESETIENEELARCHIVOENELESTADOQUEMUESTRALAlGURA3EDESEAN ELIMINARAHORALOSREGISTROSCONCLAVES      Y !L ELIMINAR EL REGISTRO CON CLAVE  LA DENSIDAD DE OCUPACIØN DISMINUYE DE TAL MANERAQUEPERMITEREDUCIRELNÞMERODECUBETAS. ,UEGODELAREDUCCIØNYDELA REASIGNACIØNDEREGISTROS LASCUBETASQUEDANCOMOSEMUESTRAENLAlGURA 5NAVEZELIMINADOSLOSOTROSREGISTROS LADENSIDADDEOCUPACIØNPERMITEREDUCIR NUEVAMENTEELNÞMERODECUBETAS%NLAlGURASEPRESENTASUESTADOLUEGODELA REDUCCIØNDE.YDELAREASIGNACIØNDELOSREGISTROS

%JEMPLO

&)'52! (ASHDINÉMICO.  EXPANSIØNTOTAL

$ADOELARCHIVODELAlGURAYLASESPECIlCACIONESDADASENELEJEMPLO ELIMI NELASSIGUIENTESCLAVES

 #Ò426&%"&95&3/"

437

&)'52! (ASHDINÉMICO.  REDUCCIØN

      Y YVERIlQUEQUEELESQUEMAlNAL LUEGODEREALIZARLASELIMINACIONES QUEDEIGUALALDE LAlGURA

 -ÏTODODELASEXPANSIONESPARCIALES %LMÏTODODELASEXPANSIONESPARCIALESCONSISTEENINCREMENTARENELNÞMERODE CUBETAS HACIENDODEESTAFORMAQUEDOSEXPANSIONESPARCIALESEQUIVALGANAUNATOTAL !SÓ POREJEMPLO SIELNÞMEROINICIALDECUBETASES. YSEHACEUNAEXPANSIØNPARCIAL ELVALORRESULTANTESERÈ.3ISEHACENOTRASEXPANSIONESPARCIALESSETENDRÈ. LUEGO . YASÓSUCESIVAMENTE

!CONTINUACIØNSEPRESENTAUNEJEMPLODEHASHDINÈMICOCONEXPANSIONESPAR CIALES &)'52! (ASHDINÉMICO.  REDUCCIØN

438 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" &)'52! (ASHDINÉMICO.  REDUCCIØN

%JEMPLO

2ETOME EL EJEMPLO  3UPONGAMOS QUE HASTA EL MOMENTO SE HAN ALMACENADO LOS REGISTROSCONCLAVES Y#UANDOSEQUIEREINSERTARELREGISTROCONCLAVE EL NÞMERODEREGISTROSSUPERAELMÈXIMOPERMITIDOYAQUELADENSIDADDEOCUPACIØNSUPE RAPORTALRAZØNSEREALIZAUNAEXPANSIØNPARCIAL,AlGURAMUESTRAELESTADO DELASCUBETASLUEGODEEXPANDIRYREASIGNARLOSREGISTROS /BSERVEQUEENESTECASOELVALORDE.NOFUEMUYADECUADOPARADISTRIBUIRUNI FORMEMENTELOSREGISTROSATRAVÏSDELASCUBETAS%NLACUBETASETIENEUNACOLISIØN MIENTRASQUELACUBETAPERMANECEVACÓA 3UPONGAMOSAHORAQUESEDESEAINCORPORARLOSREGISTROSCONCLAVES       Y !LINSERTARELREGISTROCONCLAVESESUPERALADENSIDADDEOCUPACIØN PORLOQUE SEDEBENEXPANDIRNUEVAMENTELASCUBETASYREASIGNARLOSREGISTROS3EINSERTAACONTI NUACIØNELREGISTROCONCLAVE COMOSEVEENLAlGURA !LINSERTARELREGISTROCONCLAVE OTRAVEZSESUPERAELPORCENTAJEDEOCUPACIØN PERMITIDO3EVUELVENAEXPANDIRLASCUBETASYAREASIGNARLOSREGISTROS%LRESULTADO lNAL LUEGODEINSERTARTODASLASCLAVES SEMUESTRAENLAlGURA

%JEMPLO

$ADOUNARCHIVOORGANIZADOENDOSCUBETAS. DONDECADACUBETATIENETRESREGIS TROS SEQUIEREALMACENARLASSIGUIENTESCLAVES                   Y 0ARAESTEEJEMPLOSEHAESTABLECIDOUNADENSIDADDEOCUPACIØNMAYORAPARA EXPANSIØNYMENORAPARAREDUCCIØN!CONTINUACIØNSEPRESENTALAFUNCIØNHASH QUESEUTILIZA (CLAVE CLAVE-/$.ÞMERODECUBETAS

&)'52! (ASHDINÉMICO.  REDUCCIØN

 #Ò426&%"&95&3/"

439

&)'52! (ASHDINÉMICO.  EXPANSIØNPARCIAL

/BSERVESILAESTRUCTURAQUEOBTIENEESIGUALALAQUESEPRESENTAENLAlGURA !CONTINUACIØNSEPRESENTAUNEJEMPLOPARAILUSTRARLAREDUCCIØNDELNÞMERODECU BETASENELMÏTODODINÈMICOPORTRANSFORMACIØNDECLAVES CONEXPANSIONESPARCIALES

%JEMPLO

3UPONGAMOSQUESETIENEUNARCHIVOENELESTADOQUEMUESTRALAlGURAB%LIMINE LOSREGISTROSCONCLAVES  Y YVERIlQUESILASCUBETASYREGISTROSQUEDANIGUALALAGRÈlCAQUESEMUESTRAENLAlGURA 

%JEMPLO

$ADOELARCHIVODELAlGURAYLASESPECIlCACIONESDADASENELEJEMPLO ELIMI NELASSIGUIENTESCLAVES       Y 6ERIlQUESIELESQUEMAlNALQUEOBTIENEESIGUALALDELAlGURA &INALMENTE ESIMPORTANTESE×ALARQUEELTAMA×ODELASCUBETASSEDEBEESTABLECER DEACUERDOCONELPROBLEMAQUEESTÏINTENTANDORESOLVER%NLOSEJEMPLOSPRESENTADOS SEHANCONSIDERADOINICIALMENTEDOSREGISTROSPORCUBETA3INEMBARGO ESTENÞMEROES PARAQUEELLECTOROBSERVEELFUNCIONAMIENTODELOSMÏTODOSALREALIZAREXPANSIONESY REDUCCIONES3IELNÞMERODEREGISTROSQUEUTILIZÈRAMOSFUERAGRANDE ENTONCESHABRÓA QUEINGRESARGRANCANTIDADDENÞMEROSPARAOBSERVARLAEXPANSIØNDECUBETAS )NDUDABLEMENTE ENLAPRÈCTICASEDEBECONSIDERARUNNÞMEROMUCHOMÈSGRANDEDE REGISTROSPORCUBETA%LNÞMERODEPENDERÈPRINCIPALMENTEDELTAMA×ODECADAREGISTRO DETALFORMAQUEUNACUBETASEPUEDACARGARENLAMEMORIAPRINCIPAL%NAPLICACIONES GRANDES ELNÞMERODEREGISTROSPORCUBETAPODRÓAVARIARDEA3IELNÞMERODE REGISTROSPORCUBETAESPEQUE×OYENFORMACONTINUASEREALIZANINSERCIONESYELIMI NACIONES ENTONCESPODRÓAOCURRIRQUEFRECUENTEMENTESEDEBANREALIZAREXPANSIONESO REDUCCIONES CONLACONSABIDAPÏRDIDADETIEMPOYALTOCOSTO PORLAREASIGNACIØNDELOS REGISTROS%SELUSUARIOQUIENDEBEDElNIRENTONCESELNÞMERODEREGISTROSPORCUBETA DEPENDIENDODELPROBLEMAYDELASACTUALIZACIONESQUESEREALICEN

440 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

&)'52! (ASHDINÉMICOEXPANSIØN PARCIALA ,UEGODEEXPAN DIREINSERTARLOSREGISTROS CONCLAVES Y B ,UEGODEEXPANDIRE INSERTARLOSREGISTROSCON CLAVES Y

 ,ISTASINVERTIDAS ,ASLISTASINVERTIDASTRABAJANSOBREALGUNOSDELOSATRIBUTOSˆCAMPOSˆDELOSREGIS TROS,OSATRIBUTOSPUEDENESTARONOINVERTIDOSESDECIR PUEDENSERONOCAMPOSCLA VE ,OS ATRIBUTOS INVERTIDOS GENERAN LISTAS ORDENADAS DE REGISTROS LO CUAL FACILITA LAS BÞSQUEDASQUESEHAGANENELLAS,OSATRIBUTOSNOINVERTIDOSGENERANELUNIVERSO OSEA PARAENCONTRARUNDETERMINADOELEMENTOˆREGISTROˆ SEDEBERÈREALIZARUNABÞSQUEDA SECUENCIAL

 #Ò426&%"&95&3/"

441

&)'52! (ASHDINÉMICO. EXPANSIØNPARCIAL

,ASLISTASINVERTIDASSONMUYRECOMENDABLESCUANDOSETRABAJASOBRECOMBINACIO NESDECAMPOSCLAVE#UANDOSEREQUIEREUNACOMBINACIØNDEATRIBUTOSENLABÞSQUEDA ESTEMÏTODORESULTAMUYCONVENIENTE YAQUECONUNASECUENCIAØPTIMADEOPERADORES !.$Y/2LABÞSQUEDASEPUEDELLEVARACABODEFORMAElCIENTE ,ADESVENTAJADELMÏTODOESQUEREQUIEREDEUNAESTRUCTURAMUYCOMPLICADAPARA OPERAR"ÈSICAMENTETRABAJASOBREÈRBOLES" CONPRElJO!NALICEMOSACONTINUACIØNUN EJEMPLO

%JEMPLO

3UPONGAMOSQUESETIENEUNARCHIVOENELCUALCADAREGISTROALMACENALASIGUIENTEIN FORMACIØN .OMBRE

0ROFESIØN

3ETIENENLOSDATOSDESEISPERSONAS *UAN $ANIEL *OSÏ

&)'52! (ASHDINÉMICO. REDUCCIØN

MATEMÈTICO FÓSICO MATEMÈTICO

  

%DAD

442 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" &)'52! (ASHDINÉMICO.  REDUCCIØN

0ASCUAL -IGUEL &ELIPE

INGENIERO INGENIERO ABOGADO

  

#ONSIDERANDOQUELOSATRIBUTOSPROFESIØNYEDADESTÈNINVERTIDOS ACONTINUACIØNSE PRESENTANALGUNASOPERACIONESDEBÞSQUEDACONSUSCORRESPONDIENTESRESULTADOS PARA QUEELLECTOROBSERVEELFUNCIONAMIENTODELMÏTODO A ,ISTADEPERSONASPORPROFESIØN MATEMÈTICOS FÓSICOS INGENIEROS ABOGADOS

[*UAN *OSÏ] [$ANIEL] [0ASCUAL -IGUEL] [&ELIPE]

B ,ISTADETODASLASPERSONASCONPROFESIØNMATEMÈTICOOFÓSICO YCONMÈSDEA×OS DEEDAD PROFESIØNMATEMÈTICO /2PROFESIØNFÓSICO !.$EDAD ,ALISTAFORMADASEGÞNELATRIBUTOPROFESIØNES [*UAN *OSÏ $ANIEL] 3OBREESTALISTASEAPLICARÈLASEGUNDACONDICIØNPLANTEADAENLABÞSQUEDA DELO QUERESULTA [*UAN $ANIEL] C ,ISTADETODOSLOSINGENIEROSMENORESDEA×OSYMAYORESDE PROFESIØNINGENIERO !.$EDAD !.$EDAD ,ALISTAFORMADASEGÞNELATRIBUTOPROFESIØNES [0ASCUAL -IGUEL]

 #Ò426&%"&95&3/"

443

!PARTIRDEESTALISTA SEBUSCARÈNLOSREGISTROSQUECUMPLANCONLASCONDICIONES IMPUESTASSOBREELATRIBUTOEDAD,ALISTARESULTANTESERÈ [-IGUEL] #ONSIDERANDOQUESOLAMENTEELATRIBUTOPROFESIØNESTÈINVERTIDO SEPRESENTANALGU NASOPERACIONESDEBÞSQUEDACONSUSCORRESPONDIENTESRESULTADOS A ,ISTADETODASLASPERSONASCONPROFESIØNMATEMÈTICOOFÓSICO YCONMÈSDEA×OS DEEDAD

PROFESIØN  MATEMÈTICO /2 PROFESIØN  FÓSICO Y BÞSQUEDA SECUENCIAL EN LA LISTADELOSREGISTROSMARCADOSPARALOCALIZARAQUELLOSCONEDAD

[*UAN *OSÏ $ANIEL]YSOBREESTALISTAUNABÞSQUEDASECUENCIALPARAENCONTRARALOS INDIVIDUOSMAYORESDEA×OS

B ,ISTADETODOSLOSINGENIEROSMENORESDEA×OSYMAYORESDE

PROFESIØNINGENIERO YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOS PARALOCALIZARAQUELLOSCONEDADYEDAD

[0ASCUAL -IGUEL]YBÞSQUEDASECUENCIALSOBREESTALISTAPARAENCONTRARALOSINDI VIDUOSMENORESDEYMAYORESDE

C ,ISTADETODOSLOSABOGADOSMAYORESDEA×OS

%JEMPLO

PROFESIØNABOGADO YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOS PARALOCALIZARAAQUELLOSCONEDAD

[&ELIPE]YBÞSQUEDASECUENCIALSOBREESTALISTAPARAENCONTRARALOSINDIVIDUOSMA YORESDEA×OS

%NESTECASOLASOLUCIØNESLALISTAVACÓA.OHAYNINGÞNREGISTROQUETENGALOSATRI BUTOSPEDIDOS

,A$IRECCIØN'ENERALDE2ECLUSORIOSHADECIDIDOCREARUNABASEDEDATOSCONINFORMA CIØNSOBRESUSPRESOS%LESQUEMAQUESECONSIDERAESELSIGUIENTE NOMBRE?REO

CLAVE?REO

EDAD

,AESCOLARIDADESTÈCODIlCADACOMO  !NALFABETO  0RIMARIA  3ECUNDARIA

ESCOLARIDAD

COD?DELITO

NACIONALIDAD

444 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"  0REPARATORIA  5NIVERSIDAD  0OSGRADO ,OSCØDIGOSDEDELITOCOD?DELITO ESTÈNCODIlCADOSCOMO    

$ELITOCONTRALASALUD 2OBOCONARMADEFUEGO !COSOSEXUAL /TROS

#ONSIDERANDOQUELOSATRIBUTOSESCOLARIDADYCOD?DELITOESTÈNINVERTIDOS SEPRE SENTANALGUNASOPERACIONESDEBÞSQUEDACONSUSCORRESPONDIENTESRESULTADOS A ,OSRECLUSOSANALFABETOSCONMENOSDEA×OSDEEDAD

ESCOLARIDAD YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOSPARA LOCALIZARAAQUELLOSCONEDAD

B ,OSRECLUSOSCONPOSGRADO CUYAEDADESTÈCOMPRENDIDAENTREYA×OS YQUE COMETIERONELDELITOCALIlCADOCOMOACOSOSEXUAL

ESCOLARIDAD !.$COD?DELITO YBÞSQUEDASECUENCIALENLALISTADELOS REGISTROSMARCADOSPARALOCALIZARAAQUELLOSCUYAEDADESTÈCOMPRENDIDAENTREY A×OSDEEDAD

C ,OSREOSESTADOUNIDENSES

BÞSQUEDASECUENCIALENTODOELARCHIVOPARALOCALIZARALOSREOSDENACIONALIDAD ESTADOUNIDENSE

D ,OSREOSQUECOMETIERONROBOCONARMADEFUEGO MENORESDEA×OS OLOSQUE COMETIERONDELITOCONTRALASALUD MENORESDEA×OS

COD?DELITO YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOSPARA LOCALIZAREDAD /2COD?DELITO YBÞSQUEDASECUENCIALENLALISTADELOS REGISTROSMARCADOSPARALOCALIZAREDAD 

3EHAMENCIONADOQUELASLISTASGENERADASPORATRIBUTOSINVERTIDOSESTÈNORDENADAS PORLOTANTO ELTIEMPODEPROCESAMIENTOESTÈDETERMINADOPORLALISTADEMAYORTAMA×O 5NASECUENCIAADECUADADEOPERADORES!.$Y/2PUEDEAYUDARADISMINUIRELTIEMPO DEPROCESAMIENTO!NALICEMOSELSIGUIENTEEJEMPLO

%JEMPLO

3UPONGAMOSQUESETIENENLASLISTAS, ,Y,DE YELEMENTOS RESPECTI VAMENTE3ISENECESITARAUNIRLASTRESLISTAS ELORDENENELCUALSEHICIERALAUNIØNSERÓA DETERMINANTEENCUANTOALNÞMEROTOTALDEELEMENTOSCONLOSCUALESSETRABAJA

 #Ò426&%"&95&3/"

445

 ,∪, ∪,  ∪,

     ,∪, ∪,  ∪,

     ,∪, ∪,  ∪,

    %SFÈCILOBSERVARQUELAMEJORSECUENCIAESLATERCERAYELRESULTADOESYQUE LAPEORSECUENCIAESLASEGUNDAYELRESULTADOES

%JEMPLO

3EAN! " #Y$LISTASDE  YELEMENTOS RESPECTIVAMENTE3ISENECESI TARASUUNIØN ALGUNASDELASDISTINTASSECUENCIASQUESETENDRÓANSON 



!∪" ∪# ∪$  ∪# ∪$

   ∪$

  







"∪# ∪! ∪$  ∪! ∪"

   ∪"

  







!∪$ ∪" ∪#  ∪" ∪#

   ∪#

  







!∪$ ∪# ∪"   ∪# ∪"

   ∪"

 



#ON LOS EJEMPLOS QUEDA DEMOSTRADO CØMO INmUYE EL TAMA×O DE LAS LISTAS EN EL NÞMEROTOTALDEELEMENTOSAPROCESAR%SPOSIBLECONCLUIR ENTONCES QUERESULTAMUCHO MÈSElCIENTEDEJARLASLISTASDEMAYORTAMA×OPARAUNIRLASALlNAL

 -ULTILISTAS %LMÏTODODEBÞSQUEDAMULTILISTASPERMITEACCEDERALAINFORMACIØNQUESEENCUENTRA ORDENADAUTILIZANDOCAMPOSCLAVE!UNREGISTROSEPUEDELLEGARPORDIFERENTESCAMINOS #ADACAMINOSEESTABLECEENFUNCIØNDELCAMPOCLAVESOBREELCUALSEHAGALABÞSQUEDA

446 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" ,AFORMAMÈSElCIENTEDEREPRESENTARMULTILISTASESUTILIZANDOLISTAS!CONTINUACIØNSE PRESENTAUNEJEMPLODEESTEMÏTODO

%JEMPLO

3UPONGAMOSQUESETIENEUNARCHIVOENELCUALCADAREGISTROALMACENALASIGUIENTEIN FORMACIØN .OMBRE *UAN $ANIEL *OSÏ 0ASCUAL -IGUEL &ELIPE

0ROFESIØN MATEMÈTICO FÓSICO MATEMÈTICO INGENIERO INGENIERO ABOGADO

#ATEGORÓA

     

,AlGURAREPRESENTALASMULTILISTASCORRESPONDIENTESALOSDATOSDADOS%NESTE CASO LAINFORMACIØNDECADAINDIVIDUOPUEDESERACCESADAPORMEDIODESUPROFESIØNY DESUCATEGORÓA QUESONJUSTAMENTELOSATRIBUTOSQUEPERMITENREALIZARBÞSQUEDADIRECTA ENELARCHIVO#OMOSEPUEDEOBSERVARENLASIGUIENTElGURA SETIENEUNALISTAPORPRO FESIØNYOTRAPORCATEGORÓA %NGENERAL LASMULTILISTASSONRECOMENDABLESCUANDOLABÞSQUEDASEHACESOBRE UNSOLOATRIBUTO%NCASODENECESITARSEUNACOMBINACIØNDEATRIBUTOSESPREFERIBLEUSAR LISTASINVERTIDAS

 #Ò426&%"&95&3/"

&)'52! -ULTILISTAS

447

448 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%"

▼ %*%2#)#)/3 "ÞSQUEDAINTERNA Ê £° %SCRIBA UN PROGRAMA PARA BÞSQUEDA SECUENCIAL EN UN ARREGLO DESORDENADO QUE OBTENGATODASLASOCURRENCIASDEUNDATODADO Ê Ó° $ADOUNARREGLOQUECONTIENELOSNOMBRESDE.ALUMNOSORDENADOSALFABÏTICAMEN TE ESCRIBAUNPROGRAMAQUEENCUENTREUNNOMBREDADOENELARREGLO3ILOENCUENTRA DEBEDARCOMORESULTADOLAPOSICIØNENLAQUELOENCONTRØ%NCASOCONTRARIO DEBE ENVIARUNMENSAJEADECUADO Ê Î° $ADOUNARREGLODE.COMPONENTESQUECONTIENENLASIGUIENTEINFORMACIØN ◗ ◗ ◗

.OMBREDELALUMNO 0ROMEDIO .ÞMERODEMATERIASAPROBADAS

%SCRIBAUNPROGRAMAQUELEAELNOMBREDEUNALUMNOYOBTENGACOMORESULTADOEL PROMEDIOYELNÞMERODEMATERIASAPROBADASPORDICHOALUMNO3IELNOMBREDADO NOESTÈENELARREGLO ENVÓEUNMENSAJEADECUADO

A #ONSIDEREQUEELARREGLOESTÈDESORDENADO B #ONSIDEREQUEELARREGLOESTÈORDENADO Ê {° %SCRIBAUNPROGRAMAPARABÞSQUEDASECUENCIALENARREGLOSORDENADOSDEMANERA DESCENDENTE Ê x° %SCRIBAUNPROGRAMAPARABÞSQUEDASECUENCIALENLISTASSIMPLEMENTELIGADASQUESE ENCUENTRANDESORDENADAS3IELELEMENTOSEENCUENTRAENLALISTA INDIQUEELNÞMERO DENODOENELCUALSEENCONTRØ%NCASOCONTRARIO EMITAUNMENSAJEADECUADO Ê È° %SCRIBAUNPROGRAMAPARABÞSQUEDASECUENCIALENLISTASSIMPLEMENTELIGADAS ORDE NADASDEMANERADESCENDENTE Ê Ç° %SCRIBAUNPROGRAMADEBÞSQUEDABINARIAENARREGLOSORDENADOS A $EMANERAASCENDENTE B $EMANERADESCENDENTE Ê n° 2ESUELVAELINCISOBDELPROBLEMAUTILIZANDOELALGORITMODEBÞSQUEDABINARIA Ê ™° $ElNAUNACLASE!RREGLO SEGÞNLOVISTOENELCAPÓTULO%NLACLASEDEBEINCLUIRPOR LOMENOSDOSMÏTODOSˆDELOSESTUDIADOSENESTECAPÓTULOˆPARABUSCARUNELE MENTOALMACENADOENELARREGLO

&+&3$*$*04

449

£ä°$ADOQUESEREQUIEREALMACENARLOSREGISTROSCONCLAVE              Y

ENUNARREGLODEELEMENTOS DElNAUNAFUNCIØNHASHQUEDISTRIBUYALOSREGISTROS ENELARREGLO3IHUBIERACOLISIONES RESUÏLVALASAPLICANDOELMÏTODODEREASIGNA CIØNLINEAL

££°$EUNGRUPODE.ALUMNOSSETIENENLOSSIGUIENTESDATOS ◗ ◗ ◗

-ATRÓCULAVALORENTEROCOMPRENDIDOENTREY .OMBRECADENADECARACTERES $IRECCIØNCADENADECARACTERES %LCAMPOCLAVEESMATRÓCULA,OS.REGISTROSHANSIDOALMACENADOSENUNARRE GLO APLICANDOLASIGUIENTEFUNCIØNHASH (CLAVE DÓGITOS?CENTRALESCLAVE  ,ASCOLISIONESHANSIDOTRATADASCONELMÏTODODEDOBLEDIRECCIØNHASH %SCRIBA UN SUBPROGRAMA QUE LEA LA MATRÓCULA DE UN ALUMNO Y REGRESE COMO RESULTADO SU NOMBRE Y DIRECCIØN %N CASO DE NO ENCONTRARLO EMITA UN MENSAJE ADECUADO

£Ó°3EQUIEREALMACENARENUNARREGLOLOSSIGUIENTESDATOSDE.PERSONAS ◗ ◗ ◗ ◗

#LAVEDECONTRIBUYENTEALFANUMÏRICO DELONGITUD .OMBRECADENADECARACTERES $IRECCIØNCADENADECARACTERES 3ALDOREAL $ElNAUNAFUNCIØNHASHQUEPERMITAALMACENARENUNARREGLOLOSDATOSMEN CIONADOS5TILICEELMÏTODODEENCADENAMIENTOPARARESOLVERLASCOLISIONES

£Î°0RESENTEYEXPLIQUEUNAFUNCIØNHASHQUEPERMITAALMACENARENUNARREGLOLOSELEMEN TOSDELATABLAPERIØDICADELOSELEMENTOSDEQUÓMICAYSUSPROPIEDADES DEMANERA UNIFORME,ACLAVEESTÈDADAPORELNOMBREDELOSELEMENTOS £{°5TILICELAFUNCIØNDElNIDAENELEJERCICIOANTERIORPARAINSERTARYELIMINARLOSELE MENTOSQUESEPRESENTANACONTINUACIØN )NSERTARSODIO ORO OSMIO LITIO BORO COBRE PLATA RADIO %LIMINARORO OSMIO BORO COBRE PLATA £x°$ADOSLOSSIGNOSDELZODIACOCAPRICORNIO ACUARIO PISCIS ARIES TAURO GÏMINIS CÈNCER LEO VIRGO LIBRA ESCORPIØN SAGITARIO 

450 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" A %SCRIBAUNSUBPROGRAMAPARAALMACENARLOSENUNAESTRUCTURADETRIES B %SCRIBAUNSUBPROGRAMADEBÞSQUEDAPARALOSSIGNOS ALMACENADOSSEGÞNLOESPE CIlCADOENELINCISOANTERIOR

"ÞSQUEDAEXTERNA £È°3EHANALMACENADOENUNARCHIVOSECUENCIALLOSDATOSDELOSEMPLEADOSDEUNSU PERMERCADO ◗ ◗ ◗ ◗

.OMBRE 2EGISTRO&EDERALDE#ONTRIBUYENTES &ECHADEINGRESO 3UELDO %SCRIBAUNPROGRAMAPARABUSCARSECUENCIALMENTELOSDATOSDEUNEMPLEADO DADOSUNOMBRECOMOENTRADA

A #ONSIDEREQUEELARCHIVOESTÈDESORDENADO B #ONSIDEREQUEELARCHIVOESTÈORDENADO £Ç°%SCRIBAUNPROGRAMADEBÞSQUEDABINARIAENARCHIVOSSECUENCIALESORDENADOS £n°$ElNA UNA FUNCIØN HASH QUE PERMITA ALMACENAR Y POSTERIORMENTE RECUPERAR LOS ELEMENTOSDELATABLAPERIØDICADELOSELEMENTOSDEQUÓMICAENUNARCHIVO,ACLAVE ESTÈDADAPORELNOMBREDELOSELEMENTOS2ESUELVALASCOLISIONESUTILIZANDOUNÈREA INDEPENDIENTEPARAALMACENARLOSELEMENTOSCOLISIONADOS £™°3EDESEACREARUNARCHIVOCONINFORMACIØNSOBREPINOSMEXICANOS#ADAREGISTRO CONTIENELOSSIGUIENTESDATOS ◗ ◗ ◗

.OMBREDELPINO 4IPODEHOJAS 4IPODECONO %LCAMPOCLAVEES.OMBREDELPINO$ElNAUNAFUNCIØNHASHPARAALMACENAR YPOSTERIORMENTEBUSCAR LOSSIGUIENTESPINOS#EMBROIDES -ONOPHYLLA .ELSONII &LEXILIS ,UMHOLTZII ,EIOPHYLLA $OUGLASIANA 4EOCOTE (ERRERAI -ONTEZUMAE #OOPERI #ONTORTA 0ONDAROSA !RIZONICA #ARIBAEA 0ATULA 2ADIATA -URICATA 2EMORATA 2ESUELVALASCOLISIONESUTILIZANDOUNÈREACOMÞNPARAALMACENARLOSELEMENTOS COLISIONADOS

Óä°5TILICELAFUNCIØNDElNIDAENELEJERCICIOPARAINSERTARYELIMINARLOSELEMENTOS QUESEINDICANACONTINUACIØN

&+&3$*$*04

451

)NSERTARSODIO ORO OSMIO LITIO BORO COBRE PLATA RADIO %LIMINARORO OSMIO BORO COBRE PLATA %LNÞMERODECUBETASESDOS. YCADACUBETATIENEDOSREGISTROS,ADENSI DADDEOCUPACIØNPERMITIDAESENCASODESUPERARESTEPORCENTAJESEAPLICARÈN EXPANSIONESTOTALES A $IBUJEUNESQUEMADELAORGANIZACIØNDESPUÏSDEINSERTARLOSELEMENTOSOSMIOY PLATAYLUEGODEELIMINARORO BOROYPLATA B $IGAQUÏCLAVESORIGINARONQUEELNÞMERODECUBETASSEEXPANDIERAOREDUJERA Ó£°2ESUELVAELPROBLEMAANTERIOR PEROAHORAAPLICANDOEXPANSIONESPARCIALES ENCASO DETENERUNPORCENTAJEDEOCUPACIØNMAYORALPERMITIDO ÓÓ°3EA.ELNÞMERODECUBETAS#ADACUBETATIENEDOSREGISTROSYSEESTABLECEUNA DENSIDADDEOCUPACIØNPERMITIDADE5NAVEZSUPERADAESTADENSIDAD SEAPLI CARÈNEXPANSIONESPARCIALES (CLAVE CLAVE-/$. #LAVESAINSERTAR           A $IBUJEUNESQUEMADELAORGANIZACIØNDESPUÏSDEINSERTARLOSELEMENTOS    B $IGAQUÏCLAVESORIGINARONQUEELNÞMERODECUBETASSEEXPANDIERA Óΰ#ONSIDEREELARCHIVODELPROBLEMAANTERIOR%LIMINELOSREGISTROSCONCLAVES       A $IBUJEUNESQUEMADELAORGANIZACIØNDESPUÏSDEELIMINARLOSELEMENTOS   B $IGAQUÏCLAVESORIGINARONQUEELNÞMERODECUBETASSEREDUJERA Ó{°3EA.ELNÞMERODECUBETAS#ADACUBETATIENEDOSREGISTROS YSEESTABLECEUNA DENSIDADDEOCUPACIØNPERMITIDADE$ElNAUNAFUNCIØNHASHPARA )NSERTARLASCLAVES            %LIMINARLASCLAVES     A !PLIQUEEXPANSIONESTOTALES B !PLIQUEEXPANSIONESPARCIALES Óx°$ETERMINECUÈLESELNÞMERODECUBETASNECESARIOPARAALMACENARENUNARCHIVO NOMBRE APELLIDO EDAD ESCOLARIDADYDELITOCOMETIDOPORREOSDEL2ECLUSORIO.OR TE%LRECLUSORIOTIENEPRESOS .OTA5TILICEELMÏTODODELASEXPANSIONESTOTALES#ADACUBETATIENEREGISTROS !LTENERDELLENADOSEEXPANDE

452 >«‰ÌՏœÊ™Ê Ê Ê .c50%04%&#Ò426&%" ÓÈ°$ETERMINECUÈLESELNÞMERODECUBETASNECESARIOPARAALMACENARENUNARCHIVOLOS REGISTROSDELOSDECLIENTESQUEMANEJAUNAEMPRESADETARJETASDECRÏDITO .OTA5TILICEELMÏTODODELASEXPANSIONESPARCIALES#ADACUBETATIENEREGIS TROS!LTENERDELLENADOSEEXPANDE ÓÇ°3ETIENEUNARCHIVOCONREGISTROSQUEALMACENANINFORMACIØNSOBRECLIENTESDEDIS TINTASSUCURSALESBANCARIAS,OSDATOSQUESEMANEJANPORCADACLIENTESON ◗ ◗ ◗ ◗ ◗ ◗

#LAVEDELASUCURSAL .OMBREDELTITULAR .ÞMERODECUENTA 3ALDO .ÞMERODEPRÏSTAMO )MPORTE 3ETIENEINVERSIØNSOBREELCAMPOCLAVESUCURSAL

A /BTENGALOSREGISTROSDELOSCLIENTESQUETENGANUNPRÏSTAMOMAYORAENLA SUCURSAL,IMA B /BTENGALOSREGISTROSDELOSCLIENTESQUETENGANUNPRÏSTAMOMAYORAENLA SUCURSAL,IMAYUNSALDOENSUCUENTAMAYORAENLASUCURSAL2ÓO C /BTENGALOSREGISTROSDELOSCLIENTESDELASUCURSAL2ÓOQUETENGANENSUCUENTAUN SALDOMAYORA OLOSREGISTROSDELOSCLIENTESDELASUCURSAL1UITOQUETENGAN UNPRÏSTAMOMENORAYUNSALDOENSUCUENTAMAYORA D /BTENGALOSREGISTROSDELOSCLIENTESDELASUCURSAL#ØRDOBAQUETENGANUNSALDO MAYORAOUNPRÏSTAMOMENORA E 3ISEQUIEREDETERMINAR SUCURSALh,IMAv /2SUCURSALh1UITOv /2 SUCURSALh2ÓOv /2SUCURSALh#ØRDOBAv YLASCORRESPONDIENTESLISTASSONDE  YELEMENTOS RESPECTIVAMENTE zCUÈLSERÈLASECUENCIAØPTIMAPARAALCANZARUNCOSTOMÓNIMO Ón°%NUNARCHIVOSEHAALMACENADOLATABLAPERIØDICADELOSELEMENTOSQUÓMICOS JUNTO CONSUSPROPIEDADES ◗ ◗ ◗ ◗ ◗ ◗ ◗ ◗ ◗

.OMBRE .ÞMEROATØMICO 0ESOATØMICO 0UNTODEEBULLICIØN 0UNTODEFUSIØN $ENSIDAD

%LECTRONEGATIVIDAD #ONDUCTANCIAELÏCTRICA #ONDUCTANCIATÏRMICA

.! 0! 0% 0& $%. %/ #% #4

&+&3$*$*04

453

3ETIENEINVERSIØNSOBRELOSCAMPOSPUNTODEEBULLICIØNYPUNTODEFUSIØN A /BTENGALOSREGISTROSDELOSELEMENTOSALCALINOTÏRREOS²STOSSEDETERMINANPORLAS SIGUIENTESCARACTERÓSTICAS%/$%.YSU0&ESTÈCOMPRENDIDO ENTRELOSVALORESY B /BTENGALOSREGISTROSDELOSELEMENTOSDELGRUPO"²STOSSEDETERMINANPORLAS SIGUIENTESCARACTERÓSTICAS%/n OSU0%ESTÈCOMPRENDIDOENTRELOSVALORES Y ә°%NUNARCHIVOSEHANALMACENADOLOSDATOSDE.PROFESIONALES ◗ ◗ ◗ ◗

#LAVEDECONTRIBUYENTE .OMBRE 0ROFESIØN .ACIONALIDAD 3ETIENEINVERSIØNSOBRELOSCAMPOSPROFESIØNYNACIONALIDAD

A /BTENGALOSREGISTROSDETODOSLOSINGENIEROSMEXICANOS B /BTENGA LOS REGISTROS DE TODOS LOS INGENIEROS MEXICANOS DE MÈS DE  A×OS DE EDAD C /BTENGALOSREGISTROSDETODOSLOSINGENIEROSMEXICANOSDEMÈSDEA×OSDEEDAD OLOSPINTORESURUGUAYOS D /BTENGALOSREGISTROSDETODOSLOSABOGADOSPERUANOSOLOSMÏDICOSCHILENOSDE MENOSDEA×OS E 3ISEQUIEREDETERMINAR PROFESIØN  INGENIERO /2 PROFESIØN  PINTOR /2 PROFESIØN  MÏDICO Y LAS LISTASSONDE YCLAVES RESPECTIVAMENTE zCUÈLSERÈLASECUENCIAØPTIMA PARAALCANZARUNCOSTOMÓNIMO

")",)/'2!&·! ,ABIBLIOGRAFÓAQUESEPRESENTAACONTINUACIØNESFRAGMENTARIA ENELSENTIDODEQUESØLO SEINCLUYENOBRASQUEHANSERVIDODEBASEPARAESTAEXPOSICIØNOQUEESTÈNDIRECTAMENTE VINCULADASCONELLA !CKERMAN !&1UADRATIC3EARCHFOR(ASH4ABLESOF3IZE0#OMM!#-  !DELSON 6ELSKII ' Y ,ANDIS % !N !LGORITHM FOR THE /RGANIZATION OF )NFORMATION $OKL!KAD.AUK3332 -ATHEMAT   !HO ! (OPCROFT *Y5LLMAN *4HE$ESIGNAND!NALYSISOF#OMPUTER!LGORITHMS !DDISON 7ESLEY 2EADING -ASS  ˆˆˆˆ $ATA 3TRUCTURES AND !LGORITMS !DDISON 7ESLEY 0UBLISHING #OMPANY  !LBIZURI -%STRUCTURASDEDATOS%DITORIAL,IMUSA  !MBLE /Y+NUTH $/RDERED(ASH4ABLES#OMPUTER*  !NDERSON -2Y!NDERSON -'#OMMENTSON0ERFECT(ASHING&UNCTIONS!3INGLE 0ROBE2ETRIEVING-ETHODFOR3TATIC3ETS#OMM!#-  !UGENSTEIN -Y4ENENBAUM !!,ESSONIN2ECURSIONAND3TRUCTURED0ROGRAMMING 3)'#3%"ULLETIN   "AASE 3#OMPUTER!LGORITHMS)NTRODUCTIONTO$ESIGNAND!NALYSIS!DDISON 7ESLEY 2EADING -ASS  "AER *Y3CHWAB "!#OMPARISONOF4REE"ALANCING!LGORITHMS#OMM!#-  "ARRON $ 2ECURSIVE 4ECHNIQUES IN 0ROGRAMMING !MERICAN %LSEVIER .UEVA9ORK  "ATAGELJ 64HE1UADRATICE(ASH-ETHOD7HENTHE4ABLE3IZEISNOTA0RIME.UMBER #OMM!#-  "AYER 2"INARY" TREESFOR6IRTUAL-EMORY0ROC!#-3)'&)$%47ORKSHOP !#- .UEVA9ORK ˆˆˆˆ 3YMMETRIC "INARY " TREES $ATA 3TRUCTURE AND -AINTENANCE !LGORITHMS !CTA)NFORMÈTICA   ˆˆˆˆ Y-ETZGER */N%NCIPHERMENTOF3EARCH4REESAND2ANDOM!CCESS&ILES !#-4RANS$ATABASE3YST  ˆˆˆˆ Y5NTERAUER +0RElX" TREES!#-4RANS$ATABASE3YST  ˆˆˆˆ Y3CHKOLNICK .#ONCURRENCYOFOPERATIONSON" TREE!CTA)NF  

456

ˆLˆœ}À>v‰> "ELL *4HE1UADRATIC1UOTIENT-ETHOD!(ASH#ODE%LIMINATING3ECONDARY#LUSTER ING#OMM!#-  ˆˆˆˆ Y+AMAN #4HE,INEAR1UOTIENT(ASH#ODE#OMM!#-  "ELLMAN 2$YNAMIC0ROGRAMMING0RINCETON5NIVERSITY0RESS 0RINCETON .*  "ENTLEY * -ULTIDIMENSIONAL "INARY 3EARCH 4REES 5SED FOR !SSOCIATIVE 3EARCHING #OMM!#-  ˆˆˆˆ Y&RIEDMAN *!LGORITHMSAND$ATA3TRUCTUREFOR2ANGE3EARCHING!#- #OMPUTING3URVEYS  "ERLINER ( 4HE " TREE 3EARCH !LGORITHM ! "EST &IRST 0ROOF 0ROCEDURE 4ECH 2EP #-5 #!   #OMPUTER 3CIENCE $EPT #ARNEGIE -ELLON 5NIVERSITY 0ITTS BURGH  "ERZTISS !$ATA3TRUCTURES 4HEORYANDPRACTICE AED !CADEMIC0RESS .UEVA9ORK  "IRD 2)MPROVING0ROGRAMSBYTHE)NTRODUCTIONOF2ECURSION#OMM!#-  ˆˆˆˆ .OTESON2ECURSION%LIMINATION#OMM!#-  "OOTHROYD *!LGORITHM3HELLSORT #OMM!#-  ˆˆˆˆ 3ORTOFA3ECTIONOFTHE%LEMENTSOFAN!RRAYBY$ETERMININGTHE2ANKOF %ACH%LEMENT!LGORITHM#OMP*  "RILLINGER 0Y#OHEN $)NTRODUCTIONTO$ATA3TRUCTURESAND.ON NUMERIC#OMPUTA TION0RENTICE (ALL %NGLEWOOD#LIFFS .*  "ROWN -!3TORAGE3CHEMEFOR(EIGHT "ALANCED4REES)NF0ROC,ETT   "RUNO *Y#OFFMAN %.EARLY/PTIMAL"INARY3EARCH4REES0ROC)&)0#ONGRESS .ORTH (OLLAND !MSTERDAM  "URKHARD 7(ASHINGAND4RIE!LGORITHMSFOR0ARTIAL-ATCH2ETRIEVAL!#-4RANS 6OL  #ARTER *Y7EGMAN -5NIVERSAL#LASSESOF(ASH&UNCTIONS)"-2ESEARCH2EPORT 2#  4HOMAS * 7ATSON 2ESEARCH #ENTER 9ORKTOWN (EIGHTS .UEVA9ORK  ˆˆˆˆ 5NIVERSAL#LASSESOF(ASH&UNCTIONS0ROC.INTH!NNUAL!#-39-0ON 4HEORYOF#OMPUTING  #LAMPETT ( 2ANDOMIZED "INARY 3EARCHING 7ITH 4REE 3TRUCTURES #OMM !#-   #OMER $4HE5BIQUITOUS" TREE!#-#OMPUTING3URVEYS  ˆˆˆˆ !.OTEON-EDIAN3PLIT4REES!#-4RANS0ROG,ANGAND3YS  $IJKSTRA %7.OTESON3TRUCTURED0ROGRAMMING3TRUCTURED0ROGRAMMING!CADEMIC 0RESS .UEVA9ORK  $)MPERIO - $ATA 3TRUCTURES AND THEIR 2EPRESENTATION IN 3TORAGE !NNUAL 2EVIEW !UTOMATIC0ROGRAMMING  0ERGAMON0RESS %LMSFORD .UEVA9ORK  $RISCOLL *Y,IEN 9!3ELECTIVE4RASVERSAL!LGORITHMFOR"INARY3EARCH4REES#OMM !#-  %LSON -$ATA3TRUCTURES3CIENCE2ESEARCH!SSOCIATES 0ALO!LTO #A  &INKEL 2Y"ENTLEY *1UAD4REES!$ATE3TRUCTUREFOR2ETRIEVALON#OMPOSITE+EYS !CTA)NFORMÈTICA   &LORES )#OMPUTER3ORTING0RENTICE (ALL %NGLEWOOD#LIFFS .*  ˆˆˆˆ Y -ADPIS ' !VERAGE "INARY 3EARCH ,ENGHTS FOR $ENSE /RDERED ,ISTS #OMM!#-  &LOYD 2!LGORITHM4REESORT #OMM!#- 

#*#-*0(3"'Ê"

457

&LOYD 2!LGORITHM4REESORT #OMM!#-  ˆˆˆˆ !LGORITHM4REESORT #OMM!#-  &OSTER # )NFORMATION 3TORAGE AND 2ETRIEVAL 5SING!6,4REES 0ROC!#- TH .A TIONAL#ONF !#- .UEVA9ORK  ˆˆˆˆ !'ENERALIZATIONOF!6,4REES#OMM!#-  &RAZER 7Y-C+ELLAR !3AMPLESORT!3AMPLING!PPROACHTO-INIMAL3TORAGE4REE 3ORTING*!#-  'AREY -/PTIMAL"INARY3EARCH4REES7ITH2ESTRICTED-AXIMAL$EPTH3)!-*#OMP   'ARSIA ! Y7ACHS - ! .EW!LGORITHM FOR -INIMUM #OST "INARY4REES 3)!- * #OMP  'HOSH 3 Y ,UM 6 !NALYSIS OF #OLLISIONS WHEN (ASHING BY $IVISION )NF 3YST   'ILSTAD 20OLYPHASE-ERGE3ORTING!N!DVANCED4ECHNIQUE0ROC!&)03%ASTERN *T#OMP#ONF   'ONNET'Y2OGERS ,4HE)NTERPOLATION 3EQUENTIAL3EARCH!LGORITHM)NF0ROC,ETT   ˆˆˆˆ Y-UNRO *%FlCIENT/RDERINGOF(ASH4ABLES3)!-*#OMP  'OTLIEB # Y'OTLIEB , $ATA4YPESAND$ATA3TRUCTURES 0RENTICE (ALL %NGLEWOOD #LIFFS .UEVA9ORK  'REENE $Y+NUTH $-ATHEMATICSFORTHE!NALYSISOF!LGORITHMS"IRKHAUSER "OS TON -ASS  'RIMALDI2ALPH-ATEMÈTICAS$ISCRETASY#OMBINATORIO!DDISON 7ESLEY)BEROAMERI CANA  'UDES %Y4SUR 3%XPERIMENTSWITH" TREE2EORGANIZATION!#-3)'-/$3YMPO SIUMON-ANAGEMENTOF$ATA  'UIBAS ,-C#REIGHT%0LASS -Y2OBERTS *!.EW2EPRESENTATIONFOR,INEAR,ISTS 0ROCTH!#-3YMP4HEORYOF#OMP .UEVA9ORK  (AREL $!LGORITHMICS!DDISON 7ESLEY  (ARRISON -$ATA3TRUCTURESAND0ROGRAMMING3COTT &ORESMAN 'LENVILLE )LL  (ELD 'Y3TONEBRAKER -" TREES2E EXAMINED#OMM!#-  (IRSCHBERG $!N)NSERTION4ECHNIQUEFOR/NE SIDED(EIGHT "ALANCED4REES#OMM !#-  (OARE #0ARTITION !LGORITHM1UICKSORT !LGORITHM &IND !LGORITHM#OMM !#-  ˆˆˆˆ 1UICKSORT#OMP*  (OARE #!2.OTESON$ATA3TRUCTURING3TRUCTURED0ROGRAMMING!CADEMIC0RESS .UEVA9ORK  ˆˆˆˆ Y$AHL /3TRUCTURED0ROGRAMMING!CADEMIC0RESS  (OPGOOD & Y $AVENPORT * 4HE 1UADRATIC (ASH -ETHOD7HERE THE 4ABLE 3IZE IS A 0OWEROF#OMP*  (OROWITZ % Y 3AHNI 3 !LGORITHMS $ESIGN AND ANALYSIS #OMPUTER 3CIENCE 0RESS -$  ˆˆˆˆ 3 &UNDAMENTALS OF #OMPUTER !LGORITHMS #OMPUTER 3CIENCE 0RESS )NC  (U 4Y4UCKER !/PTIMUM#OMPUTER3EARCH4REES3)!-*!PPL-ATH   *AIME !%STRUCTURASDE)NFORMACIØN-C'RAW (ILL 

458

ˆLˆœ}À>v‰> *OYANES!GUILAR ,&UNDAMENTOSDE0ROGRAMACIØN!LGORITMOSY%STRUCTURASDE$ATOS -C'RAW (ILL  +ARLTON 0 &ULLER 3 3CROGGS 2Y+ACHLER %0ERFORMANCEOF(EIGHT"ALANCED4REES #OMM!#-  +NOTT '(ASHING&UNCTIONS#OMPUTER*OURNAL   +NUTH $4HE!RTOF#OMPUTER0ROGRAMMING6OL&UNDAMENTAL!LGORITHMS2EAD ING -ASS!DDISON 7ESLEY  ˆˆˆˆ /PTIMUM"INARY3EARCH4REES!CTA)NFORMÈTICA   ˆˆˆˆ 4HE!RTOF#OMPUTER0ROGRAMMING6OL3ORTINGAND3EARCHING2EADING -ASS!DDISON 7ESLEY  ˆˆˆˆ %L!RTEDE0ROGRAMAR/RDENADORES6OL!LGORITMOSFUNDAMENTALES%DI TORIAL2EVERTÏ  +OLMAN "ERNARD ETAL%STRUCTURASDE-ATEMÈTICAS$ISCRETASPARALA#OMPUTACIØN 0RENTICE (ALL  ,EWIS 4Y3MITH -!PPLYING$ATA3TRUCTURES(OUGHTON-IFmIN "OSTON  ˆˆˆˆ %STRUCTURASDE$ATOS0ARANINFO  ,IPSCHUTZ 3%STRUCTURADE$ATOS3ERIE3CHAUM-C'RAW (ILL -ÏXICO  ,ORIN (!'UIDED"IBLIOGRAPHYTO3ORTING)"-3YST*   ,UCCIO &Y0AGLI ,1NTHE(EIGHTOF(EIGHT "ALANCED4REES)%%%4RANS#OMPTRS  ˆˆˆˆ 0OWER4REES#OMM!#-  ,UCAS 2EYRINY3CHOOL!LGORÓTMICAY2EPRESENTACIØNDE$ATOS6OL 3ECUENCIAS !UTØMATASDE%STADOS&INITOS-ASSON  -ARTIN 73ORTING#OMP3URVEYS   -AURER (Y,EWIS 4(ASH4ABLE-ETHODS#OMP3URVEYS   ˆˆˆˆ /TTMANN 4Y3IX ()MPLEMENTING$ICTIONARIES5SING"INARY4REESOF6ERY 3MALL(EIGHT)NFORM0ROC,ETTERS   ˆˆˆˆ $ATA3TRUCTURESAND0ROGRAMMING4ECHNIQUES0RENTICE (ALL %NGLEWOOD #LIFFS .*  ˆˆˆˆ Y/TTMANN 44REE3TRUCTURESFOR3ET-ANIPULATION0ROBLEMS)N-ATHEMATI CAL&OUNDATIONSOF#OMPUTER3CIENCE 3PRINGER 6ERLAG .UEVA9ORK  -C#REIGHT %0AGINATIONOF"

TREESWITH6ARIABLE ,ENGHT2ECORDS#OMM!#-  ˆˆˆˆ 0RIORITY3EARCH4REES3)!-*OF#OMP  -ELHORN +.EARLY/PTIMAL"INARY3EARCH4REES!CTA)NFORMÈTICA   ˆˆˆˆ $YNAMIC"INARY3EARCH3)!-*#OMP  ˆˆˆˆ $ATA 3TRUCTURES AND!LGORITHMS 6OL  3ORTING AND 3EARCHING 3PRINGER 6ERLAG  -ILLER 2 0IPPENGER . 2OSENBERG !Y3NYDER ,/PTIMAL 4REES)"-2ESEARCH 2EP2# )"-2ESEARCH,AB 9ORKTOWN(EIGHTS .UEVA9ORK  .IEVERGELT *Y7ONG #/N"INARY3EARCH4REES0ROC)&)0#ONGRESS .ORTH (OL LAND  ˆˆˆˆ Y2EINGOLD %"INARY3EARCH4REESOF"OUNDED"ALANCE3)!-*#OMP  ˆˆˆˆ "INARY 4REESAND&ILE/RGANIZATION!#-#OMPUTING3URVEYS  0FALTZ *#OMPUTER$ATA3TRUCTURES-C'RAW (ILL .UEVA9ORK  0OHL )!3ORTING0ROBLEMANDITS#OMPLEXITY#OMM!#- 

#*#-*0(3"'Ê"

459

0RATT 63HELLSORTAND3ORTING.ETWORKS'ARLAND .UEVA9ORK  2AIHA +Y:WEBEN 3!N/PTIMAL)NSERTION!LGORITHMFOR/NE 3IDED(EIGHT "ALANCED "INARY3EARCH4REES#OMM!#-  2OSENBERG !Y3NYDER ,-INIMAL#OMPARISON 4REES3)!-*#OMPUT  3AXE *Y"ENTLEY *4RANSFORMING3TATIC$ATA3TRUCTURESTO$YNAMIC3TRUCTURES2E SEARCH2EPORT#.53 #3   #ARNEGIE -ELLON5NIVERSITY 0ITTSBURGH  3CHOOL 0!LGORÓTMICAY2EPRESENTACIØNDE«RBOLES6OL 2ECURSIVIDADESY«RBOLES -ASSON  3COWEN 21UICKSORT!LGORITHM#OMM!#-  3EDGEWICK 21UICKSORT2EPORT.O34!. #3   $EPTOF#OMPUTER3CIENCE 3TANFORD5NIVERSITY #A  ˆˆˆˆ 4HE!NALYSISOF1UICKSORT0ROGRAMS!CTA)NFORMÈTICA   ˆˆˆˆ )MPLEMENTING1UICKSORT0ROGRAMS#OMM!#-  3HELL $!(IGHSPEED3ORTING0ROCEDURE#OMM!#-  ˆˆˆˆ /PTIMIZING/PTIMIZINGTHE0OLYPHASE3ORT#OMM!#-  3HNEIDERMAN "0OLYNOMIAL3EARCH3OFTWARE 0RACTICEAND%XPERIENCE   ˆˆˆˆ *UMP 3EARCHING ! &AST 3EQUENTIAL 3EARCH 4ECHNIQUE #OMM !#-   3INGLETON 2!N%FlCIENT!LGORITHMFOR3ORTINGWITH-INIMAL3TORAGE!LGORITHM #OMM!#-  3PRUNGNOLI 20ERFECT(ASHING&UNCTIONS!3INGLE0ROBE2ETRIEVING-ETHODFOR3TATIC 3ETS#OMM!#-  3TEPHENSON #!-ETHODFOR#ONSTRUCTING"INARY3EARCH4REESBY-AKING)NSERTIONSAT THE2OOT)"-2ESEARCH2EPORT2# 4HOMAS7ATSON2ESEARCH#ENTER 9ORK TOWN(EIGHTS .UEVA9ORK  4ANNER 2-INIMEAN-ERGINGAND3ORTING!N!LGORITHM3)!-*#OMP  4ENENBAUM !Y!UGENSTEIN -%STRUCTURASDE$ATOSEN0ASCAL0RENTICE (ALL(IS PANOAMERICANA  4REMBLAY *Y3ORENSON 0!N)NTRODUCTIONTO$ATA3TRUCTURESWITH!PPLICATIONS-C 'RAW (ILL .UEVA9ORK  6AN%MDEN .)NCREASING%FlCIENCYOF1UICKSORT#OMM!#-  6UILLEMIN *!5NIFYINGLOOKAT$ATA3TRUCTURES#OMM!#-  7ALKER 7Y'OTLIEB #!4OP $OWN!LGORITHMFOR#ONSTRUCTING.EARLY/PTIMAL,EX ICO GRAPHIC 4REES 'RAPH 4HEORY AND #OMPUTING!CADEMIC 0RESS .UEVA9ORK  7ILLIAMS *(EAPSORT!LGORITHM#OMM!#-  7IRTH .!LGORITHMS $ATA3TRUCTURES0ROGRAMS0RENTICE (ALL %NGLEWOOD#LIFFS .*  ˆˆˆˆ !LGORITMOS %STRUCTURASDE$ATOS0ROGRAMAS%DICIONESDEL#ASTILLO ˆˆˆˆ !LGORITMOSY%STRUCTURASDE$ATOS0RENTICE (ALL(ISPANOAMERICANA  7ULF 7 3HAW - (ILlNGER 0Y&LON ,&UNDAMENTAL3TRUCTURESOF#OMPUTER 3CIENCE!DDISON 7ESLEY 2EADING -ASS  9AO !1N2ANDOM 4REES!CTA)NFORMÈTICA  

',/3!2)/ «RBOL%STRUCTURAJERÈRQUICAAPLICADASOBREUNACOLECCIØNDEOBJETOSLLAMADOSNODOS ENLAQUEUNODEELLOSSECONOCECOMONODORAÓZ YCUYASRELACIONESENTRENODOSSE IDENTIlCANCOMOPADRE HIJO HERMANO ETCÏTERA «RBOLABARCADOR%SUNÈRBOLLIBREQUECONECTATODOSLOSVÏRTICESDE6 «RBOL BALANCEADO #ONOCIDO TAMBIÏN COMO ÈRBOL!6, ES UN ÈRBOL BINARIO DE BÞS QUEDAENELCUAL PARATODONODODELÈRBOL LAALTURADELOSSUBÈRBOLESIZQUIERDOY DERECHONODEBEDIFERIRENMÈSDEUNAUNIDAD «RBOLBINARIO«RBOLENELCUALCADANODOPUEDETENERHASTADOSDESCENDIENTESDIRECTOS YCUYASRAMASESTÈNORDENADAS «RBOLDEBÞSQUEDA6ÏASETRIE «RBOLMULTICAMINOS«RBOLENELQUECADANODOPUEDETENERMÈSDEDOSDESCENDIENTES DIRECTOSYCUYASRAMASESTÈNORDENADAS !RREGLO#OLECCIØNlNITA HOMOGÏNEAYORDENADADEELEMENTOS !RREGLODE.DIMENSIONES!QUELENELCUALCADAUNODESUSELEMENTOSDEBEIDENTIl CARSEPORNÓNDICESQUEMARQUENSUPOSICIØNEXACTADENTRODELARREGLO !RREGLOS PARALELOS %STRUCTURA FORMADA POR DOS O MÈS ARREGLOS CUYOS ELEMENTOS SE CORRESPONDEN PORLOGENERALENRELACIØNDEUNOAUNO "OSQUE#ONJUNTOORDENADODEUNOOMÈSÈRBOLES "ÞSQUEDA/PERACIØNQUEPERMITERECUPERARDATOSPREVIAMENTEALMACENADOS AUNQUE ESTAOPERACIØNPUEDERESULTARENFRACASOSINOSEENCUENTRAELDATOBUSCADO "ÞSQUEDAEXTERNA!QUELLAENLAQUETODOSLOSDATOSSEENCUENTRANENARCHIVOSRESI DENTES EN DISPOSITIVOS DE ALMACENAMIENTO SECUNDARIO TALES COMO DISCOS CINTAS ETCÏTERA "ÞSQUEDAINTERNA,AQUESEREALIZACONLOSDATOSRESIDENTESENLAMEMORIAPRINCIPAL DELACOMPUTADORA #AMINO5NCAMINO0DELONGITUDNDESDEUNVÏRTICEVAUNVÏRTICEWSEDElNECOMO LASECUENCIADENVÏRTICESQUESEDEBESEGUIRPARALLEGARDELNODOORIGENALNODO DESTINO #OLA,ISTADEELEMENTOSENLACUALLAEDICIØNDEELEMENTOSSELLEVAACABOPORUNEXTRE MO YLAELIMINACIØNSEREALIZAPOROTRO #OLISIØN,AQUESEORIGINAALUTILIZARUNAFUNCIØNHASH CUANDODOSOMÈSDATOSCON DISTINTASCLAVESTIENENLAMISMADIRECCIØNDEMEMORIA

462

œÃ>Àˆœ #ONJUNTO%SUNDATOESTRUCTURADOINTEGRADOPORUNGRUPODEOBJETOSDELMISMOTIPO AUNQUEELTIPOSØLOPUEDESERENTERO CARÈCTER ENUMERADOORANGO $ATOESTRUCTURADO%STÈFORMADOPORVARIOSCOMPONENTES CADAUNODELOSCUALESPUE DESERASUVEZUNDATOESTRUCTURADO4ODOSLOSCOMPONENTESDEUNDATOESTRUCTURADO SEIDENTIlCANCONELMISMONOMBRE $ATOSIMPLE!QUELQUEHACEREFERENCIAAUNÞNICOVALORALAVEZYQUEOCUPAUNACASILLA DEMEMORIA %STRUCTURADINÈMICADEDATOS!QUELLAQUEPERMITELAASIGNACIØNDEESPACIOENME MORIADURANTELAEJECUCIØNDEUNPROGRAMA CONFORMELOREQUIERANLASVARIABLESDE ÏSTE COMOLOSÈRBOLESYLASLISTAS &)&/)NICIALESDELAEXPRESIØNENINGLÏS&IRST)N &IRST/UTELPRIMEROENENTRARESEL PRIMEROENSALIR QUEINDICANELORDENDEINSERCIØNYELIMINACIØNDELOSELEMENTOS DEUNACOLA &UNCIØNHASH!QUELLAQUEPERMITETRANSFORMARUNACLAVEENUNADIRECCIØNDEMEMO RIA 'RÈlCACOMPLETA3EDICEQUEUNAGRÈlCAESCOMPLETASICADAVÏRTICEVDE'ESADYA CENTEATODOSLOSDEMÈSVÏRTICESDE' 'RÈlCACONEXA3EDICEQUEUNAGRÈlCAESCONEXASIEXISTEUNCAMINOSIMPLEENTREDOS DESUSNODOSCUALESQUIERA 'RÈlCADIRIGIDA3ECARACTERIZAPORQUESUSARISTASTIENENASOCIADAUNADIRECCIØN 'RÈlCAETIQUETADA3EDICEQUEUNAGRÈlCA'ESTÈETIQUETADASISUSARISTASTIENENASIG NADOUNVALOR 'RÈlCAS%STRUCTURASDEDATOSQUEPERMITENREPRESENTARDIFERENTESTIPOSDERELACIONES ENTRELOSOBJETOS 'RÈlCASNODIRIGIDAS3UCARACTERÓSTICAPRINCIPALESQUESUSARISTASSONPARESNOORDE NADOSDEVÏRTICES ¶NDICE)NDICADORQUESE×ALALAPOSICIØNDEUNCOMPONENTEENUNDATOESTRUCTURADO ,)&/)NICIALESDELAEXPRESIØNENINGLÏS,AST)N &IRST/UTELÞLTIMOENENTRARESEL PRIMEROENSALIR QUEINDICANELORDENDEINSERCIØNYELIMINACIØNDELOSELEMENTOS DEUNAPILA ,ISTA#OLECCIØNDEELEMENTOSLLAMADOSNODOS CUYOORDENSEESTABLECEPORMEDIODE PUNTEROS ,ISTACIRCULAR!QUELLAENLAQUESUÞLTIMOELEMENTOAPUNTAALPRIMERO ,ISTADOBLEMENTELIGADA#OLECCIØNDEELEMENTOSLLAMADOSNODOS ENLACUALCADANODO TIENEDOSPUNTEROS UNOAPUNTANDOALNODOPREDECESORYELOTROALNODOSUCESOR ,ISTAINVERTIDA,ISTAQUECONTIENELASCLAVESDELOSELEMENTOSQUEPOSEENUNDETER MINADO ATRIBUTO LO CUAL FACILITA LA BÞSQUEDA DE LOS ELEMENTOS QUE POSEAN DICHO ATRIBUTO -ATRIZ%STRUCTURADEDATOSQUEPERMITEORGANIZARLAINFORMACIØNENRENGLONESYCOLUM NAS%SUNARREGLOBIDIMENSIONAL -ÏTODODEBÞSQUEDA3ECARACTERIZAPORELORDENENELCUALSEEXPANDENLOSNODOS -ÏTODOSDEBÞSQUEDABREADTH lRST3EEXPANDENLOSNODOSENELORDENENQUEHAN SIDOGENERADOS -ÏTODOSDEBÞSQUEDADEPTH lRST3EEXPANDENLOSNODOSGENERADOSMÈSRECIENTEMEN TE -ULTIGRÈlCA 5NA GRÈlCA SE DENOMINA MULTIGRÈlCA SI AL MENOS DOS DE SUS VÏRTICES ESTÈNCONECTADOSPORDOSARISTAS

(-04"3*0

463

-ULTILISTA%STRUCTURAQUEPERMITEALMACENARENUNAOVARIASLISTASLASDIRECCIONESDE LOSELEMENTOSQUEPOSEENUNOOMÈSATRIBUTOSESPECÓlCOS LOCUALFACILITASUBÞS QUEDA .OTACIØNINlJA3EDICEQUEUNAEXPRESIØNARITMÏTICATIENENOTACIØNINlJACUANDOSUS OPERADORESESTÈNENTRELOSOPERANDOS POREJEMPLO ! " .OTACIØNPOSTlJA3EDICEQUEUNAEXPRESIØNARITMÏTICATIENENOTACIØNPOSTlJACUANDO SUSOPERADORESESTÈNALlNALDELOSOPERANDOS POREJEMPLO !"  .OTACIØNPRElJA3EDICEQUEUNAEXPRESIØNARITMÏTICATIENENOTACIØNPRElJACUANDO SUSOPERADORESESTÈNALINICIODELOSOPERANDOS POREJEMPLO !" /RDENACIØNEXTERNA%NESTAFORMADEORDENACIØNLOSDATOSSETOMANDEARCHIVOSRE SIDENTESENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO TALESCOMODISCOS CINTAS ETCÏTERA /RDENACIØNINTERNA3EAPLICAENLAORDENACIØNDEARREGLOSYSEREALIZACONTODOSLOS DATOSDEÏSTOSALOJADOSENLAMEMORIAPRINCIPALDELACOMPUTADORA /RDENAR/RGANIZARUNCONJUNTODEDATOSUOBJETOSENUNASECUENCIAESPECÓlCA PORLO GENERALASCENDENTEODESCENDENTE 0ILA,ISTADEELEMENTOSALACUALSEPUEDEINSERTAROELIMINARELEMENTOSSØLOPORUNO DESUSEXTREMOS 0UNTERO $ATO QUE ALMACENA UNA DIRECCIØN DE MEMORIA EN DONDE SE ALMACENA UNA VARIABLE 2ECURSIØN(ERRAMIENTADEPROGRAMACIØNQUEPERMITEDElNIRUNOBJETOENTÏRMINOSDE ÏLMISMO 2EGISTRO%SUNDATOESTRUCTURADOENELCUALSUSCOMPONENTESPUEDENSERDEDIFERENTES TIPOS INCLUSO REGISTROS O ARREGLOS 4ODOS SUS COMPONENTES SE IDENTIlCAN CON UN NOMBRE 2EPRESENTACIØN LINEAL DE ESTRUCTURAS NO LINEALES 0ROCEDIMIENTO PARA CONVERTIR LOS ÓNDICESDECADAUNODELOSELEMENTOSDEARREGLOSDEDOSOMÈSDIMENSIONESENUNA POSICIØNESPECÓlCADENTRODEUNARREGLODEUNADIMENSIØN 3OLUCIØNDECOLISIONES#ONSISTEENREUBICARUNDATOCUYADIRECCIØN CALCULADAPORUNA FUNCIØNHASH YAHAYASIDOUTILIZADAPOROTRODATO 4RIE«RBOLENELQUELAINFORMACIØNDECADANODOESCOMÞNATODOSSUSSUCESORES

·.$)#%!.!,·4)#/ !NÈLISISDEElCIENCIADELMÏTODO DEINSERCIØNBINARIA  DEINSERCIØNDIRECTA   DEINTERCAMBIODIRECTO   DELASACUDIDA  DESELECCIØNDIRECTA   DE3HELL   DELMONTÓCULO  QUICKSORT   !NÈLISISDELABÞSQUEDA BINARIA   SECUENCIAL   !NÈLISISDELMÏTODOPORTRANSFORMACIØN DECLAVES  «RBOLES  BALANCEADOS      DEBÞSQUEDA   REESTRUCTURACIØNDE   BINARIOS   DEBÞSQUEDA     RECORRIDOSEN   REPRESENTACIØNDE   ENMEMORIA   CARACTERÓSTICASYPROPIEDADESDELOS   ENGENERAL  MULTICAMINOS  !RISTAS  !RREGLOS   ACTUALIZACIØNDELOS  ASIGNACIØNDELOS   BIDIMENSIONALES   DECLARACIØNDE   OPERACIONESCON   COMBINACIONESENTREREGISTROSY  DELISTAS 

DEMÈSDEDOSDIMENSIONES     DElNICIØNDE    DEREGISTROS    USODE   DESORDENADOS   DIFERENCIASENTREREGISTROSY  EJEMPLOSDE   ESCRITURADELOS   MULTIDIMENSIONALES    OPERACIONESCON   ORDENADOS   PROCESODELECTURADELOS   PARALELOS   CONCEPTODE  USODE 

"ÞSQUEDA   ÈRBOLESDE   BINARIA    DINÈMICAPORTRANSFORMACIØNDECLAVES   ENARCHIVOSSECUENCIALES   EXTERNA  INTERNA   SECUENCIAL   PORTRANSFORMACIØNDECLAVES     DINÈMICA  

#OLAS  APLICACIONESDE   CIRCULARES   DElNICIØNDE  DOBLES  

466

˜`ˆViÊ>˜>‰ÌˆVœ OPERACIONESCON   REPRESENTACIØNDE  #ONJUNTOS   #ONSTRUCCIØNDELÈRBOLABARCADORDECOSTO MÓNIMO 

$ATOS ESTRUCTURADOS  SIMPLES  BOOLEANOS  CARACTERES  ENTEROS  ENUMERADOS  REALES  SUBRANGOS  $ESBORDAMIENTOOVERmOW  $IJKSTRA ALGORITMODE  

%SPACIOESTADO  MÏTODODEBÞSQUEDAEN 

&)&/&IRST )N &IRST /UT  &LOYD ALGORITMODE  

'RÈlCAS  CONCEPTOSBÈSICOSDELAS   DElNICIØNDE  DIRIGIDAS  DElNICIØNDE  REPRESENTACIØNDE   NODIRIGIDAS   ALGUNOSCONCEPTOSSOBRE  DElNICIØN  REPRESENTACIØNDE  

)NTERCALACIØNDEARCHIVOS  

+RUSKAL ALGORITMODE  

,)&/,AST )NPUT &IRST /UTPUT  ,ISTAS  APLICACIONES  CIRCULARES   DElNICIØNDE 

DOBLEMENTELIGADAS  OPERACIONESCON   INVERTIDAS   SIMPLEMENTELIGADAS  OPERACIONESCON   ,ISTASINVERTIDAS   ,ONGITUDDECAMINO INTERNO  EXTERNO 

-ATRICES  CUADRADASPOCODENSAS  POCODENSAS  DElNICIØNDE  SIMÏTRICAYANTISIMÏTRICA   TRIANGULARINFERIOR   TRIANGULARSUPERIOR   TRIDIAGONAL   -ÏTODOSDEBÞSQUEDA  ENESPACIO ESTADO  "READTH &IRST   $EPTH &IRST   -ÏTODOSDEORDENACIØN   -ULTILISTAS  

/BTENCIØNDECAMINOSDENTRODEUNADIGRÈlCA  /RDENACIØN  DEARCHIVOS  EXTERNA    INTERNA   PORELMÏTODODELASACUDIDASHAKERSORT   PORELMÏTODODEINSERCIØNBINARIA   PORELMÏTODODEINTERCAMBIODIRECTOCON SE×AL  PORELMÏTODODEMEZCLAEQUILIBRADA   PORELMÏTODODE3HELL   PORELMÏTODOHEAPSORTMONTÓCULO   PORELMÏTODOQUICKSORT   PORINSERCIØNDIRECTA   PORINTERCAMBIODIRECTOBURBUJA   PORMEZCLADIRECTA   PORSELECCIØNDIRECTA   /RDENAR 

Ê/%*$&"/"-Ê5*$0 0ILAS  APLICACIONESDELAS   OPERACIONESCON   REPRESENTACIØNDE   0RIM ALGORITMODE   0ROBLEMADELAS4ORRESDE(ANOI EL  

ACCESOALOSCAMPOSDEUN   ANIDADOS   COMBINACIONESENTREARREGLOSY  CONARREGLOS   DElNICIØNDE  2ESOLUCIØNDEPROBLEMAS  

2ECURSIØNORECURSIVIDAD CASOSINTERESANTESDE   DElNICIØNDE  DIRECTA  FUNCIONAMIENTOINTERNODELA    INDIRECTA   USODELASPILASPARASIMULAR   2EGISTROS 

3UBDESBORDAMIENTOUNDERmOW 

6ÏRTICES 

7ARSHALL ALGORITMODE  

467