0
Node * BST::insert_real(int key, Node *& node)
{
if (node == nullptr)
return node = new Node(key);
if (key < node->key)
return insert_real(key, node->left);
else if (key > node->key)
return insert_real(key, node->right);
else
return nullptr;
}
Node * BST::insert(int key)
{
return insert_real(key, header->left);
}
BinarySearchTree,插入函数。C++参考类型为递归函数参数
如果key
总是过得left
,当函数insert_all()
运行到位置node = new Node(key)
,是否node
相当于header->left->left->left->left->left->......->left->left
?
如果上面我的猜测是正确的,代码header->left->left->left->left->left->......->left->left
会带来一定的负担。(如果是的话,我将取代Node*&
与Node**
)
我上面说的是正确的话?