Ho un binario di ricerca albero di classe di struttura di dati che contiene i nodi che sono oggetti sul lato della classe che si comporta come un albero binario di ricerca.
La classe è troppo lungo per postare qui, ma in fondo è così che funziona. Se voglio stampare il valore superiore del BST, direi
print (self._root)
Se avessi voluto spostarsi verso il lato sinistro dell'albero (stesso con di andare a destra, appena messo a destra invece che a sinistra), direi
print (self._root._left)
Spero che questo sia abbastanza così mi potete aiutare con il mio problema
Quindi sul mio problema, se ho una BST come:
6
/ \
3 8
/ \ \
1 4 10
Voglio essere in grado di stampare:
6
3
8
1
4
10
Ho scritto una funzione ricorsiva traverse:
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
Come sempre, questo stampa i valori in un singolo array:
[1, 3, 4, 6, 8, 10]
Come posso ottenere per stampare il modo in cui voglio di cui sopra?













