【发布时间】:2010-11-04 20:13:15
【问题描述】:
我有一种单级树结构:
其中 p 是父节点,c 是子节点,b 是 假设的 分支。
我想在只有一个父节点只能分支到一个子节点和两个分支的约束下找到所有组合分支不能共享父母和/或孩子。
例如如果combo 是组合集:
combo[0] = [b[0], b[3]]
combo[1] = [b[0], b[4]]
combo[2] = [b[1], b[4]]
combo[3] = [b[2], b[3]]
我想这就是全部。 =)
如何在 Python 中自动实现这种结构的任意树,即 p:s、c:s 和 b:s 的数量是任意的。
编辑:
它不是一棵树,而是一棵bipartitedirected acyclic graph
【问题讨论】:
-
您的图像表明每个父母都可以使用分支到每个孩子。你会这么认为吗?
-
你是否已经有一个数据结构来表示这个?
-
@dhill - 是吗?父节点 p1 不分支到子 c0。
-
另外,这不是一棵树,而是一个二分 DAG。
-
@Space_C0wb0y - 现在怎么办?请粘贴维基百科参考或类似内容。 ;) 至于数据结构,将 b 视为具有变量 p 和 c 的对象,如
b[0].p = 0。
标签: python combinatorics directed-acyclic-graphs bipartite