Рубрики

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

Рассмотрим следующий сегмент программы на C

struct CellNode

{

  struct CelINode *leftchild;

  int element;

  struct CelINode *rightChild;

}

  

int Dosomething(struct CelINode *ptr)

{

    int value = 0;

    if (ptr != NULL)

    {

      if (ptr->leftChild != NULL)

        value = 1 + DoSomething(ptr->leftChild);

      if (ptr->rightChild != NULL)

        value = max(value, 1 + DoSomething(ptr->rightChild));

    }

    return (value);

}

Значение, возвращаемое функцией DoSomething, когда в качестве аргумента передается указатель на корень непустого дерева (GATE CS 2004)
(A) Количество листовых узлов в дереве
(B) Количество узлов в дереве
(C) Количество внутренних узлов в дереве
(D) высота дерева

Ответ: (Д)
Объяснение: Объяснение: DoSomething () возвращает max (высота левого ребенка + 1, высота левого ребенка + 1). Таким образом, учитывая, что указатель на корень дерева передается в DoSomething (), он будет возвращать высоту дерева. Обратите внимание, что эта реализация следует соглашению, где высота одного узла равна 0.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes