Implementación de Arboles binarios

Iniciado por M3LiNdR1, 16 Septiembre 2013, 20:41 PM

0 Miembros y 1 Visitante están viendo este tema.

M3LiNdR1

Buenas tardes,


Llevó todo el dia peleandome con una clase, para implementar arboles binarios, el codigo es el siguiente:

//Archivo Tree.cpp
Código (cpp) [Seleccionar]
struct Node {
int info;
Node *fesq;
Node *fdre;
};

class Tree {

private:

Node *root;

public:

Tree(int);
void insertar(int);
void plantar(int, Node &, Node&);
};


//Codigo Tree.cpp
Código (cpp) [Seleccionar]

Tree::Tree(int value) {
root->info = value;
root->fesq = NULL;
root->fdre = NULL;
}

void Tree::plantar(int value, Node & f1, Node & f2) {
root->info = value;
root->fesq = f1;
root->fdre = f2;
}

void Tree::insertar(int value) {
    if (root ==NULL) {
         root->info = value;
         root->fesq = NULL;
         root->fdre = NULL;
     }
    else if(x < root->info) root->fesq.insertar(x);
    else if(x > root->info) root->fdre.insertar(x);
}


Primer problema, visual studio me dice que root no se puede comparar con NULL, entonces como puedo saber si un hijo esta vacio???

Segundo problema, nose com implementar la función de insertar. Se que esta mal porque estoy llamando desde un nodo, un metodo que no existe y que tiene arbol.

Nose, tengo ya los nervios a flor de piel y lo siguiente que haré sera amenazar mi portatil con una tostadora xD
Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res...


C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript

amchacon

¿? Root si que se puede comparar con NULL (o con cero que es lo mismo). Revisa el error otra vez.

En la función insertar no usaría una lista enlazada sino un vector/array puesto que necesitas hacer muchos accesos aleatorios.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

M3LiNdR1

Cierto, si se pueden comparar, paranoias del compilador!!!

Lo curioso es que un mètodo que devuelve un objeto, no puede devolver NULL, aaarghhh, demasiado tiempo jugando con Java!

Por otra parte, mi inspiración ha vuelto a mi, mañana os prometo noticias  :D

Saludos!
Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res...


C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript

amchacon

Cita de: M3LiNdR1 en 17 Septiembre 2013, 02:35 AMLo curioso es que un mètodo que devuelve un objeto, no puede devolver NULL, aaarghhh, demasiado tiempo jugando con Java!
Para eso tendrías que devolver un puntero a objeto. De lo contrario estarías devolviendo un objeto entero.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar