Intengo encontrar el maximo valor, de un arbol, pero algo hago mal...Eh tratado de adaptar codigo, pero no estoy entendiendo...Me dan una mano? Muchas gracias!
Código
#include <stdio.h> #include <stdlib.h> typedef struct arbol{ int dato; struct arbol *der; struct arbol *izq }treenode; void crear(treenode **arb); void mostrarOrden (treenode *hoja); void mostrarPreorden(treenode *hoja); void mostrarPosorden(treenode *hoja); int contarNodosHoja(treenode *p); int sumarMultiplosDeCuatro(treenode *p); treenode *primerNodo(treenode *hoja); int sumatoriaImparesRaiz(treenode *p, int raiz); int contarImparesRaiz(treenode *p, int raiz); void insertar(treenode **hoja,int num); int maximo(treenode *p); int main(){ treenode *arb=NULL; int max=0; crear(&arb); mostrarOrden (arb); mostrarPreorden(arb); mostrarPosorden(arb); max=maximo(arb); } //Crea el Arbol void crear(treenode **hoja){ int num; while(num!=-1){ insertar(&(*hoja),num); } } //Inserta Hoja al Arbol void insertar(treenode **hoja,int num){ if(num==-1){ return; } if(*hoja==NULL){ (*hoja)->dato=num; (*hoja)->der=NULL; (*hoja)->izq=NULL; }else{ //Si el Numero es Mayor va a la Derecha if(num>(*hoja)->dato){ insertar(&(*hoja)->der,num); }else{ insertar(&(*hoja)->izq,num); } } return; } //Mostrar en orden (Izquierda - Raiz - Derecha) void mostrarOrden (treenode *hoja){ if (hoja!=NULL){ mostrarOrden(hoja->izq); mostrarOrden(hoja->der); } return; } //Mostrar en preOrden (Raiz - Izquierda - Derecha) void mostrarPreorden(treenode *hoja){ if (hoja!=NULL){ mostrarPreorden(hoja->izq); mostrarPreorden(hoja->der); } return; } //mostrar en posOrden (Izquierda - Derecha - Raiz) void mostrarPosorden(treenode *hoja){ if (hoja!=NULL){ mostrarPosorden(hoja->izq); mostrarPosorden(hoja->der); } return; //Funcion Maximo int maximo(treenode *p){ if(p==NULL){ return -99; }else{ int temp ; temp=max( maximo(p->izq), maximo(p->der)); return( max( p->dato , temp ) ); } } }
Si alguno tiene una idea, del por que no encuentra el dato y me entrega basura...voy a estar mas que agradecido! Saludos a todos!