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'的值可能通过调用缩小。 –