![]() |
1
4
我写了一个Python程序,我想它能满足你的要求。它将返回给定起始节点的所有可能的树。本质上,它归结为一个位操作的技巧:如果一个节点有5个子节点,那么有2个子节点 5 代码:
以下是测试树的图形表示: 1 / \ 2 3 /|\ 4 5 6 下面是运行程序的输出: 1 1 [2] 1 [3] 1 [3 [4]] 1 [3 [5]] 1 [3 [4, 5]] 1 [3 [6]] 1 [3 [4, 6]] 1 [3 [5, 6]] 1 [3 [4, 5, 6]] 1 [2, 3] 1 [2, 3 [4]] 1 [2, 3 [5]] 1 [2, 3 [4, 5]] 1 [2, 3 [6]] 1 [2, 3 [4, 6]] 1 [2, 3 [5, 6]] 1 [2, 3 [4, 5, 6]]
|
![]() |
2
1
|
![]() |
3
0
|
![]() |
4
0
如果节点类型之间的唯一区别是子节点的数量,那么仅使用子节点数量最多的节点类型生成每个可能的树,也将为具有相等或更少子节点的任何组合生成每个可能的树。 有点像是一口。。。 换句话说,如果5个子节点是最大值,那么仅由5个子节点组成的一些可能树的节点将具有,例如,两个实际子节点和三个空指针。这实际上与只有两个子节点的节点相同。 |
|
bb ef · 如何使用递归从列表中删除某些内容?python 6 年前 |
![]() |
Adam Morad · 方案更改树值 6 年前 |
![]() |
johnny 5 · 角度将ViewChild绑定到类中的属性 6 年前 |
![]() |
user2467011 · 为什么给定的二叉树是用空节点构造的? 6 年前 |