elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Error en arbol en: 2 Noviembre 2011, 14:56 pm
Hay alguien que haya conseguido la version completa en español del libro: "El lenguaje de programacion c++" de bjarne strosutrup ?. Dicho esto, estaba intentando hacer un arbol binario. compila bien pero al ejecutarse en la consola aparece lo que deberia aparecer, se obtiene bien el resultado pero, al mismo tiempo sale el cartelito de error. Si alguien puede darme un consejo se lo agradeceria.
----------------------------------------------------------------------------------------------------
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Nodo
  6. {
  7.    int valor;
  8.    char letra;
  9.    Nodo *pMenor;
  10.    Nodo *pMayor;
  11. };
  12.  
  13. class Arbol
  14. {
  15.   private:
  16.   Nodo *pOrigen;
  17.  
  18.   public:
  19.    Arbol(int num, char c)
  20.    { pOrigen->pMayor = NULL;
  21.      pOrigen->pMenor = NULL;
  22.      pOrigen->valor = num;
  23.      pOrigen->letra = c;
  24.    }
  25.    void Add(int num, char c)
  26.    {
  27.        Nodo *pRecorre = pOrigen;
  28.        while(true)
  29.        {
  30.            if(num > pRecorre->valor)
  31.            {
  32.                if(pRecorre->pMayor == NULL)
  33.                {
  34.                    Nodo *pNuevoNodo = new Nodo;
  35.                    pNuevoNodo->valor = num;
  36.                    pNuevoNodo->letra = c;
  37.                    pNuevoNodo->pMayor = NULL;
  38.                    pNuevoNodo->pMenor = NULL;
  39.                    pRecorre->pMayor = pNuevoNodo;
  40.                    break;
  41.                }
  42.                else
  43.                {
  44.                    pRecorre = pRecorre->pMayor;
  45.                }
  46.            }
  47.  
  48.            else if(num < pRecorre->valor)
  49.            {
  50.                if(pRecorre->pMenor == NULL)
  51.                {
  52.                    Nodo *pNuevoNodo = new Nodo;
  53.                    pNuevoNodo->valor = num;
  54.                    pNuevoNodo->letra = c;
  55.                    pNuevoNodo->pMayor = NULL;
  56.                    pNuevoNodo->pMenor = NULL;
  57.                    pRecorre->pMenor = pNuevoNodo;
  58.                    break;
  59.                }
  60.                else
  61.                {
  62.                    pRecorre = pRecorre->pMenor;
  63.                }
  64.            }
  65.            else
  66.            {
  67.                pRecorre->letra = c;
  68.                break;
  69.            }
  70.        }
  71.    }
  72.  
  73.    char Find(const int num)
  74.    {
  75.        Nodo *pRecorre = pOrigen;
  76.        while(true)
  77.        {
  78.            if(pRecorre->valor == num)
  79.            {
  80.                return pRecorre->letra;
  81.            }
  82.            else if(num > pRecorre->valor)
  83.            {
  84.                if(pRecorre->pMayor == NULL) { return '&'; }
  85.                else
  86.                {
  87.                    pRecorre = pRecorre->pMayor;
  88.                }
  89.            }
  90.            else if(num < pRecorre->valor)
  91.            {
  92.                if(pRecorre->pMenor == NULL) { return '&'; }
  93.                else
  94.                {
  95.                    pRecorre = pRecorre->pMenor;
  96.                }
  97.            }
  98.        }
  99.    }
  100. };
  101.  
  102. int main()
  103. {
  104.    Arbol miArbol(0, 'g');
  105.    miArbol.Add(5, 'f');
  106.    miArbol.Add(6, 'f');
  107.    miArbol.Add(7, 'f');
  108.    miArbol.Add(8, 'f');
  109.    miArbol.Add(9, 'D');
  110.    char c = 'A';
  111.    c = miArbol.Find(9);
  112.    cout << "La letra es:  " << c << endl;
  113.    return 0;
  114. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines