You are on page 1of 4

En teora de grafos, un rbol es un grafo en el que cualesquiera dos vrtices estn conectados por exactamente un camino.

Un bosque es una unin disjunta de rboles. Un rbol a veces recibe el nombre de rbol libre.

Definiciones
Un rbol es un grafo simple unidireccional G que satisface alguna de las siguientes condiciones equivalentes: G es conexo y no tiene ciclos simples. G no tiene ciclos simples y, si se aade alguna arista se forma un ciclo simple. G es conexo y si se le quita alguna arista deja de ser conexo. G es conexo y el grafo completo de 3 vrtices K3 no es un menor de G.

Dos vrtices cualquiera de G estn conectados por un nico camino simple. Si G tiene muchos vrtices, n, entonces las definiciones anteriores son tambin equivalentes a cualquiera de las siguientes condiciones: G es conexo y tiene n 1 aristas. G no tiene aristas simples y tiene n 1 aristas. La cantidad de hojas de un rbol siempre es mayor o igual a la mitad de la totalidad de los nodos. Un grafo unidireccional simple G es un bosque si no tiene ciclos simples. Un rbol dirigido es un grafo dirigido que sera un rbol si no se consideraran las direcciones de las aristas. Algunos autores restringen la frase al caso en el que todos las aristas se dirigen a un vrtice particular, o todas sus direcciones parten de un vrtice particular. Un rbol recibe el nombre de rbol con raz si cada vrtice ha sido designado raz, en cuyo caso las aristas tienen una orientacin natural hacia o desde la raz. Los rboles con raz, a menudo con estructuras adicionales como orden de los vecinos de cada vrtice, son una estructura clave en informtica; vase rbol (programacin). Un rbol etiquetado es un rbol en el que cada vrtice tiene una nica etiqueta. Los vrtices de un rbol etiquetado de n vrtices reciben normalmente las etiquetas {1,2, ..., n}. Un rbol regular u homogneo es un rbol en el que cada vrtice tiene el mismo grado.

Propiedades
Todo rbol es a su vez un grafo bipartito. Todo rbol con slo un conjunto numerable de vrtices es adems un grafo plano. Todo grafo conexo G admite un rbol de expansin, que es un rbol que contiene cada vrtice de G y cuyas aristas son aristas de G. Dado n vrtices etiquetados, hay n n2 maneras diferentes de conectarlos para construir un grafo. El resultado se llama frmula de Cayley. El nmero de rboles con n vrtices de grado d1,d2,...,dn es:

que es un coeficiente multinomial. Contar el nmero de rboles no etiquetados es un problema complicado. De hecho, no se conoce ninguna frmula para el nmero de rboles t(n) con n vrtices (debe entederse aqu el nmero de rboles diferentes salvo isomorfismo de grafos). Los primerlos valores de t(n) son 1, 1, 1, 1, 2, 3, 6, 11, 23, 47, 106, 235, 551, 1301, 3159, ... (sucesin A000055 en OEIS). Otter (1948) prob que

Una frmula ms exacta para el comportamiento asinttico de t(n) implica que hay dos nmeros y ( 3 y 0.5) tales que:

En ciencias de la computacin, un rbol binario es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener ms de dos hijos (de ah el nombre "binario"). Si algn hijo tiene como referencia a null, es decir que no almacena ningn dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno. Usos comunes de los rboles binarios son los rboles binarios de bsqueda, los montculos binarios y Codificacin de Huffman.

Definicin de teora de grafos


En teora de grafos, se usa la siguiente definicin: Un rbol binario es un grafo conexo, acclico y no dirigido tal que el grado de cada vrtice no es mayor a 3. De esta forma slo existe un camino entre un par de nodos. Un rbol binario con enraizado es como un grafo que tiene uno de sus vrtices, llamado raz, de grado no mayor a 2. Con la raz escogida, cada vrtice tendr un nico padre, y nunca ms de dos hijos. Si rehusamos el requerimiento de la conectividad, permitiendo mltiples componentes conectados en el grafo, llamaremos a esta ltima estructura un bosque.

Tipos de rboles binarios


