1
最大的價值我想打印從BST n
最大的價值,我有一定的問題的指針,這裏是我的代碼的一部分。打印n的BST
void bt_printN(node *leaf,int *n)
{
if((leaf != NULL) && *n > 0)
{
bt_printN(leaf->right,n);
printf("%s %d\n",leaf->word, leaf->i);
*n--;
bt_printN(leaf->left,n);
}
}
而且這也不行,什麼是n
值傳遞給這樣的遞歸函數的正確方法?
傳球還行;這不是遞減。 '* n - '遞減指針,而不是指向的值;你需要'(* n) - '來減少值。一切是否正常都是一個單獨的討論;它看起來更有可能打印出N個最小值 - 除非如前所述,你首先要做RHS,所以......你可能確實沒問題。 –
Coudl你張貼的答案,所以我會接受它 – whd
@WhozCraig:是的,我看到它會與最大值工作第一。我懷疑在打印出當前節點之前,在''leaf-> right'遞歸之後,代碼應該檢查'* n> 0',因爲'n'的值可能通過調用縮小。 –