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)'應該做的伎倆。 –