📜  数据结构|树遍历|问题10

📅  最后修改于: 2021-06-29 22:12:43             🧑  作者: Mango

考虑以下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)树的高度答案: (D)
说明:说明:DoSomething()返回max(左侧子代的高度+ 1,左侧子代的高度+ 1)。因此,将指向树根的指针传递给DoSomething(),它将返回树的高度。请注意,此实现遵循约定,其中单个节点的高度为0。
这个问题的测验