Título: Escribir una funcion recursiva que encuentre la altura de un arbol binario... .. Publicado por: juancarlossoma en 6 Junio 2012, 06:30 am 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); } } :-( :laugh: Título: Re: Escribir una funcion recursiva que encuentre la altura de un arbol binario... .. Publicado por: caldera_titin en 7 Junio 2012, 05:06 am La altura de un arbol? mmm.. no entiendo el contexto que lo nesecita, pero para calcular la altura de cualquier cosa puedes usar el seno de la funcion dependiendo de el angulo que forma una linea imaginaria con la sombra
Título: Re: Escribir una funcion recursiva que encuentre la altura de un arbol binario... .. Publicado por: durasno en 7 Junio 2012, 07:47 am xDDDDDDD
Título: Re: Escribir una funcion recursiva que encuentre la altura de un arbol binario... .. Publicado por: do-while en 7 Junio 2012, 11:22 am ¡Buenas!
Es muy facil. Tendras que tener una funcion que reciba un puntero a arbol. Si el puntero es nulo devuelve 0, sino devolveras 1 + maximo de las alturas de las ramas izquierda y derecha. (Si, creo que si). La implementacion te toca a ti. ¡Saludos! Título: Re: Escribir una funcion recursiva que encuentre la altura de un arbol binario... .. Publicado por: juancarlossoma en 8 Junio 2012, 00:21 am Podría alguien ayudarme a como hacer esa función ya implementada, pues ya llevo varias noches probando sobre.. como implementar el calculo de la altura de este arbol ;-)
|