请考虑C中的以下代码段。函数print()接收二进制搜索树(BST)的根和正整数k作为参数。
// A BST node
struct node {
int data;
struct node *left, *right;
};
int count = 0;
void print(struct node *root, int k)
{
if (root != NULL && count <= k)
{
print(root->right, k);
count++;
if (count == k)
printf("%d ", root->data);
print(root->left, k);
}
}
print(root,3)的输出是什么,其中root表示以下BST的根。
15
/ \
10 20
/ \ / \
8 12 16 25
(A) 10
(B) 16
(C) 20
(丁) 20 10答案: (B)
说明:该代码主要在BST中找出第k个最大元素,有关详细信息,请参见BST中的第k个最大元素。
这个问题的测验