Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/10/2010, 21:19
bofogdl
 
Fecha de Ingreso: octubre-2010
Mensajes: 13
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: como saber el nivel de un arbol binario en c??

Cita:
Iniciado por sam90 Ver Mensaje
la funcion puede variar de la implementacion. Pero mas o menos seria asi: Con nivel te refieres a la altura maxima, no?

Bueno mas o menos seria asi

int nivel (miarbol)

if miarbol == hoja then return 1;
else
{
a = nivel(hijoizquierdo);
b = nivel(hijoderecho);
return max(a,b) +1

}

Obviamente que todo depende de como lo implementaste.
Mira asi tengo mi arbol

El for para llenarlo d 15 numeros aleatorios y al final la funcion de inserta los nodos

for (k=1; k<=15; k++)
{
num=rand()%100;
//Dentro del for llamo la funcion de insertar nodo para ir haciendo el arbol
Raiz=InsertaNodo(num, Raiz);
printf("\t%d\n", num);

}


NodoArbol* InsertaNodo(int valor, NodoArbol *subArbol)
{
if(subArbol==NULL)
{
subArbol=new NodoArbol;
subArbol->HijoIzquierdo=subArbol->HijoDerecho=NULL;
subArbol->dato=valor;
}
else

if(valor<subArbol->dato)
subArbol->HijoIzquierdo=InsertaNodo(valor, subArbol->HijoIzquierdo);

else
subArbol->HijoDerecho=InsertaNodo(valor, subArbol->HijoDerecho);
return(subArbol);
}