Hola estaba viendo mi carpeta del cole y me encontre con esto
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
Y con funcion lo hice asi:
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:
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 (cpp) [Seleccionar]
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);
}
}
Y con funcion lo hice asi:
Código (cpp) [Seleccionar]
//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 (cpp) [Seleccionar]
char maximo(arbol a)
{
if(a!=NULL){
if(a->der==NULL)
return a->dato;
else
return maximo(a->der);
}
}