Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaci�nIr a la b�squeda
Commons-emblem-question book orange.svg
Este art�culo o secci�n necesita referencias que aparezcan en una publicaci�n
acreditada.
Este aviso fue puesto el 2 de noviembre de 2011.
En ciencias de la computaci�n, un �rbol binario es una estructura de datos en la
cual cada nodo puede tener un hijo izquierdo y un hijo derecho. No pueden tener m�s
de dos hijos (de ah� el nombre "binario"). Si alg�n hijo tiene como referencia a
null, es decir que no almacena ning�n 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 b�squeda, los mont�culos binarios
y Codificaci�n de Huffman.
�ndice
1 Definici�n de teor�a de grafos
2 Tipos de �rboles binarios
3 Implementaci�n en C
4 Recorridos sobre �rboles binarios
4.1 Recorridos en profundidad
4.1.1 Recorrido en preorden
4.1.2 Recorrido en postorden
4.1.3 Recorrido en inorden
4.2 Recorridos en amplitud (o por niveles)
4.3 Creaci�n de �rboles a partir de los recorridos
5 M�todos para almacenar �rboles Binarios
6 Codificaci�n de �rboles n-arios como �rboles binarios
7 V�ase tambi�n
8 Enlaces externos
Definici�n de teor�a de grafos
Un �rbol binario con enraizado es como un grafo que tiene uno de sus v�rtices,
llamado ra�z, de grado no mayor a 2. Con la ra�z escogida, cada v�rtice tendr� un
�nico padre, y nunca m�s de dos hijos. Si rehusamos el requerimiento de la
conectividad, permitiendo m�ltiples componentes conectados en el grafo, llamaremos
a esta �ltima estructura un bosque'.
Existen tipos de �rboles binarios que suelen usarse para fines espec�ficos, como:
Estructura con manejo de memoria din�mica, siendo el puntero que apunta al �rbol de
tipo tArbol:
typedef struct nodo {
int clave;
struct nodo *izdo, *dcho;
}Nodo;
Estructura con arreglo indexado:
int �rbol[NUMERO_DE_NODOS];
Recorridos sobre �rboles binarios
Recorridos en profundidad
El m�todo de este recorrido es tratar de encontrar de la cabecera a la ra�z en nodo
de unidad binaria. Ahora pasamos a ver la implementaci�n de los distintos
recorridos:
Recorrido en preorden
En este tipo de recorrido se realiza cierta acci�n (quiz�s simplemente imprimir por
pantalla el valor de la clave de ese nodo) sobre el nodo actual y posteriormente se
trata el sub�rbol izquierdo y cuando se haya concluido, el sub�rbol derecho. Otra
forma para entender el recorrido con este m�todo seria seguir el orden: nodo ra�z,
nodo izquierda, nodo derecha.
Esquema de implementaci�n:
Implementaci�n en C:
Se sigue repitiendo el proceso hasta encontrar todos los nodos del �rbol, en este
punto la siguiente ra�z izquierda es el {\displaystyle 7} 7 y la ra�z derecha el
{\displaystyle 5} 5.
Cuando se llegan a nodos en los que �nicamente cuentan con una rama es necesario
saber que rama es la derecha y cu�l es la izquierda (para algunos �rboles con
balanceo como los AVL), por ejemplo siguiendo la rama de la derecha partiendo de
que el {\displaystyle 5} 5 es la ra�z el recorrido inorden es {\displaystyle 5,4,9}
5,4,9 entonces el siguiente nodo va a la derecha, no hay nodo a la izquierda,
despu�s, los recorridos para el sub�rbol son:
Este m�todo es 100% efectivo cuando no existen nodos repetidos, cuando los nodos se
repiten la complejidad aumenta para poder descubrir cu�l es el nodo ra�z en el
recorrido inorden