Muy interesante todo. Gracias por el material
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#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;
}