Έχω ένα δυαδικό δέντρο αναζήτησης τάξης δομή δεδομένων που κρατά τους κόμβους που είναι αντικείμενα στην πλευρά της τάξης που λειτουργεί σαν ένα δυαδικό δέντρο αναζήτησης.
Η κατηγορία είναι πολύ μεγάλη για να υποβάλετε εδώ, αλλά βασικά αυτό είναι το πώς λειτουργεί. Αν θέλω να εκτυπώσετε την ανώτατη τιμή του 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]
Πώς μπορώ να πάρω για να εκτυπώσετε τον τρόπο που θέλω παραπάνω;













