Рубрики

Структуры данных | Двоичные поисковые деревья | Вопрос 12

Рассмотрим следующий фрагмент кода на языке C. Функция print () получает корень дерева двоичного поиска (BST) и положительное целое число k в качестве аргументов.

// узел BST

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
(D) 20 10

Ответ: (Б)
Объяснение: Код в основном обнаруживает k'th самый большой элемент в BST, подробности см. В K'th Largest Element в BST .
Тест на этот вопрос

Рекомендуемые посты:

Структуры данных | Двоичные поисковые деревья | Вопрос 12

0.00 (0%) 0 votes