0
我只是想更好地理解指針和互聯網上的指針我找到了二進制搜索的例子,開發人員在插入函數中使用指針指針。需要更好的解釋,爲什麼我們在二進制搜索中使用指針指針
我的問題是:
- 沒有下面的代碼有超過它採用單指向其他BST代碼什麼優勢?
- 在插入函數結束時,代碼使用遞歸方法,但我不明白在
insert(&(*tree)->right, item);
中使用&
的語法。
的insert
功能如下:
void insert(node ** tree, node * item)
{
if(!(*tree))
{
*tree = item;
return;
}
if(item->val<(*tree)->val)
insert(&(*tree)->left, item);
else if(item->val>(*tree)->val)
insert(&(*tree)->right, item);
}
只爲我的知識。我不能做類似於struct node * insert(struct node * node,int data)的東西if(node == NULL){return(newNode(data)); } else { if(data <= node-> data)node-> left = insert(node-> left,data); else node-> right = insert(node-> right,data); return(node); } } – samprat
HI Ed S.感謝您的解釋。你幫我清除了我的疑惑。總之,如果我們想改變這個值,我們可以將這個值作爲一個函數中的指針傳遞。所以在相同的模式下,如果我們想要改變指針,那麼在那種情況下,我們必須將它作爲指針的指針傳遞。希望我是對的。 – samprat
對於像我這樣的人來說更多............. http://www.codeguru.com/cpp/cpp/cpp_mfc/pointers/article.php/c4089/ http:// stackoverflow .com/questions/1913373/why-is-pointer-to-pointer-being-in-this-prog – samprat