1) Codifique un algoritmo recursivo que determine el máximo valor del árbol binario de caracteres.
He hecho esto 1 con procedimiento y me quedo asi
Código
Y con funcion lo hice asi:
typedef struct tarbol *arbol; typedef struct tarbol{ char dato; arbol izq; arbol der; }; if(a!=NULL){ m=a->dato; maximo(a,m); cout<<"Maximo: "<<m<<endl; } else cout<<"Arbol vacio"<<endl; void maximo(arbol a, char &m) { if(a!=NULL){ if(a->dato>m) m=a->dato; maximo(a->izq,m); maximo(a->der,m); } }
Código
//Tengo algo de dudas en esta función porque en bst funciona pero no probe en bt char maximo(pnodo a) { if(a==NULL) return '@'; char letra=a->dato; char izquierda=maximo(a->izq); char derecha=maximo(a->der); if(izquierda>letra) letra=izquierda; if(derecha>letra) letra=derecha; return letra; }
Luego la consigna dice:
2) Modofique el algoritmo del ítem anterior para que la busqueda se realice en un arbol binario de busqueda
Y ese lo hice asi:
Código
char maximo(arbol a) { if(a!=NULL){ if(a->der==NULL) return a->dato; else return maximo(a->der); } }