cómo ingresar datos a un arbol binario?
Publicado por manolo (2 intervenciones) el 15/11/2003 09:44:32
hola! necesito escribir el código para ingresar datos(numeros) a un árbol binario (con punteros), sólo necesito la parte ingresar datos y esto es lo que debe hacer: 1)ver si la raíz es null (vacía), si lo es ingresar el número. 2)sila raíz no es null, debe preguntar donde quiero agregar el numero: a la izquierda o a la derecha. 3)si alguna rama de la raíz tiene ya un número debe preguntar si quiero agregar el número en la rama libre o navegar hacia la rama ocupada (si se elige esto la rama pasa a ser la raiz para que se muestre el menú de agregar a la izquierda o derecha).
eso es todo, no creo que sea tan difícil sólo que los punteros me tienen loco. como ayuda les pongo la declaración de la estructura del nodo y el procedimiento que muestra en preorden (para que entiendan mejor el problema):
struct nodo{
int num;
struct nodo *sai; //sai=sub arbol izquierdo
struct nodo *sad;
}
struct nodo *raiz=null; //esto va dentro del main (creo)
------------------------------------
void preorden(struct nodo *p) //muestra el árbol ord. por preorden
{
if(p!=NULL)
{
printf("%d", p->num);
preorden(p->sai);
preorden(p->sad);
}
}
gracias de antemano si pueden ayudarme :)
manolo.
eso es todo, no creo que sea tan difícil sólo que los punteros me tienen loco. como ayuda les pongo la declaración de la estructura del nodo y el procedimiento que muestra en preorden (para que entiendan mejor el problema):
struct nodo{
int num;
struct nodo *sai; //sai=sub arbol izquierdo
struct nodo *sad;
}
struct nodo *raiz=null; //esto va dentro del main (creo)
------------------------------------
void preorden(struct nodo *p) //muestra el árbol ord. por preorden
{
if(p!=NULL)
{
printf("%d", p->num);
preorden(p->sai);
preorden(p->sad);
}
}
gracias de antemano si pueden ayudarme :)
manolo.
Valora esta pregunta


0