Рубрики

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

Рассмотрим тот же код, который приведен в приведенном выше вопросе. Что вообще делает функция print ()?

Функция 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);

    }

}

(A) печатает k-й наименьший элемент в BST
(B) печатает k-й по величине элемент в BST
(C) Печатает самый левый узел на уровне k от корня
(D) Печатает самый правый узел на уровне k от корня

Ответ: (Б)
Объяснение: Функция в основном выполняет обратный обход по заданному бинарному дереву поиска. Обратный обход по порядку производит данные в обратном отсортированном порядке. При каждом посещении узла счет увеличивается на 1, а данные узла печатаются только тогда, когда счет становится k.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes