none
Ayuda al implementar un arbol binario RRS feed

  • Pregunta

  • Hola, alguien me puede ayudar urgentemente, por favor, se los agradecería mucho. Es que estoy implementando un árbol binario en c++ y lo estoy implementando de la siguiente manera, pero me da error en una sola linea.

    class Nodo
    {
    protected:
    int dato;
    Nodo *iz, *dc;
    public:
    Nodo(int valor){
    dato = valor;
    iz = dc = NULL;
    }
    Nodo(int valor, Nodo *ramaizq, Nodo *ramaDc){
    dato = valor;
    iz = ramaizq;
    dc = ramaDc;
    }
    // operaiones de acceso
    int ValorNodo(){ return dato; }
    Nodo *subarbolIzdo() { return iz; }
    Nodo *subarbloDcho() { return dc; }
    // op de modifiacion
    void nuevoValor( int d) { dato = d; }
    void ramaIzdo(Nodo *n) { iz = n;}
    void ramaDcho(Nodo *n ){ dc = n; }

    };
    class  Arblobinario
    {
    protected:
    Nodo *raiz;
    public:
    Arblobinario(){
    raiz = NULL;
    }
    Arblobinario(Nodo *r) {
    raiz = r; }
    void Praiz( Nodo *r){ raiz = r; }
    Nodo * Oraiz()
    {
    return raiz;
    }
    Nodo raizArbol()
    {
    if(raiz)
    return *raiz;
    else
    throw " arbol vacio";
    }
    bool esVacio()
    {
    return raiz == NULL;
    }
    Nodo * hijoIzdo()
    {
    if(raiz)
    return raiz->subarbolIzdo();
    else
    throw " arbol vacio";
    }
    Nodo *hijoDcho()
    {
    if(raiz)
    return raiz->subarbloDcho();
    else
    throw " arbol vacio";
    }
    Nodo *nuevoArbol(Nodo* rmaIzqda, int var, Nodo* rmaDrcha)
    {
    return new Nodo(rmaIzqda, var, rmaDrcha);// esta es la linea que me da error
    }
    };

    jueves, 6 de marzo de 2014 3:16

Respuestas

  • La línea que te da error es una llamada al constructor de la clase Nodo. Si te fijas en la declaración del constructor verás que requiere tres parámetros que son (por este orden) un int, y dos punteros a Nodo. Pero en la línea que te da el error le estás pasando un puntero a Nodo, un int y un puntero a Nodo. Como ves, no coincide el orden con el requerido por el constructor.

    • Marcado como respuesta j0rgit0 viernes, 6 de marzo de 2015 4:23
    jueves, 6 de marzo de 2014 6:09

Todas las respuestas

  • La línea que te da error es una llamada al constructor de la clase Nodo. Si te fijas en la declaración del constructor verás que requiere tres parámetros que son (por este orden) un int, y dos punteros a Nodo. Pero en la línea que te da el error le estás pasando un puntero a Nodo, un int y un puntero a Nodo. Como ves, no coincide el orden con el requerido por el constructor.

    • Marcado como respuesta j0rgit0 viernes, 6 de marzo de 2015 4:23
    jueves, 6 de marzo de 2014 6:09
  • Gracias!!!
    lunes, 24 de marzo de 2014 1:40