void insert(int key)
{
insertRec(key, root);
}
void insertRec(int key, Node *current)
{
if(current==NULL)
current = new Node(key);
else if(key <= current->value)
insertRec(key, current->leftChild);
else
insertRec(key, current->rightChild);
}
这是怎么回事?二叉树递归插入法不起作用
在插入函数中,树的键值和根被传递给insertRec。如果节点为空,则创建一个新节点并将其设置为键值。否则,递归地向左或向右移动,直到节点遇到空点并在那里插入新节点。
[找到一个很好的入门书(http://stackoverflow.com/questions/ 388242/the-definitive-c-book-guide-and-list)并阅读关于传递参数*的引用*。 –
分配一个局部变量'current'与插入节点不一样。它只是修改局部变量,而不是*变量所指的*,这就是你想要的。为了将来的参考,尽量避免只是说“东西不行”。描述*你的代码如何工作。 – Zong
'void insertRec(int key,Node *&current)'应该做的伎俩。 –