📜  数据结构 |二叉搜索树 |问题 12

📅  最后修改于: 2021-09-08 14:56:48             🧑  作者: Mango

考虑以下 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   

(一) 10
(乙) 16
(三) 20
(四) 20 10答案:(乙)
说明:代码主要是找出BST中第k大的元素,详见BST中的第K大元素。
这个问题的测验