Índice

Controlar un árbol binario

1. Crear un árbol binario

Árbol:binario

Las funciones que proponemos a continuación permiten crear árboles a partir de una descripción o de forma completamente aleatoria. Nuestro objetivo es utilizarlos para probar las funciones de gestión de árboles.

a. Crear un árbol a partir de un esquema descriptivo

Árbol:crear a partir de un esquema descriptivo

A continuación se muestra el árbol que se desea crear:

images/06ri61.PNG

Crear el árbol «a mano», con una función de creación de nodos

Vamos a crear un árbol dinámico. Necesitaremos una tabla de caracteres para almacenar una cadena (o tal vez solo un carácter, ya que hay que almacenar caracteres) y dos punteros, uno para el hijo izquierdo y otro para el hijo derecho. La estructura de datos es la siguiente:

typedef struct nodo{ 
   char dat[80]; 
   struct nodo*i, *d; 
}t_nodo;

A continuación se muestra una función para inicializar un nodo del árbol:

t_nodo* CN(char s[],t_nodo*i, t_nodo*d) 
{ 
t_nodo*n; 
   n=(t_nodo*)malloc(sizeof(t_nodo)); 
   strcpy(n->s, s); 
   n->i=i; 
   n->d=d; 
   return n; 
}

y la función para crear el árbol:

t_nodo* crearArbol1() 
{ 
   return CN("A", 
                  CN("B", 
                        CN("D",NULL,NULL), 
                        CN("E",NULL,NULL)), 
                  CN("C", 
                        CN("F", 
                               CN("H",NULL,NULL), 
                               NULL), 
                        CN("G",NULL,NULL))  ...