我想在找到它之后返回节点的地址。如何返回节点的地址?
节点对象类是树类集合为私有内部(私有里面的节点)
我会告诉你一个功能非常类似于我想要什么,但有一个布尔返回类型。 如果节点存在于树中,则返回true;如果不存在,则返回false,我只想返回包含元素Im的节点的指针或地址,以便将来可以使用它。
下面是函数。 (“T”型IM的传球为整数)
template <class T>
class Arbol
{
private:
template <class DNodo>
class Nodo
{
public:
Nodo(const DNodo datoPasado,
Nodo<DNodo> *izqPasado=NULL,//HIJO IZQUIERDO NULL
Nodo<DNodo> *derPasado=NULL)//HIJO DERECHO NULL
: dato(datoPasado),izq(izqPasado),der(derPasado){}
Nodo();
//members
DNodo dato;
Nodo<DNodo> *izq;
Nodo<DNodo> *der;
};
Nodo<T> *raiz;//variable raiz de la clase interna
Nodo<T> *actual;//posicion actual
int contador;//contador
int altura;//altura
////////////////////////////////////////////////
public:
Arbol() : raiz(NULL), actual(NULL){};
//Iniciar(const T &t);
~Arbol();
//INSERTO EN EL ARBOL
void Insertar(const T t);
//BORRO ELEMENTO DEL ARBOL
void Borrar(const T t);
//Busca un elemento del arbol
bool Buscar(const T t);
//Busca y devuelve puntero a elemento
Nodo<T>* BuscarDevolver(const T t);
//EsVacio ????
bool EsVacio();
};
template<class T>
Node<T>* Arbol<T>::BuscarDevolver(const T t)
{
if(!EsVacio())
{
actual = raiz;
while(actual!=NULL)
if(actual->dato == t)
return actual;
else if(t < actual->dato)
{
actual = actual->izq;
}
else if(t > actual->dato)
{
actual = actual->der;
}
}
return NULL;
}
正如你可能注意到了这一点林提前在二叉树寻找一个节点试图帮助 感谢。
即时得到像“节点没有指定类型”
你得到的错误是不由您发布的代码触发,发布实际代码。当我设置的返回类型 –
我得到的错误发生: 模板 节点 * ARBOL :: Buscar(常量T T [) –
HoNgOuRu
好编辑代码,以反映这一点。另外显示'Node'的定义,顺便说一句,不是'Arbol'中的嵌套类型吗? –