Un rbol binario es un rbol con raz en el que cada nodo tiene como mximo dos hijos. Un rbol binario lleno es un rbol en el que cada nodo tiene cero o dos hijos. Un rbol binario perfecto es un rbol binario lleno en el que todas las hojas (vrtices con cero hijos) estn a la misma profundidad (distancia desde la raz, tambin llamada altura). A veces un rbol binario perfecto es denominado rbol binario completo. Otros definen Un rbol binario es un rbol en el que ningn nodo puede tener ms de dos subrboles. En un rbol binario cada nodo puede tener cero, uno o dos hijos (subrboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

Implementacin en C
Un rbol binario puede declararse de varias maneras. Algunas de ellas son: Estructura con manejo de memoria dinmica, siendo puntA el puntero que apunta al rbol de tipo tArbol:
typedef struct nodo { int clave; struct nodo *izdo, *dcho; }Nodo;

Estructura con arreglo indexado:


typedef struct tArbol { int clave; tArbol hIzquierdo, hDerecho; } tArbol; tArbol rbol[NUMERO_DE_NODOS];

En el caso de un rbol binario casi-completo (o un rbol completo), puede utilizarse un sencillo arreglo de enteros con tantas posiciones como nodos deba tener el rbol. La informacin de la ubicacin del nodo en el rbol es implcita a cada posicin del arreglo. As, si un nodo est en la posicin i, sus hijos se encuentran en las posiciones 2i+1 y 2i+2, mientras que su padre (si tiene), se encuentra en la posicin truncamiento((i-1)/2) (suponiendo que la raz est en la posicin cero). Este mtodo se beneficia de un almacenamiento ms compacto y una mejor localidad de referencia, particularmente durante un recorrido en preorden. La estructura para este caso sera por tanto:
int rbol[NUMERO_DE_NODOS];

Recorridos en profundidad
El mtodo de este recorrido es tratar de encontrar de la cabecera a la raz en nodo de unidad binaria. Ahora pasamos a ver la implementacin de los distintos recorridos: Recorrido en preorden En este tipo de recorrido se realiza cierta accin (quizs simplemente imprimir por pantalla el valor de la clave de ese nodo) sobre el nodo actual y posteriormente se trata el subrbol izquierdo y cuando se haya concluido, el subrbol derecho. Otra forma para entender el recorrido con este metodo seria seguir el orden: nodo raiz, nodo izquierda, nodo derecha. En el rbol de la figura el recorrido en preorden sera: 2, 7, 2, 6, 5, 11, 5, 9 y 4

Un rbol binario sencillo de tamao 9, 4 niveles y altura 3 (altura = mximo nivel - 1), con un nodo raz cuyo valor es 2. Recorrido en postorden En este caso se trata primero el subrbol izquierdo, despus el derecho y por ltimo el nodo actual. Otra forma para entender el recorrido con este metodo seria seguir el orden: nodo izquierda, nodo derecha, nodo raiz. En el rbol de la figura el recorrido en postorden sera: 2, 5, 11, 6, 7, 4, 9, 5 y 2. Recorrido en inorden En este caso se trata primero el subrbol izquierdo, despus el nodo actual y por ltimo el subrbol derecho. En un ABB este recorrido dara los valores de clave ordenados de menor a mayor. Otra forma para entender el recorrido con este metodo seria seguir el orden: nodo izquierda,nodo raiz,nodo derecha. En el rbol de la figura el recorrido en inorden sera: 2, 7, 5, 6, 11, 2, 5, 4, 9.

Recorridos en amplitud (o por niveles)


En este caso el recorrido se realiza en orden por los distintos niveles del rbol. As, se comenzara tratando el nivel 1, que slo contiene el nodo raz, seguidamente el nivel 2, el 3 y as sucesivamente. En el rbol de la figura el recorrido en amplitud sera: 2, 7, 5, 2, 6, 9, 5, 11 y 4. Al contrario que en los mtodos de recorrido en profundidad, el recorrido por niveles no es de naturaleza recursiva. Por ello, se debe utilizar una cola para recordar los subrboles izquierdos y derecho de cada nodo.

Mtodos para almacenar rboles binarios


Los rboles binarios pueden ser construidos a partir de lenguajes de programacin de varias formas. En un lenguaje con registros y referencias, los rboles binarios son construidos tpicamente con una estructura de nodos y punteros en la cual se almacenan datos, cada uno de estos nodos tiene una referencia o puntero a un nodo izquierdo y a un nodo derecho denominados hijos. En ocasiones, tambin contiene un puntero a un nico nodo. Si un nodo tiene menos de dos hijos, algunos de los punteros de los hijos pueden ser definidos como nulos para indicar que no dispone de dicho nodo. En la figura adjunta se puede observar la estructura de dicha implementacin.

You might also like