Buena noche comunidad e elhacker... cargo un codigo en este for para preguntar como puedo complementar este codigo para que sea recursivo y encuentre la altura de un arbol... agradecería muccho su información . ...
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
struct nodoarbol{ //ESTRUCTURA DEL ARBOL
struct nodoarbol *izqnodo;
int info;
struct nodoarbol *dernodo;
};
typedef struct nodoarbol NODO; //DEFINICION DE TIPO NODO
typedef NODO *ARBOL; //DECLARACION DE VARIABLE PUNTERO A NODO
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
void insertanodonuevo(ARBOL *,int); //DECLARACION DE FUNCIONES
void inorden(ARBOL);
void preorden(ARBOL);
void postorden(ARBOL);
void treefree(ARBOL);
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
/*-----------------------<FUNCION PRINCIPAL>--------------------------------*/
main(){
int i;
char newnod,chain[200],elementos;
ARBOL raiz=NULL;
printf("\n\n\t\t INGRESE DATOS PARA CREAR ARBOL BINARIO: \n"); //MAXIMO DE CARACTERES 200
printf("\n\t\t"); gets(chain);
elementos=strlen(chain);
for(i=1;i<=elementos;i++) {
newnod=chain[i-1];
insertanodonuevo(&raiz,newnod);
}
printf("\n\n preorden ¯¯\t");
preorden(raiz);
printf("\n\n inorden ¯¯\t");
inorden(raiz);
printf("\n\n postorden ¯¯\t");
postorden(raiz); //LLAMADO A FUNCION DE RECORRIDO EN POSTORDEN
getch();
treefree(raiz);
raiz=NULL;
return 0;
}
void insertanodonuevo(ARBOL *rarbol,int nuevo){
if(*rarbol==NULL){
*rarbol=(NODO *)malloc(sizeof(NODO));
if(*rarbol!=NULL){
(*rarbol)->info=nuevo;
(*rarbol)->izqnodo =NULL;
(*rarbol)->dernodo=NULL;
}
else{printf("\n Memoria No Disponible !!!!\n");}
}
else
if(nuevo<(*rarbol)->info)
insertanodonuevo(&((*rarbol)->izqnodo),nuevo);
else
if(nuevo>(*rarbol)->info)
insertanodonuevo(&((*rarbol)->dernodo),nuevo);
}
void preorden(ARBOL rarbol){
if(rarbol!=NULL){
printf(" %c ",rarbol->info);
preorden(rarbol->izqnodo);
preorden(rarbol->dernodo);
}
}
void inorden(ARBOL rarbol){
if(rarbol!=NULL){
inorden(rarbol->izqnodo);
printf(" %c ",rarbol->info);
inorden(rarbol->dernodo);
}
}
void postorden(ARBOL rarbol){
if(rarbol!=NULL){
postorden(rarbol->izqnodo);
postorden(rarbol->dernodo);
printf(" %c ",rarbol->info);
}
}
void treefree(ARBOL rarbol){
if(rarbol!=NULL){
treefree(rarbol->izqnodo);
treefree(rarbol->dernodo);
free(rarbol);
}
}