Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να δημιουργήσετε ένα Binary Search Tree σε Python

δυαδικά δέντρα αναζήτησης είναι ένα από τα βασικά αφηρημένους τύπους δεδομένων που σχεδιάστηκε στον προγραμματισμό ηλεκτρονικών υπολογιστών . Μέσα από ένα δυαδικό δένδρο αναζήτησης , μπορείτε να ορίσετε μια βασική δομή μέσω αλγορίθμων εισόδου και αναζήτηση που κάνει τον εντοπισμό και την ανάκτηση πληροφοριών εύκολη και συστηματική . Δεδομένου ότι είναι μια « αφηρημένη » τύπο δεδομένων , μπορείτε να το εφαρμόσει σε κάποια μορφή στις περισσότερες οποιαδήποτε γλώσσα προγραμματισμού , συμπεριλαμβανομένων των Python . Δημιουργώντας μια κλάση που θα αναπαριστά το δέντρο , μπορείτε να δημιουργήσετε εύκολα ένα απλό δυαδικό δένδρο αναζήτησης . Τα πράγματα που θα χρειαστείτε
ερμηνευτής Python
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Δημιουργήστε μια κλάση που θα αναπαριστά το δέντρο . Όλος ο κώδικας θα εμπίπτουν σε αυτή την κατηγορία και τον έλεγχο πώς λειτουργεί το δέντρο :

>>> τάξη BinaryTree : 2

Ορίστε τα δεδομένα δέντρο στην τάξη . Στη συγκεκριμένη κατηγορία , να ορίσετε το δέντρο ως λίστα Python . Ο κατάλογος στο δυαδικό δέντρο ξεκινά με ένα αρχικό μέγεθος των 50 :

. . . _tree = [ -1 ] * 50
εικόνων 3

Δημιουργήστε τη λειτουργία ένθετο . Η λειτουργία αυτή χρησιμοποιεί απλές μαθηματικές πράξεις για να καθορίσει τα σημεία εισαγωγής . Θα ελέγχουν κάθε τόπου . Εάν το σημείο περιέχει έναν αρνητικό αριθμό ( -1 ), τότε το σημείο είναι άδειο και θα εισάγει . Αν όχι , κινείται προς το επόμενο σημείο . Η εισαγωγή σε ένα δυαδικό δέντρο σημαίνει ότι μικρότερες τιμές θα μετακινηθεί στην " αριστερά " κόμβου ( 2i + 1 , όπου το "i " είναι ο τρέχων δείκτης λίστα) και μεγαλύτερες τιμές θα μετακινηθεί στην " δεξί χέρι " του κόμβου (2θ +2 ) :

. . . def εισάγετε ( self , τιμή) : . . . index = 0 . . . ενώ self._tree [index ] > = 0 : . . . αν η αξία > self._tree [index ] : . . . = δείκτης (δείκτης 2 * ) + 1 . . . άλλο : . . . index = ( 2 * index ) + 2 . . . self._tree [index ] = αξία
Η 4

Δημιουργήστε μια λειτουργία αναζήτησης . Η λειτουργία αναζήτησης θα συμπεριφέρονται παρόμοια με τη λειτουργία ένθετο , αλλά θα ελέγξει μόνο αν υπάρχει η τιμή στο δέντρο :

. . . def αναζήτησης ( self , τιμή) : . . . index = 0 . . . ενώ self._tree [index ] > = 0 : . . . αν η αξία self._tree [index ] == : . . . επιστρέψει True . . . επιστρέφει False
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα