下面的代码应该将一个节点添加到我的BST结构中,但未能这样做。新节点根本不会连接到树,包括根节点。任何人都可以指出问题出在哪里?将节点添加到二叉搜索树
对树的构造:
template <typename K, typename T>
MyBinaryTree<K, T>::MyBinaryTree() {
root = nullptr;
}
功能即会从外面叫:
并且具有附加的节点内部专用功能:
template <typename K, typename T>
void MyBinaryTree<K, T>::addToSubtree(MyBinaryTree<K, T>::Node *node,
MyBinaryTree<K, T>::Node *toAdd) {
if(node == nullptr) {
node = toAdd;
} else {
if(toAdd->key > node->key) addToSubtree(node->right, toAdd);
else if(toAdd->key < node->key) addToSubtree(node->left, toAdd);
}
}
根作为参数传递,因为它需要递归调用,我应该怎样调用addToSubtree(Node *&toAdd)递归到根的子树中呢? – Whizzil
我认为'addToSubTree'首先应该是'Node'的成员函数,那么你就不会有这个问题:'root-> left.addToSubTree(newNode)'然后它作为一个成员函数b –