je l'objet noeud suivantObtenez des chemins d'un arbre, mais avec toutes les feuilles nœud oa dans un chemin en python
class Node(object):
def __init__(parent=None, data)
self.__parent = parent
self.__data = data
self.__children = []
# parent and data properties getters and setters are left out for convinience
def add_node(self, node):
node.parent = self
self.__children.append(node)
donc j'ai un arbre qui ressemble à ceci
dummy_root(nodata)
/ | \
A B C
/ \ / \ / \
D E F G H I
/\ /\/\/\/\/\
K L M N O P Q R S T U V
Je veux pour obtenir tous les chemins pour tous les enfants de dummy_root. La partie la plus délicate qui n'ont pas été en mesure de comprendre encore que les nœuds feuilles doivent appartenir à un chemin, par exemple
paths = [
[A, D, K, L],
[A, E, M, N],
[B, F, O, P],
[B, G, Q, R],
[C, H, S, T],
[C, I, U, V]
]
J'ai trouvé un moyen d'obtenir tous les chemins, mais ce que je reçois est des chemins différents pour chaque feuille par exemple
[A, D, K] and [A, D, L]
code Python:
def __find_paths_recursive(node, path):
path = deepcopy(path)
path.append(node.data)
if not node.children:
pathss.append(path)
for child in node.children:
self.__find_paths_recursive(child, path)
for child in dummy_root.children:
path = []
find_paths_recursive(child, path)
@depperm corrigé l'arbre. – Apostolos
Donc, vous obtenez une liste de listes de tous les chemins différents? – themistoklik
Oui, mais les nœuds feuille doivent être dans le même chemin. – Apostolos