2011-09-24 66 views
-1

我想在找到它之後返回節點的地址。如何返回節點的地址?

節點對象類是樹類集合爲私有內部(私有裏面的節點)

我會告訴你一個功能非常類似於我想要什麼,但有一個布爾返回類型。 如果節點存在於樹中,則返回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; 
} 

正如你可能注意到了這一點林提前在二叉樹尋找一個節點試圖幫助 感謝。

即時得到像「節點沒有指定類型」

+0

你得到的錯誤是不由您發佈的代碼觸發,發佈實際代碼。當我設置的返回類型 –

+0

我得到的錯誤發生: 模板 節點 * ARBOL :: Buscar(常量T T [) – HoNgOuRu

+0

好編輯代碼,以反映這一點。另外顯示'Node'的定義,順便說一句,不是'Arbol'中的嵌套類型嗎? –

回答

2

Node是內Arbol嵌套類型,所以你實際上應該聲明你的函數類似這樣的錯誤:

template< class T > Arbol<T>::Node<T>* Arbol<T>::Buscar(const T t); 
+0

IT WORKS非常感謝 – HoNgOuRu

+0

的解決方案包括在代碼改變爲:在聲明 : Nodo * ARBOL :: BuscarDevolver(常量T T [){.......} 和函數的返回鍵入到 模板 Arbol :: Nodo * – HoNgOuRu