Vous êtes sur la page 1sur 7

rbol binario

Vamos a hablar primero un poco de que son los arboles binarios; nos dice Wikipedia Un
rbol binario es un grafo conexo, a cclico y no dirigido tal que el grado de cada vrtice no
es mayor a 3, eso significa que tenemos un grafo donde cada nodo puede tener mximo 2
hijos ( o hojas ) y estas hojas no pueden tener como hijos a cualquier otra hoja anterior
como podemos ver en la siguiente imagen:

Podemos ver en la imagen como Raz es padre de Hoja 1 y Hoja 2 y estas a su vez
tambin son la raz de las Sub hojas y se vuelve un proceso recursivo hasta n cantidad de
hojas.
Para que sirve un rbol binario?
Como todos sabemos un rbol binario es una estructura de datos, y como todas, este sirve
para organizar datos para facilitar su manipulacin, ya sea el ingreso, borrado o bsqueda
de datos, y precisamente una de las principales ventajas de los rboles binarios es la
bsqueda, ya que como en muchos algoritmos de bsqueda necesitamos tener la
informacin ordenada y en nuestros rboles binarios precisamente los datos van ingresando
de forma ordenada.


Recorridos con los conocidos mtodos recursivos:
Inorden
Postorden
Preorden
Cmo se ingresa la informacin?
Como dije anteriormente, la informacin se ingresa de forma ordenada esto se resuelve de
forma muy sencilla con estos pasos:
1. Se toma el dato a ingresar X
2. Partiendo de la raz preguntamos: Nodo == null ( o no existe ) ?
3. En caso afirmativo X pasa a ocupar el lugar del nodo y ya hemos ingresado nuestro
primer dato.
4. En caso negativo preguntamos: X < Nodo
5. En caso de ser menor pasamos al Nodo de la IZQUIERDA del que acabamos de
preguntar y repetimos desde el paso 2 partiendo del Nodo al que acabamos de
visitar
6. En caso de ser mayor pasamos al Nodo de la DERECHA y tal cual hicimos con el
caso anterior repetimos desde el paso 2 partiendo de este nuevo Nodo.
Nos daremos cuenta de que es un proceso RECURSIVO en el cual al final por ms grande
que sea el rbol el dato a entrar ocupar un lugar, vamos a ejemplificar lo ya mencionado
con una imagen:

Si observan con detenimiento la imagen aunque se vea algo complejo entendern bien el
funcionamiento.
Eliminar un Nodo
Quiz no es una de las tareas ms sencillas, ya que se pueden presentar diferentes
situaciones:
Borrar un Nodo sin hijos
Borrar un Nodo con un subrbol hijo
Borrar un Nodo con dos subrboles hijos
Veamos como resolver cada uno de estos casos.
Caso 1 (Borrar un Nodo sin hijos) :
El caso ms sencillo, lo nico que hay que hacer es borrar el nodo y establecer el apuntador
de su padre a nulo.

Caso 2 (Borrar un Nodo con un subrbol hijo) :
Este caso tampoco es muy complicado, nicamente tenemos que borrar el Nodo y el
subrbol que tena pasa a ocupar su lugar.

Caso 3 (Borrar un Nodo con dos subrboles hijos) :
Este es un caso algo complejo, tenemos que tomar el hijo derecho del Nodo que queremos
eliminar y recorrer hasta el hijo ms a la izquierda ( hijo izquierdo y si este tiene hijo
izquierdo repetir hasta llegar al ltimo nodo a la izquierda), reemplazamos el valor del
nodo que queremos eliminar por el nodo que encontramos ( el hijo ms a la izquierda ), el
nodo que encontramos por ser el ms a la izquierda es imposible que tenga nodos a su
izquierda pero si que es posible que tenga un subrbol a la derecha, para terminar solo nos
queda proceder a eliminar este nodo de las formas que conocemos ( caso 1, caso 2 ) y
tendremos la eliminacin completa.
Ahora que sabemos como eliminar nodos segn sea el caso vamos a programar

Vous aimerez peut-être aussi