繁体   English   中英

没有全局变量或函数参数的递归调用

[英]Recursive call without global variables or function parameters

因此,我们完成了一项作业,对二进制搜索树中的节点进行计数,但是由于我们获得了一个不应该更改的预制模板,因此我们不允许使用全局变量或函数参数。 我知道如何使用全局变量和函数参数来执行此操作,但是如果不使用全局变量和函数参数,则无法执行该操作,因为我无法使用局部变量。

我的代码现在:

int count() const
        {
            int st = 1;
            if (left != NULL) {
                st++;
                left->count();
            }
            if (right != NULL) {
                st++;
                right->count();
            }
            return st;
        }

您可以汇总对各个子树(如果可用)的递归调用所提供的返回值:

    int count() const
    {
        if (left != NULL && right != NULL)
           return 1+left->count()+right->count();
        else if (left != NULL)
           return 1+left->count();
        else if (right != NULL)
           return 1+right->count();
        else
           return 1;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM