我需要添加一個項目到一個二叉樹只給予要添加的項目。二叉搜索樹插入C++植根於當前節點
這裏是我給出的代碼:
void BinaryTree::add(Data * data) {
if (root == NULL) {
root = new BinaryTreeNode(data);
}
else {
root->add(data);
}
}
其中root
被定義爲BinaryTreeNode
一個BinaryTree
的私有變量。
我需要實現的方法:
void BinaryTreeNode::add(Data * data);
其中一個BinaryTreeNode
是:
class BinaryTreeNode {
public:
Data * nodeData;
BinaryTreeNode * left;
BinaryTreeNode * right;
/**
* Constructor
*/
BinaryTreeNode(
Data * data,
BinaryTreeNode * left = NULL,
BinaryTreeNode *right = NULL
)
: nodeData(data), left(left), right(right)
{ }
// ...
我想遞歸地做到這一點,但我還不能肯定是如何當你只有通過要添加的數據。
我不工作思路是:
void BinaryTreeNode::add(Data * newData) {
BinaryTreeNode * temp = this;
if (temp == NULL) {
temp->nodeData = newData;
} else {
if (newData->compareTo(nodeData) < 0) {
temp->left->add(newData);
} else {
temp->right->add(newData);
}
}
}
沒有很好的理由來編輯你的問題以外的代碼。 – ildjarn