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

时间:2013-03-09 21:55:57

标签: recursion tree

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

伪代码:

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

答案 1 :(得分:2)

您可以将递归方程视为:

从节点开始的节点总数为1 + number of total children。 然后可以找到总节点数:

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