【问题标题】:Algorithm to calculate each node of a tree计算树的每个节点的算法
【发布时间】:2013-10-24 19:56:57
【问题描述】:

所以我一直在学习决策树之类的东西,我一直在谷歌搜索以找到一种计算树的终端节点的方法。

让我解释一下

我需要找到一种方法,也许使用向量或者我不知道,我有这棵树:

              |-----6-------
             4|     
  |---2-------|------7------
  |
  |
1 |     
  |                        |------11------
  |           |-----8----10|------12------
  |-----3---5 |
              |------9-------

这棵树可以是任何大小,我需要找到每个节点的每个值..即

node 4 = 6+7
node 5 = 8+9
node 10 = 11+12

有什么算法可以解决这个问题吗?

【问题讨论】:

  • 那么一个节点的值等于它的左孩子的值+它的右孩子的值?树可能是无限的?
  • 如果树是无限的,那么你就不能计算一个值(嗯......它会是无限的)。或者使用 Haskell。
  • 说真的,如果您的决策树是无限的,您可能有兴趣了解启发式方法(如强化学习)以尝试该分支的值。
  • “无限”是指,树可以是您指定的任何大小,没有硬性限制?更好的措辞可能是任意大小的树。
  • 是的,这就是我的意思,抱歉我的英语不完美。就是这样,树可以是任何大小...

标签: algorithm tree


【解决方案1】:
Populate a list of nodes with root
While there are nodes left to process
    Take next node (call it `N`) to process from list
    For each immediade child node (call it `n`) of `N`
        Add `n` to end of node list
        Add the value associated with `n` to a running total value for `N`
    Record total for `N`
    Mark `N` as processed

【讨论】:

    【解决方案2】:

    您尝试执行的操作称为tree traversal。 if 应该考虑Breadth-first search,如果树太深。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多