首页 > 试题广场 >

在下列C代码中: struct Celode {

[单选题]
在下列C代码中
struct Celode
{
  struct Celode *lchild;
  int element;
  struct Celode *rChild;
}
 
int DoSomething(struct Celode *ptr)
{
    int value = 0;
    if (ptr != NULL)
    {
      if (ptr -> lChild != NULL)
        value = 1 + DoSomething(ptr -> lChild);
      if (ptr -> rChild != NULL)
        value = max(value, 1 + DoSomething(ptr -> rChild));
    }
    return (value);
}

如果指向非空树的根的指针作为参数传递,则DoSomething函数的返回值是()

  • 树的叶节点数
  • 树的节点数
  • 树的内部节点数
  • 树的高度
开发写这种函数嵌套来计算高度怕不是会被维护的人砍死😡
发表于 2023-02-24 10:34:08 回复(0)
hzh头像 hzh
这题有问题吧,返回“高度-1”吧
发表于 2021-07-17 12:11:39 回复(0)
首先通过看value = max(value, 1 + DoSomething(ptr -> rChild));如果是结点数量的话一定是  + 号.故和结点数无关。于是只能选D树的高度。
最后分析一下确实是这样的,就是左子树右子树的高度取一个max.
发表于 2021-11-30 23:18:40 回复(0)
value是最后一个左、右孩子的层次值,最后返回其中一个较大值。
发表于 2020-08-29 16:43:48 回复(0)
这道题目有问题,函数的返回值应该是树的高度减去一
发表于 2023-06-03 09:36:03 回复(1)
怎么没有对max定义,max函数的内部是怎样的?

发表于 2022-10-14 08:28:57 回复(1)