----------------------------------------------------------------------------------------------------
Código
#include <iostream> using namespace std; struct Nodo { int valor; char letra; Nodo *pMenor; Nodo *pMayor; }; class Arbol { private: Nodo *pOrigen; public: Arbol(int num, char c) { pOrigen->pMayor = NULL; pOrigen->pMenor = NULL; pOrigen->valor = num; pOrigen->letra = c; } void Add(int num, char c) { Nodo *pRecorre = pOrigen; while(true) { if(num > pRecorre->valor) { if(pRecorre->pMayor == NULL) { Nodo *pNuevoNodo = new Nodo; pNuevoNodo->valor = num; pNuevoNodo->letra = c; pNuevoNodo->pMayor = NULL; pNuevoNodo->pMenor = NULL; pRecorre->pMayor = pNuevoNodo; break; } else { pRecorre = pRecorre->pMayor; } } else if(num < pRecorre->valor) { if(pRecorre->pMenor == NULL) { Nodo *pNuevoNodo = new Nodo; pNuevoNodo->valor = num; pNuevoNodo->letra = c; pNuevoNodo->pMayor = NULL; pNuevoNodo->pMenor = NULL; pRecorre->pMenor = pNuevoNodo; break; } else { pRecorre = pRecorre->pMenor; } } else { pRecorre->letra = c; break; } } } char Find(const int num) { Nodo *pRecorre = pOrigen; while(true) { if(pRecorre->valor == num) { return pRecorre->letra; } else if(num > pRecorre->valor) { if(pRecorre->pMayor == NULL) { return '&'; } else { pRecorre = pRecorre->pMayor; } } else if(num < pRecorre->valor) { if(pRecorre->pMenor == NULL) { return '&'; } else { pRecorre = pRecorre->pMenor; } } } } }; int main() { Arbol miArbol(0, 'g'); miArbol.Add(5, 'f'); miArbol.Add(6, 'f'); miArbol.Add(7, 'f'); miArbol.Add(8, 'f'); miArbol.Add(9, 'D'); char c = 'A'; c = miArbol.Find(9); cout << "La letra es: " << c << endl; return 0; }