我在python中创建一个树,我有一个方法来查找从父节点到树根节点的路径。具体如下:
def get_sub_net(self, index):
node = self.nodes[index]
sub_net = []
sub_net.append(node)
while node.parent is not None:
node = node.parent
sub_net.append(node)
return sub_net[::-1]
现在我试图允许每个节点拥有多个父节点,我遇到了麻烦。
def sub_net(self, index):
node = self.nodes[index]
sub_net = []
if node.parents == None:
return sub_net
else:
sub_net += node.parents
for i in node.parents:
while i is not None:
sub_net += i.parents
node = i
break
return sub_net[::-1]
@ Noreddine-Kessa指出这将是一个图形,而不是树,这是正确的。但是,我也解决了我自己的问题,我使用的解决方案
def recursive_sub_net(self, node):
sub_net = []
sub_net.append(node)
if node.parents is not None:
for i in node.parents:
sub_net += self.recursive_sub_net(i)
return sub_net
答案 0 :(得分:1)
根据定义,树中的每个节点都有一个父节点(并且可以有许多祖先),如果您需要使用节点网络(而不是树),那么您应该使用图形。