Рубрики

Структуры данных | Обход дерева | Вопрос 1

Следующая функция должна рассчитать максимальную глубину или высоту бинарного дерева — количество узлов вдоль самого длинного пути от корневого узла до самого дальнего конечного узла.

int maxDepth(struct node* node)

{

   if (node==NULL)

       return 0;

   else

   {

       / * вычислить глубину каждого поддерева * /

       int lDepth = maxDepth(node->left);

       int rDepth = maxDepth(node->right);

   

       / * использовать больший * /

       if (lDepth > rDepth)

           return X;

       else return Y;

   }

}

Какими должны быть значения X и Y, чтобы функция работала правильно?
(A) X = lDepth, Y = rDepth
(B) X = lDepth + 1, Y = rDepth + 1
(C) X = 1 Глубина -1, Y = r Глубина -1
(D) Ничего из вышеперечисленного

Ответ: (Б)
Объяснение: Если дерево не пустое, высота дерева равна
MAX (высота левого поддерева, высота правого поддерева) + 1

Смотрите программу, чтобы найти максимальную глубину или высоту дерева для более подробной информации.

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

Структуры данных | Обход дерева | Вопрос 1

0.00 (0%) 0 votes