Tengo una clase binaria estructura de datos de árbol de búsqueda que posee nodos que son objetos en el lado de la clase que actúa como un árbol binario de búsqueda.
La clase es demasiado largo para publicar aquí, pero básicamente se trata de cómo funciona. Si quiero imprimir el valor superior de la bst, diría
print (self._root)
Si quería moverse hacia el lado izquierdo del árbol (lo mismo con ir a la derecha, sólo hay que poner la derecha en lugar de izquierda), diría
print (self._root._left)
Espero que esto es suficiente para que me puede ayudar con mi problema
Así que en mi problema, si tengo una BST como:
6
/ \
3 8
/ \ \
1 4 10
Quiero ser capaz de imprimir:
6
3
8
1
4
10
He escrito una función recursiva de recorrido:
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
Cómo siempre, esto imprime los valores en una sola matriz:
[1, 3, 4, 6, 8, 10]
¿Cómo puedo conseguirlo para imprimir la forma que yo quiero más arriba?













