-1
我正在寫一個二叉樹,開始收到錯誤,所以我已經刪除了所有的模板,但它仍然不會編譯,難倒我最後的錯誤! 寫一個遞歸的附加功能,但不知道如何到我的新的數據類添加到我的樹時,發現一個空的節點錯誤C2106:'=':左操作數必須是l值C++二進制樹
#pragma once
#include <cstring>
typedef dataClass T;
//template <class T>
class treeNode
{
private:
treeNode* _greaterNode;
treeNode* _lessNode;
T _data;
public:
treeNode(T data);
void add(T data);
void del(T data);
};
//template <class T>
treeNode/*<T>*/::treeNode(T data)
{
_data = data;
_greaterNode = _lessNode = NULL;
}
//template <class T>
void treeNode/*<T>*/::add(T data)
{
if(_data == NULL)
{
// add here
this = new treeNode(data);
}
else if(data > _data)
{
// data is bigger go to greater
this->_greaterNode->add(data);
}
else if(data < _data)
{
// data is lower go to less than
this->_lessNode->add(data);
}
else
{
// data the same, throw exception
}
}
它打破:
if(_data == NULL)
{
// add here
this = new treeNode(data);
}
'this'是'treeNode的* const'不能修改。你應該只是做'_data = data'。 – 2012-02-04 19:24:07
In。書房。塔季翁。 – 2012-02-04 19:28:06
而「它破」不是錯誤描述。 – 2012-02-04 19:28:42