2016-03-03 38 views
0

我今天開始編寫一個項目來了解更多關於二叉搜索樹的知識,但在編寫類定義並檢查它們時,我的訪問器返回了錯誤 返回2的結果,然後在終端的下一行4196704上。 繼承人代碼:geany在我的二叉搜索樹結果的基礎上返回奇怪的結果C++

#include <iostream> 
using namespace std; 

class node 
{private: 
int data; 
node *right,*left; 
public: 
node(); 
node(int d,node *r,node *l) 
{ 
    d= data; 
    r=right; 
    l=left; 
} 
int nodedata() ; 
}; 
int node::nodedata() 
{ 
    return data; 
} 
int main() 
{ 

    node root(30,0,0); 
    node root2(77,0,0); 
    cout<< root.nodedata() << endl; 
    cout<< root2.nodedata() << endl; 
    return 0; 
    } 

回答

0

你不會寫C++我猜。 您的變量的定義是錯誤的:

d= data; 

應該

data = d; 

至於爲什麼會出現一些輸出werid數據,這些都是在實際的內存位置的數字,你的系統已經放在那裏您分配這個chunck的記憶,你還沒有改寫,這個對象,之前

和分配指針:

r=right; 
l=left; 

應該

right= r; 
left=l; 

,如果你想訪問他們,把他們的公共或創建方法來訪問它 如:

cout<<(root.right)-> nodedata() << endl; //if you make right && left public