Implementación de árbol binario en C

jimmyjazz
19 de Mayo del 2008
Saludos a todos,
estoy tratando de hacer mi propia implementación de árbol binario en c y tengo una duda. En la definición del tipo árbol quiero poner el apuntador a hijo izquierdo y el apuntador a hijo derecho y un elem de tal manera que el árbol pueda contener int, long, char u otras cosas. Mi duda es como defino elem para hacer esto.
Muchas gracias

bigMander
19 de Mayo del 2008
sigue este ejemplo

struct arbol {
arbol* izq, *der;
int valor;
};
void insertar (arbol** raiz, int n)
{
if (*raiz == NULL){
*raiz = new arbol;
(*raiz)->valor = n;
(*raiz)->izq = (*raiz)->der = NULL;
}
else if ((*raiz)->valor < n)
insertar(&(*raiz)->der, n);
else if ((*raiz)->valor > n)
insertar(&(*raiz)->izq, n);
else
throw Exception("ERROR: valor " + String(n) + " duplicado");
}

con respecto a tu duda en vez de poner int valor, puedes poner un objeto de una estructura donde manejes ya informacion determinada y al momento hacer la insercion tu programa como quiere que el usuario lo ordene yasea por un campo u otro de la estructura que te comente

jimmyjazz
19 de Mayo del 2008
Muchisimas gracias