【发布时间】:2017-01-29 02:21:48
【问题描述】:
我正在尝试查找 n 叉树的所有子树。只有 BFS 或 DFS 不起作用。因为树不是二元的。例如:
1
/ \
2 3
/ \ /|\
4 6 5 7 8
/ \
9 10
我想显示包括这个在内的所有子树
1
/ \
2 3
\ |
6 7
如何从原始子树中提取此子树?
【问题讨论】:
-
您应该记住,所有子树的数量通常是指数级的。所以如果你在一棵大树上调用它,你就完蛋了。
-
BFS 和 DFS 适用于任何图形。树是否是二叉树根本不重要
-
你可以为二叉树做吗?非二叉树有什么根本不同?
-
你的解释我一个字都听不懂。请展示你的二叉树算法,并指出你不能为非二叉树修改的行。
-
您声称您可以对二叉树执行此操作,但您不能将其转换为适用于任意树的东西。如果您展示它并指出您无法转换的步骤,我可以尝试帮助您转换您的算法。我还可以用几行 Haskell 向你展示一个现成的算法,它会有帮助吗?不过,我想先尝试第一个选项。 (我还注意到您正在使用子树的图论定义,但不清楚您是否指有根子树;请澄清)。