You are on page 1of 11

rboles Binarios.

1. Definicin.
Definicin recursiva:

Un nodo por s solo es un rbol, cuya raz es dicho nodo.


Si n es un nodo y
1
y
!
son rboles de races n
1
n
!
se puede ob"ener un
rbol donde n es la raz y es padre de n
1
, n
!
.

#l rbol vaco "a$bi%n es un rbol binario.

!. l$acena$ien"o e i$ple$en"acin.
&o$o e'e$plo, la e(presin )1*+b,-)./c, se puede al$acenar en for$a de rbol.
-
+
b 1*
/
c .

rboles Binarios.

!.1. 0abla o $a"riz.


1roble$as al borrar.

!.!. 2is"a densa.

2a raz se nu$era con 1.

Si un nodo se nu$era con i, su hi'o


iz3uierdo con !i y el derecho !i+1.
4uchos huecos.
1roble$as al borrar.
5ndice 6odo 7i'o 5z3 7i'o Der
1 - ! .
! + 8 9
. / * :
8 1*
9 b
* .
: c
5ndice 6odo
1 -
! +
. /
8 1*
9 b
* .
: c

rboles Binarios.

!... 1un"eros )$e$oria din$ica,.

0ipo 6odo:

&a$po infor$a"ivo )info,.

1un"ero a 6odo. )hi'o5z3uierdo,.

1un"ero a 6odo. )hi'oDerecho,.

1un"ero al padre )opcional,. )padre,.

0ipo rbol:

1un"ero a 6odo. )raiz,.


-
+ /
1* b . c

rboles Binarios.
rboles Binarios.

.. #specificacin e i$ple$en"acin del 0D arbol binario


ordenado )B;,.

#n un B; para cada nodo, el ca$po infor$a"ivo del $is$o es superior a


los ca$pos infor$a"ivos del subrbol iz3uierdo e inferior a los del derecho.

#specificaciones:

rbol Binario ;rdenado )B;, < 0ipo bs"rac"o. 5nsercin, recorrido,


b=s3ueda y borrado.

Descripcin. #s un rbol en el 3ue cada nodo "iene a lo su$o dos


subrboles. Un solo nodo es un rbol binario ordenado y el rbol vaco
"a$bi%n. 2os nodos es"n ordenados.

;peraciones:

5nsercin.

>ecorrido.

B=s3ueda.

Borrado.

rboles Binarios.
rboles Binarios.

.. 1. 5nsercin.
5nsercin < proc)x: "ipo ca$po infor$a"ivo? rbol: "ipo B;,. dev)insertado: "ipo l@ico,.
4odifica: 4odifica: rbol.
#fec"os #fec"os: Aade un nuevo nodo al rbol, con ca$po infor$a"ivo (, en caso de 3ue %s"e no
e(is"a, $an"eniendo el orden del rbol. #l valor devuel"o es de "ipo l@ico e indica si la
insercin se ha realizado con %(i"o.
1asos de la insercin.

Descender por el rbol in"en"ando localizar el nodo a inser"ar. Se desciende por el


subrbol derecho si x es $ayor 3ue el ca$po del nodo analizado o por el iz3uierdo si
es $enor.

#n caso de lle@ar a un nodo a par"ir del cual no se pueda localizar al nodo, %s"e se
inser"ar co$o hi'o de %s"e, con la filiacin 3ue le corresponda, y se devolver un
valor cier"o.

#n caso de localizar un nodo si$ilar al 3ue 3uere$os inser"ar, %s"e no se inser"a y se


devuelve un valor falso.

rboles Binarios.
rboles Binarios.

.. 1. 5nsercin )55,.

#'e$plo en el 3ue se inser"an los nodos 1B y .9.


!9
19
!B 1B
8B
89 .B
.9

rboles Binarios.
rboles Binarios.

.. !. B=s3ueda.
B=s3ueda < proc)x: "ipo ca$po infor$a"ivo, rbol: "ipo B;,. dev)encontrado: "ipo
l@ico,.
#fec"os #fec"os: Busca un nodo en el rbol, con ca$po infor$a"ivo (. #l valor devuel"o es de
"ipo l@ico e indica si la b=s3ueda se ha realizado con %(i"o.
1asos de la b=s3ueda.

Descender por el rbol in"en"ando localizar al nodo. Se desciende por el


subrbol derecho si x es $ayor 3ue el ca$po del nodo analizado o por el
iz3uierdo si es $enor.

#n caso de lle@ar a un nodo ho'a a par"ir del cual no se pueda localizar al nodo,
se devolver un valor falso.

#n caso de localizar un nodo si$ilar se devuelve un valor cier"o.



rboles Binarios.
rboles Binarios.

.. .. >ecorrido.
>ecorrido < proc)rbol: "ipo B;,.
#fec"os #fec"os: >ecorre "odos los nodos de un rbol binario, sea ordenado o no.
1asos del recorido:

Se puede recorrer usando la recursividad, $edian"e las si@uien"es acciones:

0ra"ar la raz.

>ecorrer el subrbol iz3uierdo.

>ecorrer el subrbol derecho.

2a accin de "ra"ar la raz se puede poner delan"e de los recorridos de los


subrboles )recorrido prefi'o,, en"re los recorridos de los subrboles )recorrido
infi'o, o de"rs del recorrido de los dos subrboles )recorrido pos"fi'o,.

rboles Binarios.
rboles Binarios.

.. .. >ecorrido )55,.

#n el rbol binario de la fi@ura los recorridos son:

1refi'o: !9, 19, 1B, !B, 8B, .B, .9, 89.

5nfi'o: 1B, 19, !B, !9, .B, .9, 8B, 89. )orden crecien"e,.

1os"fi'o: 1B, !B, 19, .9, .B, 89, 8B, !9.


!9
19
!B 1B
8B
89 .B
.9

rboles Binarios.
rboles Binarios.

.. 8. Borrado.
Borrado < proc)x: "ipo ca$po infor$a"ivo? rbol: "ipo B;,.
>e3uiere: #l nodo a borrar ha de es"ar en el rbol.
4odifica: rbol.
#fec"os #fec"os: Borra el nodo con ca$po infor$a"ivo ( del rbol, $an"eniendo el orden del $is$o.
1asos del borrado.

2ocalizar el nodo a borrar.

Si el nodo a borrar "iene $enos de dos hi'os, se presen"an dos casos.

Si es la raz, la nueva raz ser el hi'o 3ue "en@a o 6U22 si no "iene hi'os, y se borra el nodo en
cues"in.

Si no es la raz, el padre de dicho nodo se enlaza, se@=n su filiacin, con el posible hi'o 3ue
"en@a o con 6U22, y se borra el nodo en cues"in.

Si el nodo a borrar "iene dos hi'os:

Se localiza el $ayor del subrbol iz3uierdo de dicho nodo.

#l ca$po infor$a"ivo del $ayor, sus"i"uye al ca$po infor$a"ivo del nodo a borrar.

Se borra el $ayor del subrbol iz3uierdo, el cual debe "ener $enos de dos hi'os. )caso an"erior,

rboles Binarios.
rboles Binarios.

.. 8. Borrado )55,.

1aso 1. Borrado de 9 y de .B.

1aso !. Borrado de !9.


!9
19
!B 1B
8B
89 .B
.9
9
1B
!.
!B
!!
!9
19
!B 1B
8B
89 .B
.9
9
1B
!.
!B
!!
!9
19
!B 1B
8B
89 .9 1B
!.
!B
!!
!9
19
!B 1B
8B
89 .B 1B
!.
!B
!.
19
!B 1B
8B
89 .9 1B
!!
!B

You might also like