Principales respuestas
Ayuda al implementar un arbol binario

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
}
};
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
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
-