J'ai une classe de structure de données d'arbre de recherche binaire contenant des nœuds qui sont des objets du côté de la classe qui agit comme un arbre de recherche binaire.
La classe est trop longue pour poster ici, mais au fond, voici comment cela fonctionne. Si je veux imprimer la valeur supérieure de la bst, je dirais
print (self._root)
Si je voulais passer sur le côté gauche de l'arbre (même avec aller à droite, il suffit de mettre à droite au lieu de gauche), je dirais
print (self._root._left)
J'espère que cela est suffisant pour que vous puissiez me aider avec mon problème
Donc, sur mon problème, si j'ai un bst comme:
6
/ \
3 8
/ \ \
1 4 10
Je veux être en mesure d'imprimer:
6
3
8
1
4
10
J'ai écrit une fonction de déplacement récursif:
def traverse(self):
a = []
self._traverse_aux(self._root, a)
return a
def _traverse_aux(self, node, a):
if node is not None:
self._traverse_aux(node._left, a)
a.append(node._value)
self._traverse_aux(node._right, a)
return
Comment jamais, ce imprime les valeurs dans un seul tableau:
[1, 3, 4, 6, 8, 10]
Comment puis-je obtenir pour imprimer la façon dont je veux ci-dessus?













