Van egy bináris keresési fa adatszerkezet osztály, hogy tartja a csomópontokat, amelyek tárgyakat az oldalán az osztálynak, hogy úgy viselkedik, mint egy bináris keresési fa.
Az osztály túl hosszú ahhoz, hogy tegye ide, de alapvetően ez hogyan működik. Ha szeretné kinyomtatni a felső értéke a BST, azt mondanám,
print (self._root)
Ha akartam mozgatni a bal oldali fa (ugyanaz, hogy menjen a jobb, csak rendbe helyett balra), azt mondanám,
print (self._root._left)
Remélem, hogy ez is elég, így segíteni tud a probléma
Tehát rá a probléma, ha van egy BST, mint például:
6
/ \
3 8
/ \ \
1 4 10
Azt akarom, hogy képes kinyomtatni:
6
3
8
1
4
10
Írtam egy rekurzív lengőkarokkal funkció:
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
Hogy valaha ez a program kinyomtatja az értékeket egy tömbben:
[1, 3, 4, 6, 8, 10]
Hogyan jutok el nyomtatni, ahogyan szeretném fent?













