给定一个搜索树,例如
"1"
└ "2"
├ "2.1"
┊ └ "3"
┊
└ "2.2"
└ "2.2.1"
└ "3"
还有两个节点,a
和b
,它们属于该树,例如“2.1”和“3”。我们如何检查a
和b
是否是父子(或子-父)相关/连接的?
对于第一个示例,应生成True。以下是更多示例:
a="3" b="1" -> False
a="3" b="2" -> False
a="2.2.1" b="2.2" -> True
a="2.2.1" b="3" -> True
我目前正在使用anytree
库,我正在努力用它来实现这个解决方案。上图是一个结构简化。我目前尝试实现的内容概述如下:https://pastebin.com/Mjk7gyqH
如果可以用纯python或anytree给出答案,那就太棒了,但有答案总比没有好。
2条答案
按热度按时间k7fdbhmy1#
您可以使用简单递归:
输出量:
piztneat2#
如果我很好地理解你'只是'要求一个没有任何中间节点的直接父子关系。如果这不是你正在寻找的,那么请提供另一个例子,显示下面的代码失败,我可以修复它。
代码使用了任意树,因为这是您建议的库。