2010-03-17 5 views
1

Comment implémenter l'arborescence en Python?Implémentation en arbre en Python

Je suis débutant Python.

Donnez-moi une idée générale!

+4

Également apprendre à formater la question correctement sinon la prochaine fois que les gens ici vous flamberont sans pitié. La réponse de –

Répondre

5

Construire une classe Node, ayant un objet de contenu et une liste d'enfants, qui sont des instances de Node.

+1

est juste. L'idée ici (et aussi dans une implémentation Java des arbres) est d'utiliser la composition puisque la syntaxe ne supporte pas les pointeurs. La liste des nœuds enfants stocke les références aux objets du nœud enfant. – CruiZen

5
class Tree(object): 
    def __init__(self, name, left_subtree = None, right_subtree = None): 
     self._name = name 
     self._left_subtree = left_subtree 
     self._right_subtree = right_subtree 

def inorder(tree): 
    if tree is not None: 
     inorder(tree._left_subtree) 
     print tree._name 
     inorder(tree._right_subtree) 

if __name__ == '__main__': 
    a = Tree('a') 
    b = Tree('b') 
    c = Tree('c', a, b) 
    inorder(c) 
+0

Votre URL est cassée. – DevPlayer

+0

@DevPlayer Retiré le lien et le code ajouté. :) –

+3

Sûrement 'inorder()' devrait être une méthode de 'Tree', pas une fonction de flottement? Et pour éviter de suivre un pointeur None, il vous suffit de vérifier le pointeur avant de vous y rouvrir. Pouvez-vous résoudre ces problèmes? – smci