首页 文章

递归计数k-ary树中的节点

提问于
浏览
2

这不完全是家庭作业,但我需要在课堂上理解它 . 语言并不重要,伪代码就没问题了 .

编写“静态K-ary”树类的递归成员函数,该函数计算树中节点的数量 .

我认为签名看起来像这样:

int countNodes(Node<AnyType> t, ctr, k){}

我不知道如何看待k个孩子 . 在二叉树中,我会检查左右 . 谁能举个例子呢?

2 回答

  • 2

    您可以将递归方程视为:

    从节点开始的节点总数为 1 + number of total children . 然后可以找到总节点数,如下所示:

    def count(node):
        numOfNodes = 1
        for child in node.children:
            numOfNodes += count(child)
        return numOfNodes
    
  • 2

    伪代码:

    count(r)
        result = 1
        for each child node k
            result = result + count(k)
        return result
    

相关问题