我想在找到它之後返回節點的地址。如何返回節點的地址?
節點對象類是樹類集合爲私有內部(私有裏面的節點)
我會告訴你一個功能非常類似於我想要什麼,但有一個布爾返回類型。 如果節點存在於樹中,則返回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'中的嵌套類型嗎? –