在k叉树中递归计算节点数量

3

这不是作业,但我需要理解它来上课。语言并不重要,伪代码也可以。

编写一个“静态K叉”树类的递归成员函数,以计算树中节点的数量。

我认为签名应该像这样:

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

我不知道如何查找k个孩子。在二叉树中,我会检查左侧和右侧。能否给我一个例子?

2个回答

6
你可以将递归方程式理解为:
从一个节点开始的节点总数为1 + 所有子节点的数量。 因此,可以按以下方式找到节点的总数:
def count(node):
    numOfNodes = 1
    for child in node.children:
        numOfNodes += count(child)
    return numOfNodes

嗨,我正在尝试使用Java实现k数组树,其输出以相邻矩阵的形式呈现。输入参数为k=每个节点的子节点数和d=树的深度。给定这些参数,我需要生成树的相邻矩阵。我在GitHub上看到了相关内容,但无法理解。请问您能否指导我如何实现? - Learner

2

伪代码:

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

嗨,我正在尝试使用Java实现k数组树,其输出以相邻矩阵的形式呈现。输入参数为k=每个节点的子节点数和d=树的深度。给定这些参数,我需要生成树的相邻矩阵。我在GitHub上看到了相关内容,但无法理解。请问您能否指导我如何实现? - Learner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接