考虑与上述问题相同的代码。函数print()通常做什么?
null
函数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); } } |
(A) 打印BST中第k个最小元素 (B) 打印BST中第k个最大元素 (C) 从根节点打印级别k处最左边的节点 (D) 从根节点打印级别k处最右边的节点 答复: (B) 说明: 该函数基本上对给定的二叉搜索树进行逆序遍历。反向顺序遍历以反向排序的顺序生成数据。每当访问一个节点时,count都会增加1,并且只有当count变为k时才会打印节点的数据。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END