Jeg har et binært søketre datastruktur klasse som inneholder noder som er objekter i side klassen som fungerer som et binært søketre.
Klassen er for lang til å poste her, men i utgangspunktet dette er hvordan det fungerer. Hvis jeg ønsker å skrive ut den øverste verdien av bst, vil jeg si
print (self._root)
Hvis jeg ønsket å flytte til venstre side av treet (samme med å gå til høyre, bare sette høyre i stedet for venstre), vil jeg si
print (self._root._left)
Jeg håper dette er nok slik at du kan hjelpe meg med mitt problem
Så til mitt problem, hvis jeg har en BST som:
6
/ \
3 8
/ \ \
1 4 10
Jeg ønsker å være i stand til å skrive ut:
6
3
8
1
4
10
Jeg har skrevet en rekursiv traversering funksjon:
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
Hvordan noensinne, skriver denne verdien i en enkelt tabell:
[1, 3, 4, 6, 8, 10]
Hvordan kan jeg få det til å skrive ut slik jeg vil ovenfor?













