Professional Documents
Culture Documents
Un rbol es un grupo finito de nodos, donde uno de esos nodos sirve como raz y el resto de los
nodos se organizan debajo de la raz de una forma jerrquica. Un nodo que referencia un nodo
debajo suyo es un nodo padre. De forma similar, un nodo referenciado por un nodo encima de l, es
un nodo hijo. Los nodos sin hijos, son nodos hoja. Un nodo podra ser un padre e hijo, o un nodo
hijo y un nodo hoja.
Un nodo padre podra referenciar tantos hijos como sea necesario. En muchas situaciones, los
nodos padre slo referencian un mximo de dos nodos hijos. Los rboles basados en dichos nodos
son conocidos como arboles binarios. La siguiente figura representa un rbol binario que almacena
siete palabras en orden alfabtico.
Insertar nodos, borrar nodos, y atravesar los nodos en rboles binarios o de otros tipos se realiza
mediante la recursin (vea el captulo siguiente). Por brevedad, no entraremos en los algoritmos
recursisvos de insercin, borrado y movimiento por los nodos. En su lugar, presentar el cdigo
fuente de una aplicacin de contaje de palabras para demostrar la insercin y el movimiento por los
nodos. Este cdigo utiliza insercin de nodos para crear un rbol binario, donde cada nodo contiene
una palabra y un contador de ocurrencias de esa palabra, y muestra estas palabras y contadores en
orden alfabtico mediante una variante del algoritmo de movimiento por rboles move-left-
examine-node-move-right:
// WC.java
NODO PADRE, NODO HIJO:
De acuerdo con la definicin de Winston (1992)1, una red semntica es una representacin en la
que:
Ciertas relaciones se llaman ramas. Cada rama conecta dos nodos, el nodo de la cabeza,
llamado nodo padre, y el nodo de la cola, llamado nodo hijo.
Si un nodo no tiene nodo padre, entonces es un nodo raz. Otros nodos slo tienen un nodo
padre.
Si un nodo no tiene nodo hijo, entonces se llama nodo hoja.
Cuando dos nodos estn conectados entre ellos por una cadena de dos o ms ramas, uno es
el ancestro y el otro el descendiente.
Posee constructores que conectan un nodo padre con un nodo hijo con una relacin
arbrea.
Posee lectores que listan los hijos de un nodo determinado o el padre de un nodo
determinado.
En ciencias de la informtica, un rbol es una estructura de datos ampliamente usada que emula la
forma de un rbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se
construye el rbol y puede tener cero o ms nodos hijos conectados a l. Se dice que un nodo a es
padre de un nodo b si existe un enlace desde a hasta b (en ese caso, tambin decimos que b es hijo
de a). Slo puede haber un nico nodo sin padres, que llamaremos raz. Un nodo que no tiene hijos
se conoce como hoja.
rbol binario
En ciencias de la computacin, un rbol binario es una estructura de datos en el cual cada nodo:
Orden: es el nmero potencial de hijos que puede tener cada elemento de rbol. De este
modo, diremos que un rbol en el que cada nodo puede apuntar a otros dos es de orden
dos, si puede apuntar a tres ser de orden tres, etc.
Grado: el nmero de hijos que tiene el elemento con ms hijos dentro del rbol. En el rbol
del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen
elementos con ms de tres hijos.
Nivel: se define para cada elemento del rbol como la distancia a la raz, medida en nodos.
El nivel de la raz es cero y el de sus hijos uno.
Altura: la altura de un rbol se define como el nivel del nodo de mayor nivel. Como cada
nodo de un rbol puede considerarse a su vez como la raz de un rbol, tambin podemos
hablar de altura de ramas.
Los rboles de orden dos son bastante especiales, de hecho les dedicaremos varios
captulos. Estos rboles se conocen tambin como rboles binarios.
Frecuentemente, aunque tampoco es estrictamente necesario, para hacer ms fcil moverse
a travs del rbol, aadiremos un puntero a cada nodo que apunte al nodo padre. De este
modo podremos avanzar en direccin a la raz, y no slo hacia las hojas.
Es importante conservar siempre el nodo raz ya que es el nodo a partir del cual se
desarrolla el rbol, si perdemos este nodo, perderemos el acceso a todo el rbol.
El nodo tpico de un rbol difiere de los nodos que hemos visto hasta ahora para listas,
aunque slo en el nmero de nodos.
GIA
HIJO. X es hijo de Y, s y solo s el nodo X es apuntado
por Y. Tambin se dice que X es descendiente directo de Y.
PADRE. X es padre de Y s y solo s el nodo X apunta a Y.
Tambin se dice que X es antecesor de Y.
HERMANO. Dos nodos sern hermanos si son
descendientes directos de un mismo nodo.
HOJA. Se le llama hoja o Terminal a aquellos nodos que
no tienen ramificaciones (hijos).
NODO INTERIOR. Es un nodo que no es raz ni
Terminal.
GRADO. Es el nmero de descendientes directos de un
determinado nodo.
GRADO DEL ARBOL Es el mximo grado de todos los
nodos del rbol.
NIVEL. Es el nmero de arcos que deben ser recorridos
para llegar a un determinado nodo. Por definicin la raz
tiene nivel 1.
ALTURA. Es el mximo nmero de niveles de todos los
nodos del rbol.
PESO. Es el nmero de nodos del rbol sin contar la raz.
LONGITUD DE CAMINO. Es el nmero de arcos que
deben ser recorridos para llegar desde la raz al nodo X.
Por definicin la raz tiene longitud de camino 1, y sus
descendientes directos longitud de camino 2 y as
sucesivamente.
rboles AVL
Factor de equilibrio
Cada nodo, adems de la informacin que se pretende almacenar,
debe tener los dos punteros a los rboles derecho e izquierdo, igual
que los rboles binarios de bsqueda (ABB), y adems el dato que
controla el factor de equilibrio.
Insercin
La insercin en un rbol de AVL puede ser realizada insertando el
valor dado en el rbol como si fuera un rbol de bsqueda binario
desequilibrado y despus retrocediendo hacia la raz, rotando
sobre cualquier nodo que pueda haberse desequilibrado durante
la insercin.
Extraccin
El problema de la extraccin puede resolverse en O(log n) pasos.
Una extraccin trae consigo una disminucin de la altura de la
rama donde se extrajo y tendr como efecto un cambio en el
factor de equilibrio del nodo padre de la rama en cuestin,
pudiendo necesitarse una rotacin.
Esta disminucin de la altura y la correccin de los factores de
equilibrio con sus posibles rotaciones asociadas pueden
propagarse hasta la raz
Bsqueda
Las bsquedas se realizan de la misma manera que en los ABB,
pero al estar el rbol equilibrado la complejidad de la bsqueda
nunca exceder de O(log n).
Buscar un elemento
Insertar un elemento
Necesitamos un puntero auxiliar para conservar una referencia al padre del nodo
raz actual. El valor inicial para ese puntero es NULL.
Padre = NULL
nodo = Raz
Bucle: mientras actual no sea un rbol vaco o hasta que se encuentre el
elemento.
Eliminar un elemento
Para borrar un elemento tambin nos basamos en el algoritmo de bsqueda. Si el
elemento no est en el rbol no lo podremos borrar. Si est, hay dos casos posibles:
Ejemplo:
rbol binario
Existen dos tipos de rboles binarios que se consideran especiales en funcin de ciertas
propiedades. Estos son los siguientes:
Recorrido Pre-orden (N I D)
En este recorrido lo primero que se obtiene o evala es el nodo, antes de recorrer las
ramas; posteriormente se recorre la rama izquierda y finalmente la rama derecha. El
orden es: Nodo Izquierda Derecha (N I D).
El recorrido Pre-orden de nuestro rbol de la Figura 3 es:
M E A R O N Q V
Y el recorrido Pre-orden del rbol de la Figura 5 es: N E A G R O V
Recorrido In-orden (I N D)
En este recorrido se procesa la primera rama (rama izquierda), despus el nodo y
finalmente la ultima rama (rama derecha). El orden es: Izquierda Nodo Derecha (I
N D).
El recorrido In-orden de nuestro rbol de la Figura 3 es:
AEMNOQRV
Y el recorrido In-orden del rbol de la Figura 5 es: A E G N O R V
Recorrido Post-orden (I D R)
En este recorrido se primero se procesan las ramas para finalmente procesar el nodo. El
orden de este recorrido es: Izquierda Derecha Nodo (I D N).
El recorrido Post-orden del rbol de la Figura 3 es: A E N Q O V R M
Y el recorrido Post-orden del rbol de la Figura 5 es: A G E O V R N
/* -------------------------------------------------------------------------------------------
EN ESTA SECCION IRIA EL TEMA OPRACIONES SOBRE ABB
CALCULAR NUMERO DE NODOS
COMPROBAR SI EL NODO ES HOJA
CALCULAR EL NIVEL DE UN NODO
CALCULAR LA ALTURA DE UN ARBOL
http://c.conclase.net/edd/index.php?cap=008#8_5
http://c.conclase.net/edd/index.php?cap=008b#8_6 Dobles
http://c.conclase.net/edd/index.php?cap=008c#8_7 equilibrados
Introduccin
Un rbol AVL (llamado as por las iniciales de sus inventores: Adelson-Velskii y Landis)
es un rbol binario de bsqueda en el que para cada nodo, las alturas de sus subrboles
izquierdo y derecho no difieren en ms de 1.
En el grfico que puede observar que tanto B como C tienen la misma altura (n), y A es
una unidad mayor (n+1). Esto hace que el FE de Q sea -1, la altura del subrbol que
tiene Q como raz es (n+2) y por lo tanto el FE de P es -2.
Se trata del caso simtrico del anterior. Esta rotacin se usar cuando el subrbol
derecho de un nodo sea 2 unidades ms alto que el izquierdo, es decir, cuando su FE sea
de 2. Y adems, la raz del subrbol derecho tenga una FE de 1, es decir, que est
cargado a la derecha.
Procederemos del siguiente modo:
En el grfico que puede observar que tanto A como B tienen la misma altura (n), y C es
una unidad mayor (n+1). Esto hace que el FE de Q sea 1, la altura del subrbol que tiene
Q como raz es (n+2) y por lo tanto el FE de P es 2.