Data structures 在深度为k且分支因子为n的树中查找可能的最大和最小节点

Data structures 在深度为k且分支因子为n的树中查找可能的最大和最小节点,data-structures,tree,computer-science,abstract-data-type,Data Structures,Tree,Computer Science,Abstract Data Type,我有一棵深度为k的树,分支因子为n。我一直在试图找到一个通用公式: 此树中可能的最大节点数 此树中可能的最小节点数 有什么建议吗? 提前谢谢。我不想这么说,但对于数据结构课程来说,这是一个非常简单的问题。我不想粗鲁、刻薄或诸如此类的话,但这和这些问题一样简单 但你要求的是建议,而不是解决方案。这是件好事。:-) 我首先要确定你知道分支因子的定义。然后我会画一个图,为k,n挑选一些简单的值,比如(1,1)(2,2)(3,2),看看结果是什么。我向你保证一个模式会出现 编辑: 所以你已经掌握了分支因

我有一棵深度为k的树,分支因子为n。我一直在试图找到一个通用公式:

  • 此树中可能的最大节点数
  • 此树中可能的最小节点数
  • 有什么建议吗?
    提前谢谢。

    我不想这么说,但对于数据结构课程来说,这是一个非常简单的问题。我不想粗鲁、刻薄或诸如此类的话,但这和这些问题一样简单

    但你要求的是建议,而不是解决方案。这是件好事。:-)

    我首先要确定你知道分支因子的定义。然后我会画一个图,为k,n挑选一些简单的值,比如(1,1)(2,2)(3,2),看看结果是什么。我向你保证一个模式会出现

    编辑:

    所以你已经掌握了分支因子。让我们看一下最小值

    如果深度为k,就知道可以沿着k个不同的节点进行遍历,对吗?因此,如果这些节点都没有任何其他子节点,并且结束节点也没有子节点,那么您可以对那里的节点说些什么

    好吧,那很容易。最大值有点难,但仍然相当简单。看待它最简单的方法是少像树一样思考。树有顶有下。相反,将其视为一系列同心圆,每个圆代表一个深度级别

    让我们从(深度=1)开始。你知道你只有一个节点,对吗?我的意思是它不能有任何孩子,因为你被限制在1个深度!现在,让我们看看2的深度。起始节点可以有n个子节点(假设n是分支因子)。这就是n+1

    现在,如果我们再加上一个,我们在“外环”上会有n个节点,每个节点都可以有n个子节点。所以你最终得到了n*n+n+1


    在每个连续环上,您最终得到(上次添加的节点)*(分支因子)+所有现有节点。现在,你能想出一种方法将其表示为公式吗?

    计算最大节点数时,假设每个新级别都已满。 在第一级中有1个节点,在第二级中有n个节点,在第三级中有n^2个节点(前n个节点各有n个),在第四级中有n^3个节点(前n^2个节点各有n个)

    这就得到了和(i=1,k-1,n^i)+1==>(n(n^k-1))/(n-1)+1


    节点的最小数量当然是0:)

    当然,我画了简单的案例,并试图找到一个模式,但无法找到。也许我对分支因子的理解是错误的。请用接下来的几句话来帮助我,不要说这有多容易。那么,你认为分支因子是什么?你对它的理解是什么?如果分支因子是k,这意味着每个父母最多有k个孩子?@Dave right。因此,我在我的帖子中添加了更多关于如何解决这个问题的内容。“困难”部分仍然存在,但我认为现在更容易管理。学会正确地想象你的问题是解决问题的最简单方法!我认为深度从0开始。因此,0深度应该是没有子级的深度。我从许多资源中看到了同样的事情。你提到的是身高。不是这样吗?你把高度和深度混淆了吗?我同意你的最大值。但是你的最小值没有意义。你不需要+1。从i=0开始求和。嗯,最小节点数是空树,不是吗?空树没有深度。它应该有深度,公式应该是通用的,包括所有情况。我现在倾向于k+n(分支因子+深度)作为最小值,这是我在绘制一些案例时得到的结果。在这种情况下,你有“深度”作为最小节点数(假设你的树成为一个列表)。