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

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

Πώς να Traverse δυαδικά δένδρα σε Java

δυαδικά δέντρα είναι πολύπλοκες δομές δεδομένων που χρησιμοποιούνται σε προγράμματα υπολογιστή για την αποθήκευση των δεδομένων στη μνήμη χρησιμοποιώντας ένα κοινό αλγόριθμο αποθήκευσης . Με τη χρήση αυτού του τύπου του αλγορίθμου , τα δεδομένα μπορούν να αποθηκευτούν σε ένα σταθερό πρότυπο, καθιστώντας την ανάκτηση και την αναζήτηση μέσω δεδομένων ευκολότερη . Java προγραμματιστές , οι οποίοι σχεδιάζουν δυαδικά δένδρα είναι περισσότερο από πιθανό , επίσης, το σχεδιασμό αλγορίθμων για να διασχίσει αυτές τις δομές δεδομένων . Υπάρχουν τρεις τρόποι για να διασχίσει δυαδικά δένδρα : κατά σειρά , προ-παραγγελία , και μετά την παραγγελία . Τα πράγματα που θα χρειαστείτε
Java Development Kit ( JDK )
επεξεργαστή κειμένου
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Ωθήστε την δυαδικό δέντρο χρησιμοποιώντας σε σειρά διάσχισης . Υποθέτοντας ότι η κατηγορία " BT " αντιπροσωπεύει ένα δυαδικό δέντρο , ο κώδικας που ακολουθεί δείχνει πώς μπορείτε να εκτυπώσετε το δέντρο τάξης. Κάθε κόμβος έχει ένα αριστερό και το δεξί δείκτη που δείχνει προς τα αριστερά και δεξιά κόμβους του τρέχοντος κόμβου , μαζί με ένα στοιχείο δεδομένων που αντιπροσωπεύει την αξία του. Η διάσχιση στην παραγγελία θα διασχίσει το αριστερό κόμβο πρώτο μέχρι το χτύπημα null , και η εκτύπωση της μητρικής κόμβο πριν από την διάσχιση του δεξιού και ξεκινώντας πάνω . Τα μέσα που κάθε κόμβος θα εκτυπώσει μόνο αν το σύνολο των κόμβων του παιδιού αριστερή πλευρά έχουν εκτυπωθεί πρώτη :

δημόσια τάξη BT {

δημόσια άκυρη Inorder ( Κόμβος x ) {

αν ( x == null) { επιστροφή ? //σταματά αναδρομή όταν δεν υπάρχει κόμβου }

inorder ( x.left ) ? //πάντα διασχίζουν αριστερά x.data firstprint ? //εκτύπωση των δεδομένων μετά το αριστερό returnsinOrder κόμβο ( x.right ) ? //τραβέρσα δεξιά } 2

Traverse το δέντρο σε προ-παραγγελία . Η σειρά αυτή είναι παρόμοια με την κατά σειρά , εκτός από το ότι η εκτύπωση του κόμβου έρχεται πριν από κάθε διάσχιση . Έτσι , ο κόμβος θα εκτυπώσει την αξία του , και στη συνέχεια διασχίζουν τα αριστερά . Στη συνέχεια , όταν η αναδρομή επιστρέφει στον κόμβο μετά την διάσχιση αριστερά, ο κόμβος θα διασχίσει συνέχεια δεξιά. Αυτό σημαίνει ότι ο κόμβος θα εκτυπώνει πάντα η ίδια πριν από κάθε παιδί κόμβοι εκτύπωσης :

προπαραγγελία public void ( Κόμβος x ) {

if ( x == null) { επιστροφή? //Σταματά όταν αναδρομή δεν υπάρχει κόμβου }

x.data εκτύπωσης? //printinOrder ( x.left ) ? //τραβέρσα leftinOrder ( x.right ) ? //τραβέρσα δεξιά }
εικόνων 3

Traverse το δέντρο μετά από παραγγελία . Αυτό είναι το αντίθετο της όδευσης προ-παραγγελία . Ένας κόμβος θα φανεί πάντα προς τα αριστερά ή προς τα δεξιά Κόμβοι του πριν από την εκτύπωση η ίδια , πράγμα που σημαίνει ότι όλοι οι άλλοι κόμβοι παιδί κάτω θα εκτυπώσετε την πρώτη :

postOrder public void ( Κόμβος x ) {

αν ( x == null) { επιστροφή? //σταματά αναδρομή όταν δεν υπάρχει κόμβου }

inorder ( x.left ) ? //τραβέρσα leftinOrder ( x.right ) ? //διασχίζουν rightprint x.data ? //print }
Η
εικόνων

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

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