【问题标题】:Find paths of binomial tree in Python [closed]在Python中查找二叉树的路径[关闭]
【发布时间】:2015-11-16 06:17:00
【问题描述】:

假设我有一个矩阵,其中反向(重组)下三角是一棵二叉树,初始节点的值为 4(左下),分支到 3 和 5,3 分支到 2 和 4,5 分支到 4 & 6,依此类推。

m = ((0, 0, 6),
     (0, 5, 4),
     (4, 3, 2))

这是视觉表示:

如何在这棵树中找到所有唯一路径作为元组? 自然,对于具有 $n$ 个步骤的树(即 $n+1$ 个终端节点),将有 $2^n$ 个路径。

[(4,3,2), (4,3,4), (4,5,4), (4,5,6)]

【问题讨论】:

  • 你试过什么?

标签: python algorithm python-3.x data-structures tree


【解决方案1】:

您可以: - 对树进行一些遍历,例如 BFS 或 DFS。
最简单的方法是递归

procedure Walk(node, route)
  if node = nil then //leaf node is reached
     output(route)
  else   
    Walk(node.left, route + node.name)
    Walk(node.right, route + node.name)

Walk(root, empty)

- 用可能的路线映射 0..2n-1 范围内的数字:
如果数字的第 i 位(从左至右)为 1,则在第 i 级使用右分支,否则使用左分支。例如,(4,5,4) 对应数字 2 = 二进制 10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多