temas sis2310.doc
TRANSCRIPT
-
7/26/2019 TEMAS SIS2310.doc
1/282
1
-
7/26/2019 TEMAS SIS2310.doc
2/282
2
-
7/26/2019 TEMAS SIS2310.doc
3/282
TECNICA DE ORUROFACULTAD NACIONAL DE INGENIERIA
INGENIERIA DE SISTEMAS E INFORMATICA
TEXTO GUIA RECOPILADO:
ESTRUCTURA DE DATOS
SIS2204
Docente: Ing. Juan Gregorio Choue U!oFecha de Realizacin" Fe#rero $e% 2014
Oruro & 'o%i(ia
)
-
7/26/2019 TEMAS SIS2310.doc
4/282
4
-
7/26/2019 TEMAS SIS2310.doc
5/282
CONTENIDOINTRODUCCION....................................................................................................................
ESTRUCTURA DE DATOS...................................................................................................11ESTRUCTURA.................................................................................................................11ESTRUCTURA DE DATOS.............................................................................................11
ESTRUCTURAS DE DATOS Y TIPOS DE DATOS ABSTRACTOS (TDA)..........................12TI*OS DE DATOS '+SICOS..........................................................................................1)LOS TDA COM*UESTOS '+SICOS"............................................................................14
1.2 OPERACIONES SOBRE ESTRUCTURAS DE DATOS..................................................16
PILAS ! COLAS......................................................................................................................"
2.1 PILAS...............................................................................................................................21*ILA SECUENCIAL........................................................................................................21O*ERACIONES CON *ILAS..........................................................................................22
2.2 COLAS.............................................................................................................................26COLA SECUENCIAL......................................................................................................2,O*ERACIONES CON COLAS........................................................................................2,
2.3 COLAS CIRCULARES....................................................................................................30INSERCI-N EN COLA CIRCULAR..............................................................................)1ELIMINAR EL NODO DELANTERO DE LA COLA....................................................)2
2.4 APLICACIONES DE LISTAS RESTRINGIDAS..............................................................32ALGORITMO DE NOTACI-N INFIJA A *OSFIJA......................................................))ALGORITMO DE EALUACI-N EN NOTACI-N *OSFIJA.....................................)/EJEM*LO DE EALUACI-N DE UNA E*RESI-N.................................................42
ARC#I$OS% REGISTROS ! CA&POS................................................................................'(
3.1 ARCHIVOS......................................................................................................................47
3.2 TIPOS DE ARCHIVOS....................................................................................................47
ARCIOS SECUENCIALES........................................................................................4,ARCIOS DIRECTOS..................................................................................................4
3.3 OPERACIONES SOBRE ARCHIVOS.............................................................................48
3.4 REGISTROS Y CAMPOS.................................................................................................4REGISTROS.....................................................................................................................43CAM*OS........................................................................................................................../1
/
-
7/26/2019 TEMAS SIS2310.doc
6/282
TRATA&IENTO DE ARC#I$OS..........................................................................................)(
4.1 INTRODUCCION............................................................................................................!7
4.2 OPERACIONES SOBRE ARCHIVOS.............................................................................!8ADICION DE DATOS....................................................................................................../ELIMINAR DATOS.........................................................................................................0CONSULTAS DE DATOS................................................................................................2'US5UEDA DE DATOS.................................................................................................)
4.3 PARTICION DE ARCHIVOS...........................................................................................6!*ARTICION *OR CONTENIDO.....................................................................................*ARTICION *OR UNA SECUENCIA 6 * 6 DADA........................................................,*ARTICI-N DE ARCIOS *OR TRAMOS ORDENADOS......................................
4.4 ME"CLAS DE ARCHIVOS..............................................................................................6ME7CLA *OR CONTENIDO TOTAL............................................................................,0
ME7CLA *OR SECUENCIAS 6*6..................................................................................,2ME7CLA *OR TRAMOS ORDENADAS......................................................................,)
4.! ORDENACI#N E$TERNA..............................................................................................7!ORDENACI-N *OR ME7CLA DIRECTA....................................................................,ORDENACI-N *OR ON NE8MAN..........................................................................,3ORDENACI-N *OR ME7CLA E5UILI'RADA........................................................../ORDENACI-N *OR DIGITOS.......................................................................................32
LISTAS ENCADENADAS.....................................................................................................*
!.1 LISTAS ENCADENADAS..............................................................................................101TI*OS DE LISTAS.........................................................................................................101
!.2 LISTAS SIMPLEMENTE ENLA"ADAS.........................................................................102O*ERACIONES EN LISTAS SIM*LEMENTE ENLA7ADAS...................................10)RECORRIDO..................................................................................................................104'US5UEDA...................................................................................................................104INSERCION DE DATOS...............................................................................................10/ELIMINAR DATOS.......................................................................................................10
!.3 LISTAS SIMPLEMENTE ENLA"ADAS CIRCULARES................................................113
O*ERACIONES EN LISTAS SIM*LEMENTE ENLA7ADAS CIRCULARES.........114RECORRIDO..................................................................................................................114'US5UEDA...................................................................................................................11/INSERCION DE DATOS...............................................................................................11/ELIMINAR DATOS........................................................................................................11,
!.4 LISTAS DOBLEMENTE ENLA"ADAS.........................................................................122O*ERACIONES EN LISTAS DO'LEMENTE ENLA7ADAS....................................12)
-
7/26/2019 TEMAS SIS2310.doc
7/282
RECORRIDO..................................................................................................................124INSERCION DE DATOS...............................................................................................12/ELIMINAR DATOS.......................................................................................................12
!.! LISTAS CIRCULARES DOBLEMENTE ENLA"ADAS.................................................13!
O*ERACIONES EN LISTAS DO'LEMENTE ENLA7ADAS CIRCULARES..........1)RECORRIDO..................................................................................................................1)INSERCION DE DATOS...............................................................................................1)ELIMINAR DATOS.......................................................................................................140
+R,OLES...............................................................................................................................'-
6.1 DE%INICION.................................................................................................................14RE*RESENTACI-N......................................................................................................1/0MATRI7 DE AD9ACENCIA.........................................................................................1/0LISTA DE AD9ACENCIA.............................................................................................1/1
ESTRUCTURA DIN+MICA *URA..............................................................................1/1
6.2 CONCEPTOS ASOCIADOS..........................................................................................1!2NODO.............................................................................................................................1/2RAMA.............................................................................................................................1/2RA:7...............................................................................................................................1/2SU'+R'OL...................................................................................................................1/2ANTECESOR O *ADRE................................................................................................1/)GRADO DE UN NODO.................................................................................................1/)NIEL.............................................................................................................................1/)
NODO TERMINAL U OJA.........................................................................................1/)NODO INTERNO...........................................................................................................1/4LONGITUD DE CAMINO INTERNO DE UN AR'OL...............................................1/4LONGITUD DE CAMINO ETERNA.........................................................................1/4LONGITUD DE CAMINO INTERNA MEDIA............................................................1/4
6.3 ARBOL BINARIO..........................................................................................................1!!DEFINICION..................................................................................................................1//O*ERACIONES 'ASICAS...........................................................................................1//INSERCI-N DE DATOS...............................................................................................1,2ELIMINAR UN DATO...................................................................................................1,)
';S5UEDA DE DATOS...............................................................................................16.4 &RBOLES BINARIOS DE E$PRESIONES...................................................................187
CONSTRUCCI-N A *ARTIR DE UNA E*RESI-N EN NOTACI-NCONENCIONAL.........................................................................................................1,
6.! &RBOLES E'UILIBRADOS O AVL.............................................................................10DEFINICI-N..................................................................................................................131INSERCI-N EN AL.....................................................................................................132
,
-
7/26/2019 TEMAS SIS2310.doc
8/282
IM*LEMENTACI-N DE LA INSERCI-N..................................................................200'ORRADO EN AL......................................................................................................204IM*LEMENTACI-N DE LA ELIMINACI-N.............................................................212
GRAFOS..................................................................................................................................""-
7.1 DE%INICIONES............................................................................................................22GRAFO...........................................................................................................................223GRAFO DIRIGIDO........................................................................................................2)0AD9ACENCIA...............................................................................................................2)0INCIDENCIA.................................................................................................................2)1GRAFOS 9 DIGRAFOS D.............................................................................2,1
-
7/26/2019 TEMAS SIS2310.doc
9/282
TE&A
3
-
7/26/2019 TEMAS SIS2310.doc
10/282
10
-
7/26/2019 TEMAS SIS2310.doc
11/282
INTRODUCCION
O,/ETI$OSCon?e@uar %aB $iereneB ea@aB @or %aB ue ara(ieBa e% @ro?eBaieno $e
$aoB $eB$e %a a#Bra??in $e %oB iBoB haBa %a o#en?in $e %oB reBu%a$oB
en %a ?o@ua$ora.
CONTENIDO
1.1 EBru?ura $e DaoB1.2 EBru?uraB $e $aoB i@oB $e $aoB a#Bra?oB $aH1.) O@era?ioneB So#re EBru?uraB $e DaoB
ESTRUCTURA DE DATOS.
ESTRUCTURA
EB un ?onuno $e e%eenoB enre%aa$oB regi$oB @or una Berie $e %eeB. Engenera%K %aB eBru?uraB ue noB @reBena e% un$o rea% eBn regi$aB @or %aB
%eeB Bi?aB.
ESTRUCTURA DE DATOS
Una eBru?ura $e $aoB eB una ?o%e??in organia$a $e e%eenoB $e $aoB
#ao %aB %eeB $e %a inori?a. EBoB e%eenoBK o %a$ri%%oBK Bon %oB i@oB $e
$aoBK ?on %oB ?ua%eB Be oran %aB eBru?uraB $e $aoB ue in?%uen %oB
$iereneB %enguaeB"
'inarioB
11
-
7/26/2019 TEMAS SIS2310.doc
12/282
EneroB
Rea%eB
Cara?ereB
Do#%e @re?iBin
e?oreB
Arreg%oB #i$ienBiona%eB
Arreg%oB n&$ienBiona%eB
RegiBroB
Co@%eoBE% i@o $e $ao $eerina"
LoB rangoB $e %a (aria#%e.
La ?ani$a$ $e eoria ue Be %e aBigna a %a (aria#%e.
LaB o@era?ioneB ue Be @ue$en rea%iar.
De#i$o a %o %iia$o $e %oB %enguaeB $e a%o ni(e%K %oB @rograa$oreB eBa#an
inBaiBe?hoB @or e% ni(e% $e a#Bra??in ue %ogra#an.
EBe @ro#%eaK Be ha Bu@era$o a% @ro(eer %oB nue(oB %enguaeB ?on e?aniBoB
ue %e @erien a% @rograa$or ?onBruir BuB @ro@iaB a#Bra??ioneB ?on #aBe en
Bu ne?eBi$a$K a ra(B $e %oB i@oB $e $aoB $eini$oB @or e% uBuario.
E% enoue $e %oB nue(oB %enguaeBK oriena$oB @or o#eoBK eB ener un
?onuno io $e eBru?uraB un ?onuno @o$eroBo $e @riii(aB ue @erienBu ani@u%a?inK #rin$n$o%e a% uBuario %a o@oruni$a$ $e $einir $aoB
ari#uoBH o@era?ioneB o$oBH.
12
-
7/26/2019 TEMAS SIS2310.doc
13/282
ESTRUCTURAS DE DATOS ! TIPOS DE DATOSA,STRACTOS 0TDA1
Un +,- / /+ eB una ?o%e??in $e (a%oreB
Un +,- / /+ +5+ TDAH eB un i@o $e $aoB $eini$o $e ora ni?a
e$iane un i@o un ?onuno $a$o $e o@era?ioneB $eini$aB Bo#re e% i@o.
Una +5+ / /+ eB %a i@%eena?in Bi?a $e un i@o $e $aoB
a#Bra?o.
De#i$o a% @ro?eBo $e a#Bra??inK e% $iBe!o $e#er rea%iarBe Biguien$o reB
@aBoB un$aena%eB"1.& An%iBiB $e $aoB o@era?ioneB
2.& E%e??in $e% Ti@o $e DaoB A#Bra?o
).& E%e??in $e %a i@%eena?in
TIPOS DE DATOS ,+SICOS
TDA Ente2o" iene ?oo i@o e% ?onuno $e neroB eneroBK ?oo
o@era?ioneB %a BuaK reBaK u%i@%i?a?in $i(iBin enera
TDA Real" iene ?oo i@o e% ?onuno $e neroB rea%eB ?oo
o@era?ioneB %a BuaK reBa u%i@%i?a?in $i(iBin
TDA ,ooleano" iene ?oo i@o e% ?onuno $e (a%oreB #oo%eanoB TrueK
Fa%Be ?oo o@era?ioneB %aB $eini$aB en e% %ge#ra $e 'oo%e ANDKORK NOTH
1)
-
7/26/2019 TEMAS SIS2310.doc
14/282
TDA Ca23cte2" iene ?oo i@o e% ?onuno $e ?ara?ereB $eini$o @or
un a%a#eo $a$o ?oo o@era?ioneB o$oB %oB o@era$oreB re%a?iona%eB
PK QK K QK PK PQH
Se $enoinan i@oB $e $aoB escalares a aue%%oB en %oB ue e% ?onuno $e
(a%oreB eB or$ena$o ?a$a (a%or eB ai?o" C5+ E9+ R: ;
B:9.
Se $enoinan i@oB $e $aoB ordinales a aue%%oB en %oB ue ?a$a (a%or iene
un @re$e?eBor e?e@o e% @rieroHK un ni?o Bu?eBor e?e@o e% %ioH"C5+ E9+ ; B:9.
LoB %enguaeB $e a%o ni(e% Bue%en @reBenar reB un?ioneB a$i?iona%eB
aBo?ia$aB a %oB i@oB $e $aoB or$ina%eB" @oBi?in O/HK @re$e?eBor P/H
Bu?eBor S5H $e un e%eeno.
Oro i@o $e $aoB Bon %oB $enoina$oB compuestos, $a$o ue Bon $i(iBi#%eB
en 5
-
7/26/2019 TEMAS SIS2310.doc
15/282
uno o (arioB n$i?eBK ue Bern $e i@o or$ina%K ue in$i?an %a @oBi?in
$e %a ?o@onene $enro $e %a ?o%e??in.
TDA Re6i7t2o" i@o $e $aoB heerogneo ?o@ueBo @or un nero
io $e ?o@oneneB $enoina$aB ?a@oB a %aB ue Be a??e$e e$iane
un Be%e?or $e ?a@o.
E% TDA C9=9+ no eB eBru?ura$o a ue no eB organia$o e$iane e%
o$o $e a??eBo a BuB ?o@oneneB in$i(i$ua%eBK ienraB ue e% Arreg%o e%
RegiBro Bi %o Bon. LoB regiBroB @ue$en ener ?oo ?a@oB i@oB $e $aoB
Bi@%eB o arreg%oB o in?%uBo oroB regiBroB.LoB TDA #Bi?oB Bon %oB ui%ia$oB ?on aor re?uen?iaK @ero a$eB ?a$a
@ro#%ea @ue$e reuerir %a $eini?in $e (arioB TDA @ro@ioB. *or ee@%oK un
TDA u ui%ia$o en a@%i?a?ioneB inori?aB eB e% TDA %iBa $eini$o $e %a
Biguiene ora"
TDA li7ta o S595,H" ?o%e??in hoognea $e $aoBK or$ena$oB
Begn Bu @oBi?in en e%%aK a% ue ?a$a e%eeno iene un @re$e?eBor
e?e@o e% @rieroH un Bu?eBor e?e@o e% %ioH %oB o@era$oreB
aBo?ia$oB Bon"
I9+" inBera un e%eeno K en una @oBi?in @ $e %a %iBa
L5:,>" %o?a%ia %a @oBi?in @ en %a ue Be en?uenra e% $ao
R5-" en?uenra e% e%eeno ue eBa en %a @oBi?in @ S-,
-
7/26/2019 TEMAS SIS2310.doc
16/282
A9:" o?aBiona ue %a %iBa Be (a?e
P,
-
7/26/2019 TEMAS SIS2310.doc
17/282
-
7/26/2019 TEMAS SIS2310.doc
18/282
1
-
7/26/2019 TEMAS SIS2310.doc
19/282
TE&A "
13
-
7/26/2019 TEMAS SIS2310.doc
20/282
20
-
7/26/2019 TEMAS SIS2310.doc
21/282
PILAS Y COLAS
O,/ETI$OSE@%ear $eBarro%%ar a@%i?a?ioneB e@%ean$o eBru?uraB eBi?aB $e $aoB
?oo a@oo a @ro?eBoB B ?o@%eoB.
CONTENIDO
2.1 *i%aB
2.2 Co%aB
2.) Co%aB Cir?u%areB
2.4 A@%i?a?ioneB $e LiBaB ReBringi$aB
En eBe ?a@u%o Be inro$u?en $oB i@oB $e %iBaBK @i%aB ?o%aBK ue Be @ue$en
a?ua%iarK Bo%o $e una anera u %iia$a. Son eBru?uraB #aBane
i@oraneB ui%ia$aB en u%iu$ $e a@%i?a?ioneB.
". PILAS.
Una @i%a eB una %iBa en $on$e ano %aB inBer?ioneB ?oo %aB Bu@reBioneB Be
ha?en @or e% iBo ereoK ue Be ?ono?e ?oo e% o@e $e %a @i%a.
*or ee@%oK %a @i%a $e ?arrioB $e %oB Bu@erer?a$oBK @orue e% %io ?arro
ue Be ?o%o?a eB e% @riero ue Be Ba?a. EBa @ro@ie$a$ $e %a @i%a Be ?ono?e?oo LIFO LaB In FirB OuV %io ue enra @riero ue Ba%eH.
PILA SECUENCIAL
21
-
7/26/2019 TEMAS SIS2310.doc
22/282
Au Be ra#aa ?oo una %iBa Be?uen?ia% $e a??eBo reBringi$o. *ara Bu aneo
Be reuieren $oB a@una$oreBK uno ue in$i?a %a @oBi?in $e% %io e%eeno
inBera$oK %%aa$o TO*E $e %a @i%aK oro $enoina$o 'ASE ue a@una a%
on$o $e %a @i%a. Cuan$o %a @i%a eB (a?aK no ha e%eenoBK 'ASETO*E.
%,@ 2.1 P,: ,9+ ; :,
-
7/26/2019 TEMAS SIS2310.doc
23/282
En e% arreg%o *ILAK Be ini?ia %a %iBa reBringi$a.
Precondicin: 5ue eiBa e% arreg%o.Poscondicin:Con$i?in $e @i%a (a?a.
INIC_PILAInicio BASE = 0 TOPE = BASE
Fin
AuK %a #aBe a@una a% e%eeno 0 $e% arreg%oK ue ?oo Be ha#a $eerina$oK
no ?orreB@on$e a ningn e%eeno $e %a %iBa.
PRUE,A DE PILA $AC9A
En genera% eB i@oraneK @ara o$o i@o $e eBru?uraK eBa#%e?er Bi Be
en?uenra (a?aK @ueB e% @ro?eBo (ara $e@en$ien$o $e eBa ?on$i?in. EBe
a%gorio reorna un (a%or (er$a$ero Bi %a @i%a eB (a?a.
Precondicin:No ha.Poscondicin: Reorna (er$a$ero ?uan$o no ha e%eenoB en %a @i%a. En ?aBo?onrario reorna e% (a%or a%Bo.ENTERO PILA_VACIA()Inicio Si (TOPE==BASE) Entonces RETORNA VERDADERO Sino RETORNA FALSO Fin-Si
Fin
EBa ruina Be e@%ea en e% a%gorio ELIMW*ILA ue Ba?a e% e%eeno ue
a@una e% TO*E $e %a @i%a.
ACCEDER AL ELE&ENTO TOPE DE LA PILA
2)
-
7/26/2019 TEMAS SIS2310.doc
24/282
Con eBa o@era?in Be %ee e% %io e%eeno $e %a @i%a Be %%e(a a DATO.
Precondicin: *i%a (%i$a.Poscondicin:En DATO ue$a una ?o@ia $e% e%eeno ue a@una e% n$i?e
TO*E Bi ha e%eenoB en %a @i%aK en ?aBo ?onrario DATO ue$a in$eini$o.ACCE_PILA(DATO,I)Inicio I = Ver!ero Si (NO PILA_VACIA()) Entonces DATO = PILA"TOPE# Sino I = F!$so Fin-Si
Fin
INSERTAR UN DATO EN LA PILA
Se ?o%o?a DATO en un no$o ue ue$a en e% TO*E $e %a @i%a. EB @oBi#%e ue
no Be @ue$a ha?er %a inBer?in $e#i$o a ue no ha no$oB $iB@oni#%eB
re?or$eoB ue ?on %a (aria#%e I Be in$i?a Bi Be @u$oK o noK ha?er %a inBer?in.
Precondicin:TO*E P MPoscondicin:I (er$a$ero in$i?a ue Be hio %a inBer?in $e DATO e% n$i?eTO*E a@una a DATO.INSER_PILA(DATO,I)Inicio I = Ver!ero Si (TOPE%=&) Entonces I = F!$so Sino TOPE = TOPE '
PILA"TOPE# = DATO Fin-Si
Fin
24
-
7/26/2019 TEMAS SIS2310.doc
25/282
%,@ 2.2 E+/ / : -,: :@ / : ,95,9
La ?on$i?in $e Baura?in genera%ene eB un error Bignii?a ue e% rea
$iB@oni#%e eB %%ena. La @o%i?a ?on eBK en @rier %ugarK raar $e anear
$i?ha ?on$i?in @ara Bu@erar%aK o re?haar %a inBer?in e inorar a% BiBea
una erina?in anora% $e %a area.
ELI&INAR UN ELE&ENTO DE LA PILA
En DATO Be ?o%o?a e% e%eeno ue ini?ia%ene a@una a% TO*E $e %a @i%a. A%
$iBinuir TO*E e% e%eeno anerior @erane?e en e% rea $e eoria ?oo
#aBura.Precondicin:*i%a (%i$a.Poscondicin:Si Be @u$o rea%iar %a o@era?inK I (er$a$eroK DATO ue$a ?one%eeno ue ha#a en e% o@e $e %a @i%a. Si %a @i%a eBa#a (a?a I eB a%Bo DATO in$eerina$o.ALORIT&O ELI&_PILA(DATO,I)Inicio I = Ver!ero
Si (NO PILA_VACIA()) Entonces DATO = PILA"TOPE# TOPE = TOPE - Sino I = F!$so Fin-Si
Fin
2/
-
7/26/2019 TEMAS SIS2310.doc
26/282
La ?on$i?in $e @i%a (a?a Be @reBena ?uan$o Be raa $e o#ener un e%eeno
ineiBeneK %a ?ua% no eB una ?on$i?in $e error. EBa ?on$i?in Be @ue$e
?onBi$erar en e% Beni$o $e ue ha una Berie $e re?urBoB $iB@oni#%eB @ara
@ro?eBar e% DATO ue Be eB@eraK en ?aBo $e ue no %%egueK Bi@%eene Be
%i#eran %oB re?urBoB o Be ini?ia e% @ro?eBo $e %oB $aoB anerioreB.
DESTRUIR LA PILA
Se Ba?an o$oB %oB e%eenoB $e %a %iBa.
Precondicin: *i%a (%i$a.Poscondicin: *i%a (a?a.ALORIT&O DEST_PILAInicio I = Ver!ero &ientr!s I *!cer ELI&_PILA(DATO,I) R+tin!_+s! (D!to) Fin-&Fin
En u?haB a@%i?a?ioneB eB ne?eBario (a?iar %a @i%aK @ara eBo Be in?%ue %aruina a@ro@ia$a ue ui%ia DATO $enro $e% ?i?%o.
"." COLAS.
EB una %iBa $e @ro?eBo reBringi$o en %a ?ua% %aB inBer?ioneB Be ha?en @or un
ereo %%aa$o 6%io6 %aB e%iina?ioneB Be ha?en @or e% oro ereo
%%aa$o 6$e%anero6. *or ee@%oK %oB a(ioneB ue eB@eran $eB@egar $e un
aero@uero oran una ?o%aK e% ue %%ega a %a @iBa ue$a $e %io e% ue (a
a $eB@egar eB $e $e%anero en %a ?o%a. Se $i?e ue una ?o%a iene @o%i?a
FIFOFirB InK FirB OuH E% @rier e%eeno en enrar Ber e% @riero en Ba%ir.
2
-
7/26/2019 TEMAS SIS2310.doc
27/282
COLA SECUENCIAL
Au Be ra#aa %a ?o%a ?oo una %iBa Be?uen?ia% $e a??eBo reBringi$oK $enro
$e% arreg%o COLA. *ara Bu aneo Be reuieren $oB n$i?eBK ULTIMO uein$i?a e% %io e%eeno inBera$o en %a ?o%aK DELANTERO ue in$i?a e%
@rier e%eeno $e %a ?o%a.
%,@ 2.3 C: ,9+ - : :+,
-
7/26/2019 TEMAS SIS2310.doc
28/282
Se iene un arreg%o COLA aBigna$o @ara a%a?enar %a ?o%aK ?on M @oBi?ioneB
$iB@oni#%eB.
Precondicin:Arreg%o (%i$oPoscondicin: Se iene ?on$i?in $e ?o%a (a?aINIC-COLAInicio D = 0 = DFin
PRO,AR SI LA COLA EST+ $AC9A
Precondicin: Arreg%o (%i$oPoscondicin: Si %a ?o%a eB (a?a reorna (er$a$eroK Bino a%Bo.ENTERO COLA_VACIA()Inicio Si (D = 0) Entonces RETORNA V Sino RETORNA F Fin-Si
Fin
ACCEDER A UN ELE&ENTO EN LA COLA
Precondicin:Arreg%o (%i$oPoscondicin: Se Ba?a en DATO e% e%eeno ue in$i?a DK Bino I eB a%Bo.ACCED-COLA(DATO,I)Inicio
I = V Si (NO COLA_VACIA()) Entonces DATO = COLA"D# Sino I = F Fin-SiFin
2
-
7/26/2019 TEMAS SIS2310.doc
29/282
INSERTAR UN ELE&ENTO EN LA COLA.
Se ?o%o?a DATO en e% no$o Biguiene a% %ioK ue$an$o ?oo %io. EB
@oBi#%e ue no Be @ue$a ha?er %a inBer?in $e#i$o a ue no ha eB@a?io. La(aria#%e I in$i?a Bi Be @u$o o no ha?er %a inBer?in.
Precondicin: 5ue eiBa %a ?o%aPoscondicin: La ?o%a ue$a ?on un e%eeno a$i?iona% DATOK ue ue$a?oo %io e%eeno $e %a ?o%aK o ha erina?in nora%.INSER-COLA(DATO,I)Inicio I = V
Si ( % &) Entonces I = F Sino Si (COLA_VACIA()) Entonces D = = D Sino = ' Fin-Si COLA"# = DATO
Fin-SiFin
ELI&INAR UN ELE&ENTO DE LA COLA.
Se e%iina e% e%eeno ue eB $e $e%anero en %a ?o%a.
Precondicin:5ue haa ?o%a.Poscondicin:Se e%iina e% @rier e%eeno $e %a ?o%aK Bi eiBeK BinoK I
a%Bo.ELI&-COLA(DATO,I)Inicio Si (COLA_VACIA()) Entonces I = F Sino D!to =Co$! "D#
23
-
7/26/2019 TEMAS SIS2310.doc
30/282
I = V Si (D == ) Entonces = 0 D = Sino D = D ' Fin-Si Fin-SiFin
DESTRUIR LA COLA
Precondicin: Co%a (%i$a.
Poscondicin: Co%a (a?a.DESTR-COLA(IP)Inicio I=V &ientr!s I Eec+te ELI&-COLA(DATO,I) R+tin!-s!(D!to) Fin-&Fin
". COLAS CIRCULARES.
O#Ber(eoB ue en e% nuera% aneriorK a% ha?er e%iina?ioneBK Be (a ?orrien$o
e% a@una$or DK %aB inBer?ioneB a#in (an $eB@%aan$o e% a@una$or UK
%%egan$o in?%uBo a ?on$i?ioneB $e Baura?inK ?uan$o ha eoria
$eB@er$i?ia$a. Una Bo%u?in a eBe in?on(eniene eB orar una ?o%a ?ir?u%ar.
EB $e?irK ha?er un aneo $e n$i?eB.
)0
-
7/26/2019 TEMAS SIS2310.doc
31/282
%,@ 2.4 D- / F U M U 1.
%,@ 2.! S, -9+ 9 ,95,9 ; +5,9.
LoB a%gorioB $e ini?ia?inK @rue#aK a??eBo $eBru??in $e %a ?o%a Bon
Bii%areB a %oB $e% ?aBo anerior. LoB $e inBer?in e%iina?in (ara @or %a
?on$i?in ini?ia%" U0 UDV @or %a ?on$i?in $e Baura?in" DU.
INSERCI8N EN COLA CIRCULAR
Aunue eB Bii%ar a% $e inBer?in en ?o%aB ?ouneBK Be $e#e ?onBi$erarK ?uan$o
U MK @ara en(iar%o a 0. Ta#in Be $e#e ener en ?uena %a nue(a ?on$i?in
$e Baura?in.
Precondicin:5ue haa ?o%a.
Poscondicin: D a@una a% nue(o no$oK Bi ha eB@a?ioK BinoK I a%Bo.INSER-COL-CIR(DATO,I)Inicio I = V Si (COLA_VACIA() Entonces D = . = COLA"# = DATO Sino = ' Si ( = &) Entonces
= Fin-Si Si (D=) Entonces I = F Sino COLA"# = DATO Fin-Si
)1
-
7/26/2019 TEMAS SIS2310.doc
32/282
Fin-SiFin
ELI&INAR EL NODO DELANTERO DE LA COLA
%,@ 2.6 () C9/,5,9 ,9,5,: 5+,5 () C9/,5,9 J,9: 9 K> :,
-
7/26/2019 TEMAS SIS2310.doc
33/282
Son u?haB %aB a@%i?a?ioneB $e eBaB %iBaB reBringi$aBK en eB@e?ia% en BiBeaB
o@erai(oBK ?o@i%a$oreB e iner@rea$oreB. aoB a ra#aar una a@%i?a?in
uni(erBa%K %a e(a%ua?in $e una e@reBin.
ALGORIT&O DE NOTACI8N INFI/A A POSFI/A
La gran aora $e %enguaeB re@reBena %aB e@reBioneB arii?aB en %a
%%aa$a ora INFIJAK en %a ?ua% %oB o@era$oreB Be en?uenran $enro $e %oB
o@eran$oB.
Ora anera $e ha?er%o eB uBan$o noa?in *OSFIJA o *OLACA. En eBe i@o
$e noa?in %oB o@era$oreB a@are?en $eB@uB $e %oB o@eran$oBK aB Be a?i%ia %a
e(a%ua?in $e %a e@reBin.
aoB a Bu@oner ue Be ienen %oB BiguieneB o@era$oreBK ?on BuB reB@e?i(aB
@riori$a$eB.
... O;e2ado2 P2io2idad
A7i6nacin 0S5 K & 1
&5lti;licacin%Di=i7in
X K Y 2
Potencia Z )
E% a%gorio ana%ia ?ar?er a ?ar?er %a e@reBin iniaK $e iuier$a a
$ere?ha Bigue e% Biguiene aneo"
1. To$oB %oB o@eran$oB @aBan $ire?aene a una ?o%a Ba%i$a.
2. LoB o@era$oreB (an a una @i%a. Su @oBi?in $e@en$e $e %oB ue haa en
e% o@e $e %a @i%a"
))
-
7/26/2019 TEMAS SIS2310.doc
34/282
Si e% o@era$or ue enraK iene o2 ;2io2idadue e% o@era$or
ue eB en e% o@e $e %a @i%aK Be ?o%o?a en e% o@e $e %a @i%a.
Si e% o@era$or ue enra eB $e ;2io2idad K &K XK YK Z.
CONDICIONES PARA LA E$ALUACION:1. Se Bu@one ue %a enra$a eB una e@reBin inia (%i$a.
2. LoB o@eran$oB ?onBiBen $e una Bo%a %era
). No Be eB@era %a enra$a $e ?onBaneB ni $e reeren?ia a un?ioneB
4. No $e#en a@are?er un?ioneB unariaB.
*re?on$i?in" ;ni?aene %oB ?ara?ereB a $eini$oB.*oB?on$i?in"ALORIT&O INF-A-POSF(/ c!en!)Inicio INICIA_PILA INICIA_COLA 1 =
)4
-
7/26/2019 TEMAS SIS2310.doc
35/282
&ientr!s (1 2 N) Eec+te En C!so /"1# Se!
3)3&ientr!s (PILA_TOPE() 2% 3(3 ) *!cer DATO=SP_PILA() ADD_COLA(DATO) Fin-&ientr!s DATO=SP_PILA() 3'3,3-3 343,353 363&ientr!s (Prior(/"1#)2=Prior(PILA_TOPE()) *!cer DATO=SP_PILA() ADD_COLA(DATO) Fin-&ientr!s ADD_PILA(/"1#) Si No
ADD_COLA(/"1#) Fin-C!so 1=1' Fin-&ientr!sTer7ineEntero Prior(c!r C!r!cter)Inicio En C!so c!r Se!
3(3 Retorn!r 0 3'3,3-3 Retorn!r
343,353 Retorn!r 8 363 Retorn!r 9 Si No Retorn!r 0 Fin-C!soFin
ALGORIT&O DE E$ALUACI8N EN NOTACI8N POSFI/A
En eBe ?aBo Be iene una e@reBin arii?a en noa?in @oBia Be en?uenra
en un arreg%o . Ca$a JHK J1K...N.K @ue$e Ber una %era o un o@era$or P K >K
&K XK YK H.
LoB o@eran$oB Be (an guar$an$o en una @i%a
LoB o@era$oreB "
)/
-
7/26/2019 TEMAS SIS2310.doc
36/282
o ha?en ue Be ee?ue eBa o@era?in enre %oB $oB no$oB
o@eran$oB ue Be engan en %oB no$oB Bu@erioreB $e %a @i%a.
o E% reBu%a$o Be guar$a en e% o@e $e %a @i%a.
ALGORITMO EAL&*OLCo7ience TOPE = 0 1 = &ientr!s NOT COLA_VACIA() Eec+te DATO=SP_COLA() EN CASO DATO SEA 3(3 3'3,3-3
343,353363 A/ = SP_PILA()
A/8 = SP_PILA(). A/9 = A/8 (DATO) A/ ADD_PILA(A/9) Si NO ADD_PILA(DATO)
FIN CASO Fin-&ientr!s
Ter7ine
54-------------------------------------------------------------CONVERTIR NA E/PRESION INFI:A A POSTFI:AEVALACION DE LA E/PRESION POSTFI:ASA&OS C'' DE BORLAND-------------------------------------------------------------45;inc$+e2conio
-
7/26/2019 TEMAS SIS2310.doc
37/282
c!se 5 c!se 4 ret+rn 8. c!se ' c!se - ret+rn . c!se ( ret+rn 0.
e!+$t ret+rn 0.
oi conertir(c!r G"#,c!r @"#) c!r @i$!"90#,c!"8#=3 3. int ci7!=0,@os=0.
strc@H(@,3 3). i$e(@os2str$en(G)) c!"0#=G"@os#. sitc(G"@os#)
c!se(@i$!"ci7!#=G"@os#.ci7!''.>re!. c!se)i$e(@i$!"ci7!-#J=()
ci7!--.
c!"0#=@i$!"ci7!#. strc!t(@,c!).
ci7!--. >re!.
c!se6 c!se5 c!se4 c!se' c!se-i$e(@riori(@i$!"ci7!-#)%= @riori(G"@os#))
ci7!--.
c!"0#=@i$!"ci7!#.strc!t(@,c!).
@i$!"ci7!#=G"@os#.ci7!''. >re!.
e!+$t c!"0#=G"@os#.
),
-
7/26/2019 TEMAS SIS2310.doc
38/282
strc!t(@,c!). i(G"@os'#20KKG"@os'#%) strc!t(@,3 3).
@os''.
i$e(ci7!%0) ci7!--. c!"0#=@i$!"ci7!#. strc!t(@,c!). $o!t e!$+!r(c!r @"#)
$o!t @i$!"90#,M,H,r. int ci7!=0,@os=0. c!r c!r"8#=3 3,n+7"0#. i$e(@os2str$en(@)) c!r"0#=@"@os#. sitc(@"@os#)
c!se 'c!se -
c!se 5c!se 4c!se 6ci7!--.
H=@i$!"ci7!#. ci7!--. M=@i$!"ci7!#. sitc (@"@os#) c!se'r=M'H.>re!. c!se-r=M-H.>re!. c!se4r=M4H.>re!.
c!se5r=M5H.>re!. c!se6r=@o(M,H).>re!. @i$!"ci7!#=r. ci7!''. >re!.e!+$t
)
-
7/26/2019 TEMAS SIS2310.doc
39/282
strc@H(n+7,3 3). i$e (@"@os#%=0 @"@os#2=) c!r"0#=@"@os#. strc!t(n+7,c!r). @os''.
@i$!"ci7!#=!toi(n+7). ci7!''.
@os''. ci7!--. ret+rn @i$!"ci7!#.
oi 7!in() c$rscr(). c!r G"90#,@"90#. @rint(3ntt444EVALAR E/PRESIONES INFI:AS444n3). @rint(3nttIn?rese +n! eM@resion INFI:A Q = 3).?ets(G). conertir(G,@). @rint(3ttL! EM@resion POSFI:A e Q es P = s3,@). @rint(3nttRes+$t!o es R = 3,e!$+!r(@)). ?etc().
55-------------------------------------------------------------;@r!?7! rsto@54-------------------------------------------------------------CONVERTIR NA E/PRESION INFI:A A POSTFI:AEVALACION DE LA E/PRESION POSTFI:ASA&OS C'' BILDER-------------------------------------------------------------45;inc$+e 2G+e+e
-
7/26/2019 TEMAS SIS2310.doc
40/282
;inc$+e27!t
-
7/26/2019 TEMAS SIS2310.doc
41/282
c!se' c!se-i$e(@riori(@i$!re!.
e!+$t c!r=G"@os#. @
-
7/26/2019 TEMAS SIS2310.doc
42/282
c!se'r=M'H.>re!. c!se-r=M-H.>re!. c!se4r=M4H.>re!. c!se5r=M5H.>re!.
c!se6r=@o(M,H).>re!. @i$!re!.e!+$t strc@H(n+7,3 3). n+7"0#=c!r. @i$!
-
7/26/2019 TEMAS SIS2310.doc
43/282
1 G
2 G
) G
4 G / GA
GA &
, GA' &
GA'&
3 GA'& X
10GA'&C X
11GA'&CX 12GA'&CX >
1)GA'&CX >
14GA'&CXD >
1/GA'&CXD >Y
1GA'&CXD >Y
1,GA'&CXDE >Y
1GA'&CXDE >YZ13GA'&CXDEF >YZ
20GA'&CXDEFZ >Y
21GA'&CXDEFZY >
22GA'&CXDEFZY>
2)GA'&CXDEFZY>
2. E(a%ua?in $e %a noa?in *oBiaK $on$e A4K '1K C/K D4 K E2K F/
X COLA PILA
1 G G
2 G A G 4
) G A ' G 4 1
4)
-
7/26/2019 TEMAS SIS2310.doc
44/282
4 G ) G )
/ G ) C G ) /
G 1/ G 1/
, G 1/ D G 1/ 4 G 1/ D E G 1/ 4 2
3 G 1/ D E F G 1/ 4 2 /
10G 1/ D )2 G 1/ 4 )2
11G 1/ 2 G 1/ 2
12G 1, G 1,
1)1, 1,
44
-
7/26/2019 TEMAS SIS2310.doc
45/282
4/
-
7/26/2019 TEMAS SIS2310.doc
46/282
TE&A
4
-
7/26/2019 TEMAS SIS2310.doc
47/282
4,
-
7/26/2019 TEMAS SIS2310.doc
48/282
ARCHIVOS, REGISTROS YCAMPOS
O,/ETI$OS
EBru?urar %a inora?in ?on e% Bo@ore un$aena% @ara e% a%a?enaieno
eerno $e $aoB.
A@ro(e?har $e una ora ei?iene e% e$io $e a%a?enaieno Be?un$ario $e
$aoB.
CONTENIDO
).1 Ar?hi(oB
).2 Ti@oB $e Ar?hi(oB
).) O@era?ioneB Bo#re Ar?hi(oB
).4 RegiBroB Ca@oB
. ARC#I$OS
Un ar?hi(o eB un ?onuno $e regiBroB re%a?iona$oB enre BK ue oran una
eni$a$K ue Be @ue$e i$enii?ar ani@u%ar $e o$o uniario.
Un ar?hi(o a%a?ena gran$eB (o%eneB $e inora?in en uni$a$eB eernaB
F%o@@K DK CinaB K e?.H.
." TIPOS DE ARC#I$OS.
ARC#I$OS SECUENCIALES.
4
-
7/26/2019 TEMAS SIS2310.doc
49/282
Son aue%%oB en %oB ue %oB regiBroB Be gra#an unoB a ?oninua?in $e oroB
e% a??eBo a un regiBroB $eerina$oK ne?eBia oroBaene e% @aBo @or o$aB
%oB regiBroB anerioreB.
ARC#I$OS DIRECTOS.
Son aue%%oB en %oB ue %oB regiBroB Be @ue$en %o?a%iar e$iane una
$ire??in. E% a??eBo a %oB regiBroB eB $ire?o.
. OPERACIONES SO,RE ARC#I$OS.
C2eacin.ConBiBe en %a gra#a?inK @or @riera (eK en un Bo@ore $e %oB
regiBroB $e un $eerina$o ar?hi(o.
A;e2t52a > Cie22e.Un ar?hi(o $e#e @oBeer %aB ?on$i?ioneB ne?eBariaB @ara Ber
a#ieroK ani@u%arBe ener a??eBo a %oB regiBroB. *ara e(iar $eerioroB $e
inora?in e% ar?hi(o eB ?erra$o $urane e% ie@o ue no Be ui%ia no $e#e
@eriir Bu a??eBo.,o22ado.EB %a e%iina?in $e o$o e% ar?hi(oK Be @ue$e ha?er @rohi#ien$o
$einii(aene Bu a??eBo o $eBruen$o %a inora?in ue ha en e%.
O2dena
-
7/26/2019 TEMAS SIS2310.doc
50/282
Concatenacin.ConBiBe en o#ener $e $oB ar?hi(oBK ?on %a iBa eBru?uraK
un ar?hi(o ue ?onenga a#oBK $e anera ue ue$en uno a ?oninua?in $e%
oro.
Inte27eccin. ConBiBe en orar un ni?o ar?hi(o e$iane %oB regiBroB
?ouneB $e $oB ar?hi(oB $iBinoB.
F5ncin o Inte2calacin.L%aa$a e?%aK ?onBiBe en o#ener $e $oB ar?hi(oB
or$ena$oB @or un iBo ?a@o ?on %a iBa eBru?uraK oro ar?hi(o ue
?onenga %oB regiBroB $e a#oB anenga Bu or$ena?in.
Pa2ticin. ConBiBe en $i(i$ir un ar?hi(o en $oBK $e a?uer$o a a%guna?ara?erBi?a $eerina$a $e BuB regiBroB.
Co
-
7/26/2019 TEMAS SIS2310.doc
51/282
$e eoria ue ne?eBia @ara Bu a%a?enaieno. E% ?a@o Be @ue$e $i(i$ir
en Bu#?a@oB.
TIPOS DE REGISTROS
Re6i7t2o L6ico.
Ca$a uno $e %oB ?o@oneneB $e un ar?hi(o ue @oBee una eBru?ura @ara
a%a?enar inora?in reerene a un ea genera% $e% ar?hi(o. DiBe!a$o @or
e% @rograa$or.
Re6i7t2o F7ico.Inora?in ue e% BiBea @ue$e ranBerir ?oo una uni$a$K en una Bo%a
o@era?in $e enra$a o Ba%i$a.
RegiBroB Begn %a %ongiu$ $e BuB ?a@oB"
Re6i7t2o7 de Lon6it5d Fi4a.
Su aa!o no (ara. En ?uano a Bu eBru?ura inernaK e% regiBro @ue$e
ener e% iBo nero $e ?a@oB $e igua% %ongiu$ ?a$a unoK o $i(erBo
nero $e ?a@oB $e $iereneB %ongiu$eB. En a#oB ?aBoB %a Bua $e
%aB %ongiu$eB $e %oB ?a@oB eB %a iBa @ara ?a$a regiBro.
Re6i7t2o7 de Lon6it5d $a2iaBle.
Su aa!o (ara $e un regiBro a oro. Su %ongiu$ (aria#%e @ue$e eBar
$eerina$a @or un (a%or io o a#in Bin ninguna %iia?in.
Enre %aB agru@a?ioneB eBru?ura$aB $e regiBroB Be ienen %oB ar?hi(oB
$e $aoB %aB #aBeB $e $aoB.
/1
-
7/26/2019 TEMAS SIS2310.doc
52/282
OPERACIONES SO,RE REGISTROS.
Au Be ana%ian %aB o@era?ioneB ue Bo%o ae?an a a%gunoB regiBroB. To$aB
eBaB o@era?ioneB ne?eBian %a o@era?in $e #Bue$a ?oo @re%iinar @ara%o?a%iar %oB regiBroB $eBea$oB.
Re?u@era?in ConBu%aB LiBa$oBH. ConBiBe en a??e$er a %oB regiBroB $e un
ar?hi(o @ara o#ener una inora?in $eerina$aK a%a?ena$a en e%.
ConBu%aB" Se a??e$e a uno o (arioB regiBroB $eerina$oB $e un
ar?hi(o Be (iBua%ia e% ?oneni$o $e BuB ?a@oBK @or i@reBora o
@ana%%a.
LiBa$oB" La (iBua%ia?in $e %a inora?in eB una %iBa or$ena$a.
A?ua%ia?in o Maneniieno. ConBiBe en inro$u?ir nue(oB $aoB en e%
ar?hi(o o en e%iinar o o$ii?ar %oB a eiBeneB.
InBer?ioneB" Se inro$u?en uno o (arioB regiBroB en un ar?hi(oK a
?rea$oK a% ina% o en ?ua%uier %ugar $e% iBo. 'orra$oB" Se e%iinan uno o (arioB regiBroB $e% ar?hi(oK #orran$o Bu
?oneni$o $einii(aene o @rohi#ien$o Bu a??eBo.
Mo$ii?a?ioneB" ConBiBe en ?a#iar %oB $aoB $e uno o (arioB ?a@oB
$e ?ua%uier regiBro $e ar?hi(o.
CA&POS.LoB ?o@oneneB $e un regiBro Be $enoinan ?a@oBK %oB ?a@oB Bon %oB
ari#uoB $e %oB o#eoB $e eBu$ioK ?a$a ?a@o iene %oB BiguieneB ari#uoB.
/2
-
7/26/2019 TEMAS SIS2310.doc
53/282
No#re i$enii?a$or H $e ?a@o ue eB e%egi$o @or e% @rograa$or.
Coneni$o o (a%or.
U#i?a?in $enro $e% regiBro. Longiu$ o $ienBin.
TIPOS DE CA&POS.
EiBen reB i@oB $e ?a@oB
Longiu$ ia.
Longiu$ (aria#%e
Ca@oB %i@%eB
CA&POS DE LONGITUD FI/A.
LoB ?a@oB $eini$oB $e eBa anera Bon a%a?ena$oB en eoria ?on una
%ongiu$ ia $e $aoBK Bin i@orar Bi Be rea%ia e% uBo @ar?ia% o ?o@%eo $e%?a@o
CA&POS DE LONGITUD $ARIA,LE.
Se rea%ia eBe i@o $e $eini?in $e ?a@oB $e %ongiu$ (aria#%eK ?on e%
o#ei(o @rin?i@a% $e ahorro $e eoriaK a ue ?on ?a@oB $e %ongiu$ ia Be
rea%ia un $eB@er$i?io $e eoria.
*ara %a i@%eena?in $e eBe i@o $e ?a@oB Be %o rea%ia ?on ar?hi(oB $e
i@o eo.
EiBen $oB e?aniBoB $e i@%eena?in"
/)
-
7/26/2019 TEMAS SIS2310.doc
54/282
USO DE DELI&ITACIONES
DELIMITADOR DE CAMPOS
EiBe un B#o%o eB@e?i?o @ara $e%iiar %oB ?a@oB K V XH
DELIMITADOR DE REGISTROS S#o%o $ierene a% $e%iia$or $e ?a@o.
Ee@%o"
]CLAUDIAK 'ALLII+N^ 1,K SIS&2204K SIS&110)]ANAK LA *A7^1,KSIS&110)K MAT& 220,
SU,CA&PO DE LONGITUDRegiBro ?on un nuero ?onBane $e ?a@oB.
Ee@%o "
( CLAUDIAK - 'ALLII+NK " 1,K SIS&2204K SIS&110)K MAT& 220,
*ara $iBinguir a%gunoB regiBroB ue ?onienen %oB iBoB ?a@oB Be re?urre
a un ?a@o ue ?oniene inora?in ni?a o $ierene ue Be %e %%aa ?%a(e.
/4
-
7/26/2019 TEMAS SIS2310.doc
55/282
//
-
7/26/2019 TEMAS SIS2310.doc
56/282
TE&A '
/
-
7/26/2019 TEMAS SIS2310.doc
57/282
/,
-
7/26/2019 TEMAS SIS2310.doc
58/282
TRATAMIENTO DE ARCHIVOS
O,/ETI$OSDeBarro%%ar %aB o@era?ioneB #Bi?aB Bo#re %a inora?in a%a?ena$a en un
e$io Be?un$ario.
DeBarro%%ar nue(oB e?aniBoB $e @ro?eBaieno $e a?uer$o a %aB
?ara?erBi?aB $e% @ro#%ea.
CONTENIDO
4.1 Inro$u??in
4.2 O@era?ioneB en Ar?hi(oB
4.) *ari?in $e Ar?hi(oB
4.4 Me?%aB $e Ar?hi(oB
4./ Mo$oB Or$ena?in Eerna
'. INTRODUCCION
Un ar?hi(o eB una ?o%e??in $e regiBroBK $on$e ?a$a regiBro eB ?onora$o
@or un ?onuno $e ?a@oB.
E% o#ei(o @rin?i@a% $e% Biguiene ea eB rea%iar %aB BiguieneB o@era?ioneB
@ara e% raaieno $e ar?hi(oB"1. A%a?enaieno $e inora?in.
2. Re?u@era?in $e inora?in.
). A?ua%ia?in $e %a inora?in.
/
-
7/26/2019 TEMAS SIS2310.doc
59/282
Se ha?e naBiB en %a re?u@era?in $e %a inora?inK $e#i$o a ue eBa eB
i@reB?in$i#%e @ara e% uBuarioK @ara ?onar ?on inora?in en ora
ine$iaaK @ara %o ?ua% Be o?a e% ea $e o$oB $e or$ena?in eerna.
'." OPERACIONES SO,RE ARC#I$OS
LaB o@era?ioneB #Bi?aB Bo#re ar?hi(oB Bon"
1. A$i?in $e $aoB
2. E%iina?in $e $aoB
). ConBu%aB4. 'Bue$aB
EiBen oraB o@era?ioneB ?o@%eaBK %aB ?ua%eB Bon"
1. *ari?in $e Ar?hi(oB
2. Me?%a o uBin $e Ar?hi(oB
EBaB %iaB Bon o@era?ioneB aui%iareBK ne?eBariaB @ara %oB o$oB $e
or$ena?in eerna.
ADICION DE DATOS
Una $e %aB areaB B ?ouneB en ar?hi(oB eB %a a$i?in $e $aoBK Be @ue$e
a!a$ir $aoB $e $oB aneraB a un ar?hi(o"
1. A$i?in $e $aoB en $eBor$en
2. Manenien$o e% or$en $e% ar?hi(o
ADICION DE DATOS EN DESORDEN 0al ?inal1.
*aBoB a rea%iar @ara a!a$ir un regiBro en un ar?hi(o"
/3
-
7/26/2019 TEMAS SIS2310.doc
60/282
1. Leer Dao.
2. 'uB?ar Dao en e% Ar?hi(o.
). Si eiBe enon?eB"
oBrar _ 9a EiBe _.
Si no "A!a$ir e% $ao a% ina% $e% Ar?hi(o
ADICION DE DATOS EN ORDEN
*ara a!a$ir un regiBro anenien$o e% or$en $e% ar?hi(oK eB ne?eBario e% uBo $e
un ar?hi(o aui%iar.
Se $e#en Beguir %oB BiguieneB @aBoB"
1. Leer e% DATO a inBerar.
2. Co@iar %oB $aoB a% ar?hi(o Au ienraB Reg P 10
0
-
7/26/2019 TEMAS SIS2310.doc
61/282
). InBerar e% Dao a% ar?hi(o Au
4. Co@iar %oB $aoB reBaneBK a% ar?hi(o Au
/. E%iinar e% ar?hi(o F
. Reno#rar e% ar?hi(o Au a F
,. A#rir e% ar?hi(o F
ELI&INAR DATOS
Se @ue$e e%iinar $aoB $e $oB aneraB"
1. E%iinar %gi?aene
1
-
7/26/2019 TEMAS SIS2310.doc
62/282
2. E%iinara Bi?aene
ELI&INAR DATOS F9SICA&ENTE
En eBe i@o $e e%iina?in eB ne?eBario uBar un ar?hi(o Aui%iarK @or %o ue
eBe @ro?eBo eB %enoK @or %o ano no eB uBa$o ?on re?uen?ia.
*aBoB a rea%iar @ara e%iinar Bi?aene un regiBro $e un ar?hi(o Bon"
1. Leer $e% Dao a E%iinar
2. Co@iar %oB $aoB $e% ar?hi(o F a% ar?hi(o Au ienraB Reg PQ Dao
). E%iinar e% Ar?hi(o F
4. Reno#rar e% ar?hi(o Au a F/. A#rir e% ar?hi(o F
ELI&INAR DATOS LOGICA&ENTE
EBe i@o $e e%iina?in ahorra ie@o ?uan$o Be uBa gran$eB (o%eneB $e
inora?in.
9a ue Be ?uena ?on un ?a@o a$i?iona%K ue @erie ar?ar e% regiBro ?oo
e%iina$o.
2
-
7/26/2019 TEMAS SIS2310.doc
63/282
Mu?haB a@%i?a?ioneB uBan @rieraene %a e%iina?in %gi?aK a% ina%iar e%
$a ui%ian %a e%iina?in $e Bi?a. EBo @or Ber B r@i$a %a e%iina?in
%gi?a ue %a e%iina?in Bi?a.
CONSULTAS DE DATOS
Se re?u@era %a inora?in Bin a%erar e% eBa$o $e% regiBroK @ara %o ?ua% $e#e
eiBir un ?rierio $e Be%e??in $e %a inora?in.
CRITERIOS DE SELECCI8N
CONSULTA SI&PLE:
Cuan$o %a ?%a(e $e% regiBro eB eB@e?i?a ha?e reeren?ia a un Bo%o regiBr.
&ientr!s no eo (F) H re? 2= c$!e !cer
Leer (F,re?)SI No7>re = Veronic! ENTONCES
-
7/26/2019 TEMAS SIS2310.doc
64/282
&ientr!s no eo (F) H re? 2= c$!e !cerLeer (F,re?)SI Edad > 17ENTONCES
-
7/26/2019 TEMAS SIS2310.doc
65/282
,SUEDA SECUENCIAL EN UN ARC#I$O ORDENADO
Se rea%ia e% re?orri$o $e %oB regiBroB $e ar?hi(o haBa e% in?u@%iieno $e
una ?on$i?in o ue ina%i?e e% ar?hi(o.Ee@%o" Rea%iar %a #Bue$a $e% regiBroK $on$e Dao_MARIA_.
BsG+e!Sec+enci!$Oren
InicioLeer C$!e
A>rir (F,Lect+r!)Leer (F,re?)&ientr!s no eo (F) H re? 2= c$!e !cer
Leer (F,re?)
Fin 7ientr!sSi re? == c$!e Entonces
&ostr!r 3 EMiste e$ !to3Si no
&ostr!r 3No eMiste e$ !to3Fin siCerr!r (F)
Fin
,SUEDA SECUENCIAL EN UN ARC#I$O DESORDENADO
Se rea%ia e% re?orri$o $e %oB regiBroB haBa en?onrar e% regiBro o haBa ue Be
ina%i?e e% ar?hi(o.
Ee@%o" Rea%iar %a #Bue$a $e% regiBroK $on$e Dao_MARIA_.
/
-
7/26/2019 TEMAS SIS2310.doc
66/282
BsG+e!Sec+enci!$Desoren
InicioLeer D!to
A>rir (F,Lect+r!)Leer (F,re?)&ientr!s no eo (F) H re? 2% c$!e !cer
Leer (F,re?)Fin 7ientr!sSi re? == c$!e Entonces
&ostr!r 3 EMiste e$ !to3Si no
&ostr!r 3No eMiste e$ !to3Fin siCerr!r (F)
Fin
'. PARTICION DE ARC#I$OS
A @arir $e un ar?hi(o Be genera $oB o B ar?hi(oB $e ra#ao
EiBen reB i@oB $e @ari?in $e ar?hi(oB"
-
7/26/2019 TEMAS SIS2310.doc
67/282
1. *ari?in @or e% ?oneni$o
2. *ari?in @or una Be?uen?ia _ * _ $a$a.
). *ari?in @or Be?uen?iaB or$ena$aB.
PARTICION POR CONTENIDO
Se $e#e eBa#%e?er un ?rierio $e @ari?inK @ara $eerinar ue regiBroB $e F1
Be $eBinan a% ar?hi(o F2K $on$e e% ar?hi(o F1 eB Bo%o %e?ura e% ar?hi(o F2 eB
Bo%o @ara eB?riura.
Ee@%o" Crear un ar?hi(o %%aa$o CARRERA Be%e??ionan$o C%a(e _SIS_
$e% Ar?hi(o FNI.
*ari?inConeni$oInicio
Leer C$!eA>rir FNI (Lect+r!)A>rir C!rrer! (Escrit+r!)&ientr!s no eo (FNI) *!cer
Leer (FNI, Re?)Si Re? = C$!e Entonces
r!>!r (C!rrer!, Re?)Fin si
Fin &ientr!sCerr!r (FNI)Cerr!r (C!rrer!)
Fin
,
-
7/26/2019 TEMAS SIS2310.doc
68/282
PARTICION POR UNA SECUENCIA P DADA
Se eBa#%e?e un nuero enero * ue n$i?a %aB Be?uen?iaB @ara rea%iar %a
@ari?in. Se ?o@ia _*_ regiBroB $e Ar?h a Ar?h1K %uego %oB BiguieneB _*_regiBroB $e Ar?h a Ar?h2K eBo Be re@ie haBa erinar $e %eer e% ar?hi(o Ar?h
Ee@%o"
Rea%iar %a @ari?in $e% ar?hi(o ARC en $oB ar?hi(oB ARC1 ARC2K
ui%ian$o %a Be?uen?ia $e @ari?in * 2H.
P!rticionSec+enci!P
InicioLeer (P)A>rir Arc(Lect+r!)A>rir Arc(Escrit+r!)A>rir Arc8(Escrit+r!)&ientr!s no eo (Arc) *!cer
Co@i!r_Sec+enci!P(Arc, Arc, P)Si no eo (Arc) Entonces
Co@i!r_Sec+enci!P(Arc, Arc8, P)
Fin siFin &ientr!sCerr!r (Arc). Cerr!r (Arc).Cerr!r (Arc8)
FinCo@i!r_Sec+enci!P (V!r M, H Arcio. P entero)Inicio
Cont = 0
-
7/26/2019 TEMAS SIS2310.doc
69/282
&ientr!s (no eo (M)) H (cont 2 P ) *!cerLeer (M, Re?)r!>!r (H, Re?)Cont = Cont '
Fin 7ientr!sFin
PARTICI8N DE ARC#I$OS POR TRA&OS ORDENADOS
Se oa un rao or$ena$o $e% ar?hi(o C Be ?o@ia a% ar?hi(o AK %uego Be
oa oro rao or$ena$o @ara ?o@iar%o a% ar?hi(o ' eBe @ro?eBo Be re@ie
haBa ue ina%i?e $e %eer o$o e% ar?hi(o C.
Ee@%o" *ari?ionar e% ar?hi(o C en A '
P!rticionTr!7osOren!os
InicioA>rir A (Lect+r!)A>rir B (Lect+r!)A>rir C (Escrit+r!)&ientr!s no eo (C) *!cer
Co@i!r_Tr!7o (C, A )Si no eo (C) Entonces
Co@i!r_Tr!7o (C, B )Fin si
Fin &ientr!sCerr!r (A).Cerr!r (B).Cerr!r (C)
FinCo@i!r_Tr!7o (V!r M, H Arcio)
3
-
7/26/2019 TEMAS SIS2310.doc
70/282
Inicio*!cer
Co@i!r_D!to ( M, H )&ientr!s not Fin_Tr!7o
FinCo@i!r _D!to ( V!r M, H Arcio)Inicio
Si eo (M) EntoncesFin_Tr!7o = TRE
Si noLeer (M, Re?)r!>!r (H, Re?)
Pos = Fi$e Pos (M)Leer (M, Re?)Si eo (M) Entonces
Fin_Tr!7o = TRESi no
See (M, Pos)Fin_Tr!7o = Re? % Re?
Fin siFin si
Fin
'.' &ECLAS DE ARC#I$OS
E% @ro?eBo $e unir $oB o B ar?hi(oB Be %e $enoina e?%a $e ar?hi(oB.
EiBen reB i@oB a% igua% ue en @ari?ioneB"
1. Me?%a @or Coneni$o Toa%.
2. Me?%a @or Se?uen?iaB 6 * 6.
). Me?%a @or Se?uen?iaB Or$ena$aB.
,0
-
7/26/2019 TEMAS SIS2310.doc
71/282
&ECLA POR CONTENIDO TOTAL
A% e?%ar 2 ar?hi(oBK Be @ue$en @reBenar 2 ?aBoB ue %oB ar?hi(oB a e?%ar
Be en?uenren $eBor$enK o ue %oB ar?hi(oB a e?%ar Be en?uenren en or$en.
ARC#I$OS EN DESORDEN
Se @ro?e$e a %a unin $e $oB ar?hi(oB AK ' en un ar?hi(o CK eBe @ro?eBo Be %oB
rea%ia ?o@ian$o o$a %a inora?in $e A a% C @oBeriorene ' a% C.
Ee@%o" Me?%ar %oB Ar?hi(oB AK ' en un er?er ar?hi(o C.
&ec$!ArcioDesoren
InicioA>rir A (Lect+r!)A>rir B (Lect+r!)A>rir C (Escrit+r!)&ientr!s no eo (A) *!cer
Leer (A, Re?)r!>!r (C, Re?)
Fin &ientr!s
&ientr!s no eo (B) *!cerLeer (B, Re?)r!>!r (C, Re?)
Fin &ientr!sCerr!r (A)Cerr!r (B)Cerr!r (C)
Fin
,1
-
7/26/2019 TEMAS SIS2310.doc
72/282
ARC#I$OS EN ORDEN
Se @ro?e$e a %a unin $e $oB ar?hi(oB AK ' en un ar?hi(o CK eBe @ro?eBo Be %oB
rea%ia @rieraene ?o@aran$o un $ao $e% ar?hi(o A un $ao $e% ar?hi(o'K e% $ao enor Be a%a?ena en e% ar?hi(o C.
Ee@%o" Me?%ar %oB Ar?hi(oB AK ' en un er?er ar?hi(o C.
&ec$!ArcioOren
InicioA>rir A (Lect+r!)A>rir B (Lect+r!)A>rir C (Escrit+r!)
&ientr!s no eo(A) H no eo(B) *!cerPosA = Fi$ePos(A).Leer(A, Re?A).See (A, PosA)
PosB = Fi$ePos(B).Leer(B, Re?B).See (B, PosB) Si Re?A 2 Re?B Entonces
Leer (A, Re?) r!>!r (C, Re?)
Si noLeer (B, Re?)
r!>!r (C, Re?)Fin si
Fin &ientr!s&ientr!s no eo (A) *!cer
Leer (A, Re?)r!>!r (C, Re?)Fin &ientr!s&ientr!s no eo (B) *!cer
Leer (B, Re?)r!>!r (C, Re?)
Fin &ientr!sCerr!r (A)
,2
-
7/26/2019 TEMAS SIS2310.doc
73/282
Cerr!r (B)Cerr!r (C)
Fin
&ECLA POR SECUENCIAS PSe eBa#%e?e un nuero enero _*_K ue in$i?a %aB Be?uen?iaB @ara rea%iar %a
e?%a $e $oB ar?hi(oB. E% reBu%a$o $e %a e?%a eB una Be?uen?ia or$ena$a $e
$aoB. Ee@%o" Rea%iar %a Me?%a $e AK ' en un er?er ar?hi(o CK ui%ian$o
%aB Be?uen?iaB * 2 @ara rea%iar $i?ha o@era?in.
&ec$!DeArciosPorSec+enci!sPInicioLeer (P)A>rir A (Lect+r!)
A>rir B (Lect+r!) A>rir C (Escrit+r!)
&ientr!s no eo (A) H no eo (B) *!cer&ec$!r_SecP
Fin &ientr!s&ientr!s no eo (A) *!cer
Co@i!r_SecP (A, C, P)Fin &ientr!s&ientr!s no eo (B) *!cer
Co@i!r_SecP (B, C, P)Fin &ientr!s
Cerr!r (A)Cerr!r (B)
,)
-
7/26/2019 TEMAS SIS2310.doc
74/282
Cerr!r (C)Fin&ec$!r_SecPInicio SecA =0. SecB=0
Re@etirPosA = Fi$ePos(A).Leer(A, Re?A).See (A, PosA)PosB = Fi$ePos(B).Leer(B, Re?B).See (B, PosB)
Si Re?A 2 Re?B EntoncesCo@i!r_SecP (A, C,P)SecA=SecA'Si SecA=P Entonces
Co@i!r_SecP (B, C,P-SecB)SecB =P
Fin SiSi no
Co@i!r_SecP (B, C,P)SecB=SecB'Si SecB=P Entonces
Co@i!r_SecP(A, C,P-SecA)SecA =P
Fin siFin si
*!st! SecA=P H SecB=P
FinCo@i!r_SecP (V!r M, H Arcio. P Entero)Inicio
Cont = 0&ientr!s no eo (M) H Cont 2 P *!cer
Leer (M, Re?). r!>!r (H, Re?)Cont = Cont '
Fin &ientr!sFin
&ECLA POR TRA&OS ORDENADASSe rea%ia %a e?%a %oB ar?hi(oB A ' en e% ar?hi(o CK oan$o raoB
or$ena$oB. EB $e?ir Be rea%ia %a e?%a $e% @rier rao or$ena$o $e A ?on %a
,4
-
7/26/2019 TEMAS SIS2310.doc
75/282
$e '. Ee@%o" Rea%iar %a e?%a A ' en un er?er ar?hi(o CK ui%ian$o %aB
Be?uen?iaB or$ena$aB.
&ec$!DeArciosPorTr!7osOren!os
InicioA>rir A (Lect+r!)A>rir B (Lect+r!)A>rir C (Escrit+r!)&ientr!s no eo (A) H no eo (B) *!cer
&ec$!r_Tr!7oFin &ientr!s&ientr!s no eo (A) *!cer
Co@i!r_Tr!7o (A, C)Fin &ientr!s&ientr!s no eo (B) *!cer
Co@i!r_Tr!7o (B, C)Fin &ientr!sCerr!r (A)
Cerr!r (B) Cerr!r (C)Fin&ec$!r_Tr!7oInicio
Re@etir
PosA = Fi$ePos (A)Leer (A, Re?A)
See (A, PosA)
PosB = Fi$ePos (B) Leer (B, Re?B) See (B, PosB)
,/
-
7/26/2019 TEMAS SIS2310.doc
76/282
Si Re? 2 Re?8 EntoncesCo@i!r_D!to (A, C)Si Fin_Tr!7o Entonces
Co@i!r_Tr!7o (B, C)Fin Si
Si noCo@i!r_D!to (B, C)Si Fin_Tr!7o Entonces Co@i!r_Tr!7o (A, C)Fin si
Fin si *!st! Fin _Tr!7oFinCo@i!r_Tr!7o ( V!r M, H Arcio)Inicio
Re@etirCo@i!r_D!to (M, H)
*!st! Fin_Tr!7oFinCo@i!r_D!to (V!r M, H Arcio)Inicio
Si eo (M) Entonces Fin_Tr!7o = TRESi no
Leer (M, Re?)
r!>!r (H, Re?)Si eo (M) EntoncesFin_Tr!7o = TRE
Si noPos = Fi$e Pos (M)
Leer (M, Re?) See (M,Pos)
Fin_Tr!7o = Re? % Re?Fin si
Fin siFin
'.) ORDENACI8N EXTERNA
De#i$o a %a %iia?in en eoria inerna a %a enore inora?in ue eB
a%a?ena$a en %oB ar?hi(oBK no eB @oBi#%e ui%iar %oB o$oB $e or$ena?in
,
-
7/26/2019 TEMAS SIS2310.doc
77/282
inerna. *ara %o ?ua% eiBen $iBinoB o$oB $e or$ena?in eerna e?%uBi(oB
ue Bon %aB BiguieneB"
Or$ena?in @or Me?%a Dire?a.
Or$ena?in on Ne`an.
Or$ena?in @or Me?%a Eui%i#ra$a.
Or$ena?in @or DgioB.
To$oB eBoB o$oB ha?en e% uBo $e ar?hi(oB aui%iareBK @ara rea%iar e%
@ro?eBo $e or$ena?in $e ar?hi(oB.
ORDENACI8N POR &ECLA DIRECTA
E% o$o Bo%o un?iona ?on ar?hi(oB $on$e Bu %ongiu$ Bea %i@%o $e 2nK
ha?e e% uBo $e %oB BiguieneB ar?hi(oB"
C Ar?hi(o a or$enar
AK' Ar?hi(oB aui%iareB
Se $e#en Beguir %oB BiguieneB @aBoB @ara or$enar"
1. *arir e% ar?hi(o C en %a ia$K ?o@iar %a @riera ia$ $e% ar?hi(o C en
e% ar?hi(o AK %a ora ia$ en e% ar?hi(o '.
2. Me?%ar %oB ar?hi(oB aui%iareB A ' @or Be?uen?iaB $e 2n. Don$e" n
0K1K2K)...
). Re@eir %oB @aBoB 1 2 haBa ue %a Be?uen?ia Bea aor ue %a ia$
$e% ar?hi(o a or$enar Be?uen?ia2nbQ %ongCHY2H
Ee@%o" Or$enar %oB BiguieneB $aoB.
,,
-
7/26/2019 TEMAS SIS2310.doc
78/282
Oren!cionPor&ec$!Direct!
InicioSec = A>rir C (Lect+r!)Re@etir
A>rir B (Escrit+r!)
A>rir A (Escrit+r!)See (C, 0)P!rticion!rSee (A, 0). See (B, 0). See (C, 0)&ec$!rCerr!r A. Cerr!r BSec = Sec 4 8
*!st! Sec % (Fi$esie (C) Di 8)
,
-
7/26/2019 TEMAS SIS2310.doc
79/282
Cerr!r CFinP!rticion!rInicio
&!M = Fi$esie (C) Di 8P!r! : = *!st! &!M *!cer
Leer C, Re?r!>!r A, Re?
Fin P!r!P!r! : = *!st! &!M *!cer
Leer C, Re?r!>!r B, Re?
Fin P!r!Fin&ec$!r
Inicio&ientr!s no eo (A) H no eo (B) *!cer
&ec$!r_SecFin &ientr!s
Fin&ec$!r_SecInicio
SecA = 0. SecB = 0Re@etir
PosA = Fi$ePos (A). Leer A, Re?A. See (A, PosA)
PosB = Fi$ePos (B). Leer B, Re?B. See (B, PosB) Si Re?A 2 Re?B EntoncesLeer A, Re?
r!>!r C, Re?SecA =SecA ' Si SecA = Sec Entonces
Co@i!r_SecP (B, C, Sec-SecB).SecB = Sec
Fin siSi no
Leer B, Re?r!>!r C, Re?
SecB = SecB ' Si SecB = Sec Entonces
Co@i!r_SecP (A, C, Sec-SecA).SecA = Sec
Fin siFin si
,3
-
7/26/2019 TEMAS SIS2310.doc
80/282
*!st! (SecA = Sec) H (SecB = Sec)FinCo@i!r_SecP (V!r M, H Arcio. Sec Entero)Inicio
Cont = 0&ientr!s no eo (M) H (Cont 2 Sec) *!cer
Leer (M, Re?)r!>!r (H, Re?)Cont = Cont '.
Fin &ientr!sFin
ORDENACI8N POR $ON NE&AN
E% o$o Bo%o un?iona ?on ar?hi(oB $on$e Bu %ongiu$ Bea %i@%o $e 2nKha?e e% uBo $e %oB BiguieneB ar?hi(oB"
C Ar?hi(o a or$enar
AK' Ar?hi(oB aui%iareB
Se $e#en Beguir %oB BiguieneB @aBoB @ara or$enar"
1. *arir e% ar?hi(o C en Be?uen?iaB $e 2nK ?o@iar iner?a%a$aene %aB
Be?uen?iaB $e% ar?hi(o CK @rieraene en e% ar?hi(o AK %uego en e%
ar?hi(o '.
2. Me?%ar %oB ar?hi(oB aui%iareB A ' @or Be?uen?iaB $e 2n. Don$e" n
0K1K2K)...
). Re@eir %oB @aBoB 1 2 haBa ue %a Be?uen?ia Bea aor ue %a ia$
$e% ar?hi(o a or$enar Be?uen?ia2nbQ %ongCHY2H
Ee@%o"
Or$enar %oB BiguieneB $aoB.
0
-
7/26/2019 TEMAS SIS2310.doc
81/282
Orenn!cionPorVonNe7!n
InicioSec = A>rir C (Lect+r!)Re@etir
A>rir B (Escrit+r!)A>rir A (Escrit+r!)See (C, 0)P!rticion!rSee (A, 0). See (B, 0). See (C, 0)
1
-
7/26/2019 TEMAS SIS2310.doc
82/282
&ec$!rCerr!r A. Cerr!r BSec = Sec 4 8
*!st! Sec % (Fi$esie (C) Di 8)Cerr!r C
FinP!rticion!rInicio
&ientr!s no eo (C) *!cerCo@i!r_SecP (C, A, Sec)Si no eo (C) Entonces
Co@i!r_SecP(C,B,Sec)Fin si
Fin 7ientr!sFin
Co@i!r_SecP (V!r M, H Arcio. Sec Entero)Inicio
Cont = 0&ientr!s no eo (M) H (Cont 2 Sec) *!cer
Leer (M, Re?)r!>!r (H, Re?)Cont = Cont '.
Fin &ientr!sFin&ec$!r
Inicio &ientr!s no eo (A) H no eo (B) *!cer&ec$!r_Sec
Fin &ientr!sFin&ec$!r_SecInicio
SecA = 0. SecB = 0Re@etir
PosA = Fi$ePos (A) Leer A, Re?A See (A, PosA)
PosB = Fi$ePos (B) Leer B, Re?B See (B, PosB)
Si Re?A 2 Re?B EntoncesLeer A, Re?
r!>!r C, Re?
2
-
7/26/2019 TEMAS SIS2310.doc
83/282
SecA =SecA ' Si SecA = Sec Entonces
Co@i!r_SecP (B, C, Sec-SecB).SecB = Sec
Fin siSi no
SecB = SecB ' Si SecB = Sec Entonces
Co@i!r_SecP (A, C, Sec-SecA).SecA = Sec
Fin siFin si
*!st! (SecA = Sec) H (SecB = Sec)Fin
;inc$+e2conio
-
7/26/2019 TEMAS SIS2310.doc
84/282
@rint(3Arcio sn3,no7>re). c=o@en(no7>re,3r>3). i$e(Jeo(c)) re!(!$or,sieo(int),,c).
i(Jeo(c))@rint(3U3,!$or).
@rint(3n3). c$ose(c). ?etc().
oi co@i!r_sec@(FILE4M,FILE4H,int @)
int cont=,re?. i$e(cont2=@ Jeo(M)) re!(re?, sieo(int),,M). i(Jeo(M)) rite(re?, sieo(int),,H). cont''. oi @!rticion()
i$e(Jeo(c)) co@i!r_sec@(c,!,@). i(Jeo(c)) co@i!r_sec@(c,>,@). oi 7ec$!r_sec@(int @) int sec!=0,sec>=0,@os!,@os>,re?!,re?>.
o @os!=te$$(!). re!(re?!,sieo(int),,!). see(!,@os!,0).
@os>=te$$(>).
4
-
7/26/2019 TEMAS SIS2310.doc
85/282
re!(re?>,sieo(int),,>). see(>,@os>,0).
i(re?!2re?>)
co@i!r_sec@(!,c,).sec!''.i(sec!==@) co@i!r_sec@(>,c,@-sec>). sec>=@.
e$se
co@i!r_sec@(>,c,).sec>''.i(sec>==@) co@i!r_sec@(!,c,@-sec!). sec!=@.
i$e(sec!J=@ sec>J=@).
oi 7ec$!r() i$e(Jeo(!) Jeo(>)) 7ec$!r_sec@(@). oi oren!r() int 7it!. @rint(3Oen!no
-
7/26/2019 TEMAS SIS2310.doc
86/282
>=o@en(no7B,3>'3). rein(c). @!rticion(). rein(!). rein(>).
rein(c). $+s!$$(). 7ostr!r(no7A). 7ostr!r(no7B). 7ec$!r(). c$ose(>). c$ose(!). $+s!$$(). 7ostr!r(no7C). @=@48.
i$e( @2=7it!). c$ose(c).oi 7!in() c$rscr(). ?ener!r(). oren!r(). ?etc().
ORDENACI8N POR &ECLA EUILI,RADA
E% o$o un?iona ?on o$o i@o $e ar?hi(oBK ha?e e% uBo $e %oB BiguieneB
ar?hi(oB"
C Ar?hi(o a or$enar
AK' Ar?hi(oB aui%iareB
Se $e#en Beguir %oB BiguieneB @aBoB @ara or$enar"
*arir e% ar?hi(o C en Be?uen?iaB or$ena$aBK ?o@iar iner?a%a$aene %aB
Be?uen?iaB or$ena$aB $e% ar?hi(o CK @rieraene en e% ar?hi(o AK
%uego en e% ar?hi(o '.
-
7/26/2019 TEMAS SIS2310.doc
87/282
Me?%ar %oB ar?hi(oB aui%iareB A ' @or Be?uen?iaB or$ena$aB.
Re@eir %oB @aBoB 1 2 haBa ue %a e?%a $e Be?uen?iaB Bea igua% a
uno nWraoB1H.
Ee@%o" Or$enar %oB BiguieneB $aoB.
Oren!cionPro&ec$!EG+i$i>r!!
InicioA>rir C (Lect+r!)Re@etir
A>rir A (Escrit+r!).A>rir B (Escrit+r!).See (C, 0)P!rticion!rSee (C, 0). See (A, 0). See (B, 0)
N+7_Tr!7os = 0&ec$!r.Cerr!r A. Cerr!r B
*!st! N+7_Tr!7os =Cerr!r C
FinP!rticion!r
,
-
7/26/2019 TEMAS SIS2310.doc
88/282
Inicio&ientr!s no eo (C) *!cer
Co@i!r Tr!7o (C, A)Si no eo (C) Entonces
Co@i!r_Tr!7o(C,B)Fin si
Fin 7ientr!sFinCo@i!r_Tr!7o (M, H Arcio)Inicio
Re@etirCo@i!r_D!to (M, H)
*!st! Fin_Tr!7oFinCo@i!r_D!to (!r M, H Arcio)
InicioSi eo (M) Entonces
Fin_Tr!7o = TRESi no
Leer (M), Re?r!>!r (H), Re?Si eo (M) Entonces
Fin_Tr!7o = TRESi no
Pos = Fi$ePos (M)
Leer (M), Re?) See (M, Pos )Fin_Tr!7o = Re? % Re?
Fin siFin si
Fin&ec$!rInicio
&ientr!s no eo (A) H no eo (B) *!cer&ec$!r_Tr!7osN+7_Tr!7os = N+7_Tr!7os '
Fin &ientr!s&ientr!s no e (A) *!cer
Co@i!r_Tr!7o (A, C)N+7_Tr!7os = N+7_Tr!7os '
Fin &ientr!s&ientr!s no e (B) *!cer
Co@i!r_Tr!7o (B, C)
-
7/26/2019 TEMAS SIS2310.doc
89/282
N+7_Tr!7os = N+7_Tr!7os ' Fin &ientr!s
Fin&ec$!r_Tr!7oInicio
Re@etirPosA = Fi$e Pos (A).
Leer (A, Re?A). See (A, PosA)
PosB = Fi$e Pos (B). Leer (B, Re?B). See (B, PosB)
Si Re?A 2 Re?B EntoncesCo@i!r_D!to (A, C)Si Fin_Tr!7o Entonces
Co@i!r_Tr!7o (B, C)Fin Si
Si noCo@i!r_D!to (B, C)Si Fin_Tr!7o Entonces
Co@i!r_Tr!7o (A, C)Fin si
Fin si *!st! Fin _Tr!7oFin
55--------------------------------55 &etoo e Oren!cion EMtern!55 &ECLA EQILIBRADA55--------------------------------
;inc$+e2stio
-
7/26/2019 TEMAS SIS2310.doc
90/282
@rint(3ener!no D!tos(!rcC
-
7/26/2019 TEMAS SIS2310.doc
91/282
in_tr!7o=.e$se see(M,@osM,SEE1_SET). in_tr!7o=re?%re?.
oi co@i!r_tr!7o(FILE 4M,FILE 4H) o co@i!r_!to(M,H).
i$e(Jin_tr!7o).
oi @!rticion(oi) @rint(3------------------PARTICION-------------------n3). i$e(Jeo(c)) co@i!r_tr!7o(c,!). i(Jeo(c))
co@i!r_tr!7o(c,>).
oi 7ec$!r_tr!7o(oi) int @os!,@os>, re?!,re?>. o
@os!=te$$(!).re!(re?!,sieo(int),,!).
see(!,@os!,SEE1_SET).
@os>=te$$(>).re!(re?>,sieo(int),,>).see(>,@os>,SEE1_SET).i(re?!2re?>)
31
-
7/26/2019 TEMAS SIS2310.doc
92/282
co@i!r_!to(!,c). i(in_tr!7o) co@i!r_tr!7o(>,c).e$se
co@i!r_!to(>,c). i(in_tr!7o) co@i!r_tr!7o(!,c).
i$e(Jin_tr!7o).oi 7ec$!(oi) @rint(3------------------&ECLA----------------------n3).
i$e(Jeo(!) Jeo(>)) 7ec$!r_tr!7o(). n+7_tr!7o''. i$e(Jeo(!)) co@i!r_tr!7o(!,c). n+7_tr!7o''.
i$e(Jeo(>)) co@i!r_tr!7o(>,c). n+7_tr!7o''.
oi oren!r(oi)
@rint(3Oen!no
-
7/26/2019 TEMAS SIS2310.doc
93/282
rein(!). rein(>). rein(c). $+s!$$(). 7ostr!r(no7A).
7ostr!r(no7B). n+7_tr!7o = 0. 7ec$!(). c$ose(>). c$ose(!). $+s!$$(). 7ostr!r(no7C). i$e( n+7_tr!7o J= ). c$ose(c).
oi 7!in(oi) c$rscr(). ?ener!r(). oren!r(). ?etc().
ORDENACI8N POR DIGITOS
E% o$o un?iona Bo%o ?on ar?hi(oB ue a%a?enan $aoB nuri?oB ?on?iraB e%e(a$aBK ha?e e% uBo $e %oB BiguieneB ar?hi(oB"
C Ar?hi(o a or$enar
A0K A1...K A3 Ar?hi(oB aui%iareB
Se $e#en Beguir %oB BiguieneB @aBoB @ara or$enar"
1. *arir e% ar?hi(o C $e a?uer$o a% $igio inB@e??iona$oK ee@%o Bi e%
$igio inB@e??iona$o eB 1 eBe $ao $e#e ?o@iarBe a% ar?hi(o A1. Se $e#e
e@ear inB@e??ionan$o @or %a @oBi?in $e %a uni$a$K $e?enaK
?enena...e?.
3)
-
7/26/2019 TEMAS SIS2310.doc
94/282
2. Me?%ar %oB 10 ar?hi(oB aui%iareB A0..A3 en or$enK e@ean$o $e%
ar?hi(o A0 ina%ian$o en e% ar?hi(o A10.
). Re@eir %oB @aBoB 1 2 haBa ue Be haa inB@e??iona$o o$oB %oB
$gioBK eB $e?ir uni$a$eBK $e?enaBK ?enenaBK e?.
Ee@%o" Or$enar %oB BiguieneB $aoB.
Oren!cionPorDi?itos
V!r Arc "0
-
7/26/2019 TEMAS SIS2310.doc
95/282
-
7/26/2019 TEMAS SIS2310.doc
96/282
Cerr!r Arc " i # in P!r!Fin
55&ETODO DE ORDENACION POR INSEPCION DE DIITOS
;inc$+e2conio
-
7/26/2019 TEMAS SIS2310.doc
97/282
or(int i=0.i20.i'') i$e(Jeo(!+M"i#))
re!(re?,sieo(int),,!+M"i#).i(Jeo(!+M"i#))
rite(re?,sieo(int),,c). oi oren!ri?ito(oi) int i. c!r no7>re"#=3!rc0
-
7/26/2019 TEMAS SIS2310.doc
98/282
re!(!$or,sieo(int),,c).i(Jeo(c))@rint(3U3,!$or).
@rint(3n3).
c$ose(c). ?etc().oi 7!in(oi) c$rscr(). ?ener!r(). 7ostr!r(no7C). oren!ri?ito(). 7ostr!r(no7C).
3
-
7/26/2019 TEMAS SIS2310.doc
99/282
33
-
7/26/2019 TEMAS SIS2310.doc
100/282
TE&A )
100
-
7/26/2019 TEMAS SIS2310.doc
101/282
101
-
7/26/2019 TEMAS SIS2310.doc
102/282
LISTAS ENCADENADAS
O,/ETI$OSE@%ear eBru?uraB $ini?aB $e $aoB en e% @ro?eBaieno $e %a inora?in.
DeBarro%%ar a%gorioB @ara o@iiar %aB o@era?ioneB #Bi?aB ue Be %%e(an a
?a#o en @ro?eBo $e ee?u?in en eBru?uraB %inea%eB.
CONTENIDO
/.1 Inro$u??in
/.2 LiBa Si@%eene En%aa$a
/.) LiBaB Si@%eene En%aa$aB Cir?u%areB
/.4 LiBaB Do#%eene En%aa$aB
/./ LiBaB Do#%eene En%aa$aB Cir?u%areB
). LISTAS ENCADENADAS
LaB %iBaB en%aa$aB Bon eBru?uraB $e $aoB %inea%eBK ue ?onBan $e una
Be?uen?ia $e no$oB ue Be en?uenran en%aa$oB uno ?on oroK e$iane un
en%a?e o @unero.
La a$i?in Y e%iina?in en eBaB eBru?uraB $e $aoBK Be rea%ia en ie@o $e
ee?u?in en ora $ini?a.La ?ani$a$ $e no$oB ue una %iBa en%aa$a @ue$e ?onener eBa %iia$a @or %a
eoria $e% ?o@ua$or.
TIPOS DE LISTAS.
102
-
7/26/2019 TEMAS SIS2310.doc
103/282
EiBen %oB BiguieneB i@oB $e %iBaB en%aa$aB"
LiBaB Bi@%eene en%aa$aB
LiBaB Bi@%eene en%aa$aB ?ir?u%areB
LiBaB $o#%eene en%aa$aB
LiBaB $o#%eene En%aa$aB ?ir?u%areB
)." LISTAS SI&PLE&ENTE ENLAADAS
Una %iBa Bi@%eene en%aa$a Be re@reBena a% ?oo Be ueBra en %aBiguiene grai?a"
10)
-
7/26/2019 TEMAS SIS2310.doc
104/282
Don$e"
E% nodo RazeB un @unero a% @rier e%eeno $e %a %iBa.
Ca$a e%eeno nodoH $e %a %iBa Bi@%eene en%aa$a $e#e ener $oB ?a@oB"
Un ca
-
7/26/2019 TEMAS SIS2310.doc
105/282
E%iina?in
'Bue$a
Re?orri$o
RECORRIDO
*ara rea%iar e% re?orri$o en una %iBa Bi@%eK eB ne?eBario e% uBo $e un @unero
aui%iar ACTK ?on %a ?ua% Be (iBia o$a %a %iBaK e@ean$o @or %a RAI7
ina%ian$o ?uan$o e% @unero ACT a@una a NULL.
Re?orri$oDao"InegerHInicio Act+!$ = R!X
&ientr!s(Act+!$ 2% NLL) !cer Act+!$ =Act+!$-%si? &ost!r Act+!$-%in Fin &ientr!sFin C!>6
-
7/26/2019 TEMAS SIS2310.doc
119/282
ACTK Bi e% $ao Be en?uenra en %a %iBaK e% @unero ACT a@una a e%%a e%
@unero ANT a@una a% anerior e%eeno.
EiBen $oB ?aBoB ue Be @reBenan a% e%iinar un $ao"
E%iinar e% %io e%eeno $e %a %iBa
E%iinar un e%eeno $iBino $e% u%io
ELI&INAR EL LTI&O ELE&ENTO DE LA LISTA
Da$a %a Biguiene %iBa"
E%iinar3H
*ara e%iinar e% u%io e%eenoK eB ne?eBario %i#erar %a eoria $e %oB no$oB
ue a@unan a ANT ACT.
DiB@oBeanH DiB@oBea?H
Rai NULL 1H
ELI&INAR UN ELE&ENTO DISTINTO DEL LTI&O
Da$a %a Biguiene %iBa"
113
-
7/26/2019 TEMAS SIS2310.doc
120/282
E%iinar/H
anZ.Big a?Z.Big DiB@oBea?H
E%iinar Dao"EneroHInicio Si R!i = NLL ten &ostr!r YNo eMiste D!tosZ
Si noAnterior = R!i Act+!$ = R!i6
-
7/26/2019 TEMAS SIS2310.doc
121/282
Fin siFin-%si?=n+eo. n+eo-%si?=r!i. e$se !nt=r!i. !ct=r!i-%si?. i$e((!ct-%in2@)(!ctJ=r!i))
!nt=!ct. !ct=!ct-%si?.
n+eo-%si?=!ct. !nt-%si?=n+eo.
121
-
7/26/2019 TEMAS SIS2310.doc
122/282
oi e$i7in!r(int !to) i(r!i==NLL)
@rint(3ntNO E/ISTEN DATOS3). ?etc(). e$se !nt=r!i. !ct=r!i-%si?. i$e((!ct-%inJ=!to)(!ctJ=r!i)) !nt=!ct.
!ct=!ct-%si?. i(!ct==r!i)
@rint(3nt!to no eMiste3).?etc().
e$se i(!ct-%si?==!nt)
r!i=NLL.ree(!nt).
e$se
!nt-%si?=!ct-%si?. ree(!ct). oi i7@ri7ir()
c$rscr(). ?otoMH(90,).@rint(3VISALIACION DE DATOS3). !ct=r!i-%si?. i$e(!ctJ=r!i) @rint(3ntU3,!ct-%in).
122
-
7/26/2019 TEMAS SIS2310.doc
123/282
-
7/26/2019 TEMAS SIS2310.doc
124/282
EBoB en%a?eB @uneroBH Be ui%ian @ara $enoar %a $ire??in $e% @re$e?eBor
Bu?eBor $e un no$o $a$o. E% @re$e?eBor Be %%aa en%a?e iuier$o e% Bu?eBor
en%a?e $ere?ho.
Don$e"
Nodo InicioeB un @unero a% @rier e%eeno $e %a %iBa.
Nodo FineB un @unero a% u%io e%eeno $e %a %iBa.
Una %iBa ?ua E7t25ct52a de Nodo%?oniene $oB ?a@oB $e en%a?e Be
$enoinar %iBa %inea% $o#%eene en%aa$a.
NODO
Don$e"
?a@o enlace ant. a@una a% anerior no$o $e %a %iBa.
?a@o in?o?oniene ?ua%uier i@o eBn$ar $e $aoB.
?a@o enlace 7i6. a@una a% Biguiene no$o $e %a %iBa.
EiBe una ar?a @ara in $e %iBaK ue eB %a ?onBane NULLK a#in
re@reBena$a @or una #arra in?%ina$a o e% Bigno e%?ri?o $e ierra.
De?%ara?in $e un no$o uBan$o e% %enguae C"Str+ct noo int ino. str+ct noo 4Ant, 4 Si?..
124
-
7/26/2019 TEMAS SIS2310.doc
125/282
OPERACIONES EN LISTAS DO,LE&ENTE ENLAADAS.
LaB o@era?ioneB #Bi?aB @ara ani@u%ar %iBaB $o#%eene en%aa$aB Bon"
InBer?in E%iina?in
Re?orri$o
'Bue$a
RECORRIDO
En una %iBa $o#%e ?ir?u%ar eB @oBi#%e rea%iar $oB i@oB $e re?orri$oBK eBo
$e#i$o a ue en eBaB %iBaB eiBen en%a?eB en a#aB $ire??ioneB.
Re?orri$o en ora aB?en$ene
Re?orri$o en ora $eB?en$ene
RECORRIDO EN FOR&A ASCENDENTE
EBe re?orri$o Be ini?ia ?uan$o e% @unero a@una a INICIO Be re?orre $e
no$o a no$o ?on e% @unero SIG haBa ue e% no$o a@une a NULL.
Re?orri$oA?en$eneInicio Act+!$ = Inicio &ientr!s Act+!$ 2% NLL !cer &ostr!r Act+!$6
-
7/26/2019 TEMAS SIS2310.doc
126/282
Fin &ientr!sFin / Z 2 X ) H >
.J
".JE% H Ba?a %oB o@era$oreB $e %a @i%a haBa e%
130
-
7/26/2019 TEMAS SIS2310.doc
191/282
-
7/26/2019 TEMAS SIS2310.doc
192/282
EB una Bua(ia?in $e %aB reBri??ioneB @ara orar r#o%eB @ere?aene
eui%i#ra$oB. Un r#o% AL %%aa$o aB @or %aB ini?ia%eB $e BuB in(enoreB"
A$e%Bon&e%Bdii Lan$iBH eB un r#o% #inario $e #Bue$a en e% ue @ara ?a$a
no$oK %aB a%uraB $e BuB Bu#r#o%eB iuier$o $ere?ho no $iieren en B $e 1.
E% a%gorio @ara anener un r#o% AL eui%i#ra$o Be #aBa en reeui%i#ra$oB
%o?a%eBK $e o$o ue no eB ne?eBario e@%orar o$o e% r#o% $eB@uB $e ?a$a
inBer?in o #orra$o.
DEFINICI8N
La $eini?in no B%o eB Bi@%eK Bino ue a$eB ?on$u?e a un @ro?e$iieno
$e reeui%i#ra$o re%ai(aene Ben?i%%oK a una %ongiu$ $e ?aino e$ia
@r?i?aene i$ni?a a %a $e% r#o% @ere?aene eui%i#ra$o.
En un r#o% ALK Be @ue$en rea%iar en O%on nH uni$a$eB $e ie@oK in?%uBo
en e% @eor $e %oB ?aBoBK %aB BiguieneB o@era?ioneB"
En?onrar un no$o ?on una ?%a(e $a$a.InBerar un no$o ?on una ?%a(e $a$a.
'orrar un no$o ?on una ?%a(e $a$a.
aoB a a!a$ir un ?a@o nue(o a %a $e?%ara?in $e% i@o TAr#o%K ue Be
%%aar a?or $e eui%i#rio euHK eBe a?or $e eui%i#rio euH eB %a $ieren?ia
enre %aB a%uraB $e% r#o% $ere?ho e% iuier$o"
FE a%ura Bu#r#o% $ere?ho & a%ura Bu#r#o% iuier$oV
*or $eini?inK @ara un r#o% ALK eBe (a%or $e#e Ber &1K 0 1.
Con$i?ioneB @ara (ariar eu"
La inBer?in Be ha?e en %aB hoaB
132
-
7/26/2019 TEMAS SIS2310.doc
193/282
Cuan$o ?reaoB un nue(o no$o e% ?a@o $e eui%i#rio (a%e 0K a ue %a
a%ura $e% Bu#r#o% iuier$o eB igua% ue %a $e% $ere?ho.
Cuan$o inBeraoB @or %a $ere?ha in?reenaoB e% (a%or $e% ?a@o $e
eui%i#rio.
Cuan$o inBeraoB @or %a iuier$a $e?reenaoB e% (a%or $e% ?a@o
$e eui%i#rio.
INSERCI8N EN A$L
La inBer?in Be ha?e Bie@re en %aB hoaBK (aoB a ener un ?a@o $eeui%i#rioK a$eB una (aria#%e g%o#a% %%aa$a ?re?i$o $e i@o 'OOLEANK ue
en e% oeno $e inBerar %o (aoB a @oner a TRUE @ara $eB@uB ?onro%ar Bi
Be ha $eBeui%i#ra$o o no.
Se Bu#e reBan$o o Buan$o 1 haBa %%egar a un ?ero. Si a %a hora $e Buar o
reBar un uno Be Ba%e $e% rango ha ue reeui%i#rar.
DESEUILI,RIOS ! REEUILI,RIOS
A% inBerar un nue(o no$o en un r#o% eui%i#ra$o Be @ue$en @ro$u?ir
$eBeui%i#rioBK ue ue$arn re@reBena$oB en %oB ?aBoB oBra$oB a
?oninua?in. Si@%eB ranBora?ioneB reBauran e% eui%i#rio $eBea$o.
In7e2ta2 Iz@5ie2da
13)
-
7/26/2019 TEMAS SIS2310.doc
194/282
Cre?i$o Iuier$a
Roa?in Si@%e $e Iuier$a a Iuier$a
Roa?ion Do#%e $e Iuier$a a Dere?ha
Eui%i#rio
Cre?i$o Dere?ha
134
-
7/26/2019 TEMAS SIS2310.doc
195/282
In7e2ta2 De2echaCre?i$o Iuier$a
Eui%i#rio
Cre?i$o Dere?ha
Roa?in Si@%e $e Dere?ha a Dere?ha
Roa?ion Do#%e $e Dere?ha a Iuier$a
13/
-
7/26/2019 TEMAS SIS2310.doc
196/282
E/E&PLO DE INSERCIONES DE NODOSA ?oninua?in Be Biu%an %aB inBer?ioneB $e no$oB en un r#o% $e #Bue$a
eui%i#ra$oK @arien$o $e% r#o% (a?i. *or ?oo$i$a$ Be Bu@one ue e% ?a@o
?%a(e eB enero. E% a?or $e eui%i#rio a?ua% $e un no$o e% nue(o a% a!a$irun no$o Be re@reBenan ?oo Bu@ern$i?eB $e %oB no$oB. LoB @uneroB nK n% n2
reeren?ia a% no$o ue (io%a %a ?on$i?in $e eui%i#rio a %oB $eB?en$ieneB en
e% ?aino $e #Bue$a.
InBerar %aB ?%a(eB &4/&23"
Una (e inBera$o e% no$o ?on %a ?%a(e 23K a% regreBar @or e% ?aino $e
#Bue$a ?a#ia %oB a?oreB $e eui%i#rioK aB e% $e% no$o 4/ @aBa a &1K en e%
no$o Be @aBa a &2. Se ha roo e% ?rierio $e eui%i#rio $e#e $e
reeBru?urarBe. A% Ber %oB a?oreB $e eui%i#rio &% &2 $e#en $e rea%iarBe una
roa?in $e %oB no$oB II @ara reha?er e% eui%i#rio. LoB o(iienoB $e %oB
@uneroB @ara rea%iar eBa roa?in II
nZ.i$o n1Z.$r?ho
n1Z.$r?ho n
n n1
13
-
7/26/2019 TEMAS SIS2310.doc
197/282
Rea%ia$a %a roa?inK %oB a?oreB $e eui%i#rio Bern Bie@re O en %aB
roa?ioneB Bi@%eB. E% r#o% ue$a $e %a ora Biguiene"
InBer?in $e %aB ?%a(eB ,/ 30
Una (e inBera$o e% no$o ?on %a ?%a(e 30K a %a $ere?ha $e% no$o ,/K regreBar
@or e% ?aino $e #Bue$a @ara aB ?a%?u%ar %oB nue(oB a?oreB $e eui%i#rioK
Be o#Ber(a ue $i?ho a?or ue$a in?reena$o en 1 @ueB %a inBer?in ha Bi$o
@or %a $ere?ha. En e% no$o ?on ?%a(e ue$a roo e% eui%i#rio. *arareeBru?urar Be rea%ia una roa?in DL LoB o(iienoB $e %oB @uneroB @ara
rea%iar eBa roa?in DD"
nZ.Dr?ho n1Z. I$o
13,
-
7/26/2019 TEMAS SIS2310.doc
198/282
n1Z.I$o n
n n1
Una (e rea%ia$a %a roa?inK %oB a?oreB $e eui%i#rio $e %oB no$oB
i@%i?a$oB Ber 0K ?oo o?urre en o$aB %aB roa?ioneB Bi@%eBK e% r#o% ue$a
?oo Bigue"
InBeraoB %a ?%a(e ,0
@ara inBerar e% no$o ?on %a ?%a(e ,0 Be Bigue e% ?aino " Dere?ha $e 4/
iuier$a $e ,/ Be inBera @or %a $ere?ha a% no$o . a% regreBar @or e% ?aino
$e #Bue$a.
13
-
7/26/2019 TEMAS SIS2310.doc
199/282
5ue$aK %oB a?oreB $e eui%i#rio Be in?reenan en 1 Bi Be ue @or %a raa
$ere?haK Be $e?reena en Bi Be ue @or %a raa iuier$a. En e% no$o 4/ ?%
#a%an?eo Be ha roo. La roa?in $e %oB na$oB @ara reeBa#%e?er e% eui%i#rio eB
DI. LoB o(iienoB $e %oB @uneroB @ara rea%iar eBa roa?in DI
n1Z. I$o n2Z. Dr?ho
n1Z. Dr?ho n1
nZ. Dr?ho n2Z. I$o
n2Z. I$o n
n n2
LoB a?oreB $e eui%i#rio $e %oB no$oB i@%i?a$oB en %a roa?in $e@en$en $e%
(a%or aneB $e %a inBer?in $e% no$o reeren?ia$o @or n2 Begn eBa a#%a"
7i n" K.?e J n"K.?e * n"K. ?e
nK.?e 0 0 &1
nK.?e 1 0 0n"K.?e 0 0 0
Con eBa roa?in e% r#o% ue$ara
InBer?in $e %a ?%a(e )4
133
-
7/26/2019 TEMAS SIS2310.doc
200/282
E% ?aino Begui$o @ara inBerar e% no$o ?on ?%a(e )4 ha Begui$o e% ?aino $e
iuier$a $? K iuier$a $e 4/K $ere?ha $e 23. A% regreBar @or e% ?aino $e#Bue$aK e% a?or $e eui%i#rio $e% no$o 23 Be in?reena en 1 @or Beguir e%
?aino $e %a raa $ere?haK e% $e% no$o 4/ Be $e?reena en 1 @or Beguir %a
raa iuier$a @aBa a Ber &2K Be ha roo e% ?rierio $e eui%i#rio. La roa?in
$e %oB no$oB @ara reeBa#%e?er e% eui%i#rio eB ID.
LoB o(iienoB $e %oB @uneroB @ara rea%iar eBa roa?in ID
n1Z. Dr?ho n2Z.I$on2Z. Ig$o n%
nZ. Ig$o n2Z.Dr?ho
n2Z. Dr?ho n
n n2
LoB a?oreB $e eui%i#rio $e %oB no$oB i@%i?a$oB en %a roa?in $e@en$en $e%
(a%or aneB $e %a inBer?in $e% no$o reeren?ia$o @or n2K Begn eBa a#%a"
7i n" K.?e J n"K.?e * n"K. ?e
nK.?e 1 0 0
200
-
7/26/2019 TEMAS SIS2310.doc
201/282
nK.?e 0 0 &1
n"K.?e 0 0 0
Con eBa roa?in e% r#o% ue$ara
I&PLE&ENTACI8N DE LA INSERCI8N
Un a%gorio ue inBere reeui%i#re $e@en$er en ora ?ri?a $e %a ora
en ue Be a%a?ene %a inora?in re%ai(a a% eui%i#rio $e% r#o%. Una Bo%u?in
?onBiBe en anener %a inora?in Bo#re e% eui%i#rioK $e ora
?o@%eaene i@%?iaK en %a eBru?ura iBa $e% r#o%. En eBe ?aBoK Bine#argoK e% a?or $e eui%i#rio $e#e 6a(eriguarBe6 ?a$a (e ue Be en?uenre
ae?a$o @or una inBer?inK ?on e% ?onBiguiene ra#ao reBu%ane.
Ora ora %a ue (aoB a uBarH ?onBiBe en ari#uir aK a%a?enar ?onK ?a$a
no$o un a?or $e eui%i#rio e@%?io. La $eini?in $e no$o Be a@%a
enon?eB a"
T[PE Noo=RECORD C$!eTc$!e. InoTino. IG,Der6Noo. EG+i-
-
7/26/2019 TEMAS SIS2310.doc
202/282
-
7/26/2019 TEMAS SIS2310.doc
203/282
cont!or= . en. en e$se i !to 2 P6e?in Insert!r (!to,@6
-
7/26/2019 TEMAS SIS2310.doc
204/282
>e?in insert!r (!to, @6
-
7/26/2019 TEMAS SIS2310.doc
205/282
,ORRADO EN A$L
aoB a (er Bo%o %aB $iBinaB @oBi#i%i$a$eB ue Be @ue$en $ar a% #orrar un
no$o en e% %a$o $ere?ho.
Eli
-
7/26/2019 TEMAS SIS2310.doc
206/282
Roa?in Si@%e $e Dere?ha a Dere?ha
Roa?ion Do#%e $e Dere?ha a Iuier$a
Eli
-
7/26/2019 TEMAS SIS2310.doc
207/282
-
7/26/2019 TEMAS SIS2310.doc
208/282
E/E&PLO DE ,ORRADO DE NODOS
Una (e e%iina$o e% no$o Biguien$o %oB ?rierioB eBa#%e?i$oB anerioreneK
Be regreBa @or e% ?aino $e #Bue$a ?a%?u%an$o %oB nue(oB a?oreB $e
eui%i#rio FeH $e %oB no$oB (iBia$oB. Si en a%guno $e %oB no$oB Be (io%a e%
?rierio $e eui%i#rioK $e#e $e reBaurarBe e% eui%i#rio.
En e% a%gorio $e inBer?inK una (e ue era ee?ua$a una roa?in e% @ro?eBo
erina#a a ue %oB no$oB ane?e$eneB anenan e% iBo a?or $e
eui%i#rio. En %a e%iina?in $e#e $e ?oninuar e% @ro?eBo @ueBo ue Be @ue$e
@ro$u?ir B $e una roa?in en e% rero?eBo rea%ia$o @or e% ?aino $e#Bue$aK @u$ien$o %%egar haBa %a ra $e% r#o%.
En %oB @ro?e$iienoB Be ui%ia e% argueno #oo%ean hhK Ber a?i(a$o ?uan$o
%a a%ura $e% Bu#r#o% $iBinua $e#i$o a ue Be haa e%iina$o un no$oK o
#ien @orue a% reeBru?urar haa ue$a$o re$u?i$a %a a%ura $e% Bu#r#o%.
En e% r#o% $e %a igura (a a Ber e%iina$o e% no$o ?on %a ?%a(e 42" a% Ber un
no$o hoa e% #orra$o eB Bi@%eK Be Bu@rie e% no$o. A% (o%(er @or e% ?aino $e
#Bue$a @ara $eerinar %oB FeK reBu%a ue e% Fe $e% no$o ?on ?%a(e )3
20
-
7/26/2019 TEMAS SIS2310.doc
209/282
@aBara a Ber &2 a ue ha $e?reena$o %a a%ura $e %a raa $ere?haK eB (io%a$o
e% ?rierio $e eui%i#rio. a ue reeBru?urar e% r#o% $e ra )3
Rotacin ii ;o2 @5e
NZ.ef &1&1H n1Z.e P0E% r#o% reBu%ane eB
Ahora Be e%iina e% no$o ?on %a ?%a(e 21. A% ener $oB raaBK oa e% no$o B
a %a $ere?ha $e %a raa iuier$a ue eB e% $e ?%a(e 11. A% (o%(er @or e% ?aino
$e #Bue$a @ara ?a%?u%ar %oB FeK e% a?or $e eui%i#rio $e% no$o 11 @aBara aBer 2 @or ano ha reeBru?urar e% r#o% $e ra II.
203
-
7/26/2019 TEMAS SIS2310.doc
210/282
Rotacin ID ;o2 @5eNZ.e f 1>1H
n1Z.e P 0
E% r#o% reBu%a$o eB "
En eBoB $oB ee@%oB Be o#Ber(a ue $eB@uB $e rea%iar %a e%iina?in $e un
no$oK ?uan$o Be regreBa @or e% ?aino $e #Bue$aK e% a?or $e eui%i#rio
$e% no$o (iBia$o $iBinue en 1 Bi %a e%iina?in Be hio @or Bu raa $ere?ha
Be in?reena en 1 Bi %a e%iina?in Be hio @or Bu raa iuier$a.
ConBi$ereoB ahora eBe r#o% eui%i#ra$o"
210
-
7/26/2019 TEMAS SIS2310.doc
211/282
-
7/26/2019 TEMAS SIS2310.doc
212/282
A% Beguir regreBan$o @or e% ?aino $e #Bue$aK e% no$o ra $e#e $e
in?reenar Bu Fe ?on %o ue @aBara a >2K @or ?onBiguiene ha ue reBaurar
e% r#o%K %a roa?in eB $ere?ha&iuier$a a ue
NZ.e 1>1 n1Z.e P0
E% nue(o r#o% ue$a aB eB
212
-
7/26/2019 TEMAS SIS2310.doc
213/282
I&PLE&ENTACI8N DE LA ELI&INACI8N
En e% a%gorio $e Bu@reBin Be inro$u?en $oB @ro?e$iienoB Biri?oB $e
eui%i#ra$o" E@5iliB2a2Be in(o?a ?uan$o %a a%ura $e %a raa iuier$a ha$iBinui$o E@5iliBna2" Be in(o?ar ?uan$o %a a%ura $e %a raa $ere?ha
haa $iBinui$o.
En e% @ro?e$iieno E@5iliB2a2a% $iBinuir%a a%ura $e %a raa iuier$aK e%
a?or $e eui%i#rio Be in?reena en 1. *or %o ue $e (io%arBe e% a?or $e
eui%i#rio %a roa?in ue Be @ro$u?e eB $e% i@o $ere?ha&$ere?haK o $ere?ha&
iuier$a.@roce+re Rot!cion (!r N Ptr!e. N$ @tr!e).>e?in N6
-
7/26/2019 TEMAS SIS2310.doc
214/282
N86
-
7/26/2019 TEMAS SIS2310.doc
215/282
N$ Ptr!e>e?in c!se N6rio N$= N6e?in i N6< Fe = 0 ten .= !$se. No is7in+He e n+eo $!
!$t+r! Rot!cion(N, N) en e$se Rot!cioni(N, N) en. en.en.
En e% @ro?e$iieno Eui%i#nar2 a% $iBinuir %a a%ura $e %a raa $ere?haK e%
a?or $e eui%i#rio ue$a $e?reena$o en 1. De @ro$u?irBe una (io%a?in $e%
?rierio $e eui%i#rioK %a roa?in Ber $e% i@o iuier$a&iuier$aK o iuier$a&
$ere?ha.
@roce+re EG+i$i>r!r8(!r NPtr!e !r . >o$e!n) !cti!o c+!no ! is7in+io en !$t+r! $! r!7! iG+ier!e$ noo N!r
N$ Ptr!e>e?in c!se N6
-
7/26/2019 TEMAS SIS2310.doc
216/282
en. - >e?in *!H G+e rest!+r!r e$ eG+i$i>rio N$= N6!$!nce!o(!r RPtr!e.!r >oo$e!n./Ti@oino)!r G Ptr!e.
@roce+re >or(!r @tr!e. !r >oo$e!n).>e?in i 6e?in
>or(6r!r8 (,) en e$se >e?in G6
-
7/26/2019 TEMAS SIS2310.doc
217/282
=6e?in i not Ar>o$V!cio( R ) ten i M 2 R6e?in >orr!r_>!$!nce!o(R6r!r$orr!r_>!$!nce!o(R6e?in ! sio encontr!o e$ noo G= R. i G6e?in R= G6or(G6r!r(R, ) en. is@ose(G). en.en.
21,
-
7/26/2019 TEMAS SIS2310.doc
218/282
;inc$+e 2stio!se 45
oi Escri>ir(@+ntero @+nt,int i$!,int co$, int inc) i (@+nt) 54 Si no e7os $$e?!o ! +n! o! 45
?otoMH(i$!,co$).c@rint(323,@+nt-%!to,@+nt-%eG+i).Escri>ir(@+nt-%ioIG,i$!-inc,co$'8,inc58).Escri>ir(@+nt-%ioDer,i$!'inc,co$'8,inc58).
e$se ?otoMH(i$!,co$).c@rint(3a3). 54 Escri>e e$ NLL e$ noo 45
oi Insert!r(@+ntero4 @+nt, Ti@oD!to !$or,int 4crece) @+ntero @+nt,@+nt8. @+ntero !ct+!$= 4@+nt.
i (!ct+!$ == NLL) 54 Si e7os $$e?!o ! +n! o! 45
4@+nt = (@+ntero) 7!$$oc (sieo(Ti@oB!se)). 54Reser< 7e7ori! 45
!ct+!$= 4@+nt. !ct+!$-%!to = !$or. 54 +!r!7os e$ !to 45
21
-
7/26/2019 TEMAS SIS2310.doc
219/282
!ct+!$-%eG+i = 0. 54 Ni ereco 45 !ct+!$-%ioIG = NLL. 54 No tiene io iG+iero 45 !ct+!$-%ioDer = NLL. 54 Ni ereco 45 4crece=.
e$se 54 Si no es o! 45 i (!ct+!$-%!to % !$or) 54 [ enc+entr! +n !to 7!Hor 45 54 &ir! @or $! iG+ier! 45
Insert!r(!ct+!$-%ioIG, !$or,crece).i(4crece)
sitc(!ct+!$-%eG+i)
c!se ' (4@+nt)-%eG+i=0.
4crece=0. >re!.
c!se 0 (4@+nt)-%eG+i=-. >re!.
c!se - @+nt=!ct+!$-%ioIG. i(@+nt-%eG+i==-) 55 rot!cion sii !ct+!$-%ioIG=@+nt-%ioDer. !ct+!$-%eG+i=0. @+nt-%ioDer=!ct+!$.
4@+nt=@+nt. e$se 55 rot!cion i @+nt8=@+nt-%ioDer. @+nt-%ioDer=@+nt8-%ioIG. @+nt8-%ioIG=@+nt. !ct+!$-%ioIG=@+nt8-%ioDer. @+nt8-%ioDer=!ct+!$.
i(@+nt8-%eG+i==-) !ct+!$-%eG+i=.
e$se !ct+!$-%eG+i=0. i(@+nt8-%eG+i==') @+nt-%eG+i=-.
e$se @+nt-%eG+i=0. 4@+nt=@+nt8. (4@+nt)-%eG+i=0. 4crece=0.
213
-
7/26/2019 TEMAS SIS2310.doc
220/282
>re!.
e$se 54 En c!so contr!rio (7enor) 45
54 &ir! @or $! erec! 45
Insert!r(!ct+!$-%ioDer, !$or,crece). i(4crece)
sitc(!ct+!$-%eG+i)
c!se - (4@+nt)-%eG+i=0. 4crece=0. >re!.
c!se 0 (4@+nt)-%eG+i=. >re!.
c!se ' @+nt=!ct+!$-%ioDer. i(@+nt-%eG+i==') 55 rot!cion sii !ct+!$-%ioDer=@+nt-%ioIG. @+nt-%ioIG=!ct+!$. !ct+!$-%eG+i=0. 4@+nt=@+nt.
e$se 55 rot!cion i @+nt8=@+nt-%ioIG. @+nt-%ioIG=@+nt8-%ioDer. @+nt8-%ioDer=@+nt. !ct+!$-%ioDer=@+nt8-%ioIG. @+nt8-%ioIG=!ct+!$.
i(@+nt8-%eG+i==') !ct+!$-%eG+i=-. e$se !ct+!$-%eG+i=0.
i(@+nt8-%eG+i==-) @+nt-%eG+i='.
e$se @+nt-%eG+i=0. 4@+nt=@+nt8. (4@+nt)-%eG+i=0. 4crece=0. >re!.
220
-
7/26/2019 TEMAS SIS2310.doc
221/282
oi Rot!cion(@+ntero N, @+ntero N)
N-%ioDer=N-%ioIG. N-%ioIG = N. i( N-%eG+i== )
N-%eG+i= 0.N-%eG+i= 0.
e$se
N-%eG+i= .N-%eG+i= -.
N =N.oi Rot!cionii(@+ntero N, @+ntero N) N-%ioIG=N-%ioDer. N-%ioDer = N. i( N-%eG+i== -)
N-%eG+i= 0.N-%eG+i= 0.
e$se
N-%eG+i= -.N-%eG+i= .
N =N.
oi Rot!cioni (@+ntero N, @+ntero N) @+ntero N8.
N8=N-%ioIG. N-%ioDer=N8-%ioIG.
221
-
7/26/2019 TEMAS SIS2310.doc
222/282
N8-%ioIG=N. N-%ioIG=N8-%ioDer. N8-%ioDer=N.
i (N8-%eG+i== ) N-%eG+i=-. e$se N-%eG+i =0.
i (N8-%eG+i==-) N-%eG+i= . e$se N-%eG+i=0. N8-%eG+i=0. N =N8.
oi Rot!cioni (@+ntero N, @+ntero N) @+ntero N8.
N8=N-%ioDer.
N-%ioIG=N8-%ioDer. N8-%ioDer=N. N-%ioDer=N8-%ioIG. N8-%ioIG=N.
i (N8-%eG+i== ) N-%eG+i=-. e$se N-%eG+i =0. i (N8-%eG+i==-) N-%eG+i= . e$se N-%eG+i=0. N8-%eG+i=0. N =N8.
oi EG+i$i>r!r(@+ntero N, int 4)55 !cti!o c+!no ! is7in+io en !$t+r! $! r!7! iG+ier!e$ noo N @+ntero N.
sitc( N-%eG+i )
c!se - N-%eG+i= 0.>re!.
c!se 0 N-%eG+i= .
4= 0.>re!.
c!se ' 55*!H G+e rest!+r!r e$ eG+i$i>rioN= N-%ioDer.55Es eter7in!o e$ ti@o e rot!ci`ni( N-%eG+i %= 0)
222
-
7/26/2019 TEMAS SIS2310.doc
223/282
-
7/26/2019 TEMAS SIS2310.doc
224/282
>+sc