У меня есть бинарное дерево поиска структуры данных класса, который содержит узлы, которые являются объектами в стороне класс, который действует как бинарное дерево поиска.
Класс слишком долго, чтобы разместить здесь, но в основном это, как она работает. Если я хочу, чтобы напечатать верхнее значение BST, я бы сказал,
print (self._root)
Если бы я хотел, чтобы перейти к левой стороне дерева (то же самого с идти вправо, просто поставить прямо, а не слева), я бы сказал,
print (self._root._left)
Я надеюсь, что это достаточно, чтобы вы могли помочь мне с моей проблемой
Таким образом, на мою проблему, если у меня есть BST, как:
6
/ \
3 8
/ \ \
1 4 10
Я хочу, чтобы иметь возможность распечатать:
6
3
8
1
4
10
Я написал рекурсивную функцию траверс:
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
Как всегда, это печатает значения в одном массиве:
[1, 3, 4, 6, 8, 10]
Как я могу получить его на печать так, как я хочу выше?













