geany在我的二叉搜索树结果C ++的基础上返回奇怪的结果

时间:2016-03-03 02:13:39

标签: c++ tree

我今天开始编写一个项目来了解二进制搜索树的更多信息,但在编写类定义并检查它们时,我的访问者返回false  结果返回2然后在终端的下一行4196704上。 继承人代码:

#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;
    }

1 个答案:

答案 0 :(得分:0)

我猜你不是在写c ++。 你对变量的定义是错误的:

d= data;

应该是

data = d;

至于为什么它在输出中显示一些werid数据,那么这些是你的系统放在那里的实际内存位置中的数字,然后你将这个尚未重写的内存块分配给这个对象,

并指定指针:

r=right;
l=left;

应该是

right= r;
left=l;

如果您想访问它们,请将它们公开或创建方法来访问它们 例如:

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