Mám binární vyhledávací strom třídu datové struktury, které drží uzly, které jsou objekty na straně třída, která se chová jako binární vyhledávací strom.
Třída je příliš dlouhý, aby post tady, ale v podstatě je to, jak to funguje. Chci-li tisknout na horní hodnotu BST, řekl bych,
print (self._root)
Kdybych chtěl přejít na levé straně stromu (stejné s jít na pravé straně, stačí dát doprava místo doleva), řekl bych,
print (self._root._left)
Doufám, že to je dost na to, že mi může pomoci s mým problémem
Takže na můj problém, když mám BST, jako jsou:
6
/ \
3 8
/ \ \
1 4 10
Chci, aby bylo možné vytisknout:
6
3
8
1
4
10
Napsal jsem rekurzivní funkce pojezdu:
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
Jak se vůbec, to tiskne hodnoty v jednom poli:
[1, 3, 4, 6, 8, 10]
Jak ji mohu získat tisknout tak, jak chci výše?













