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

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

Πώς να κάνετε Preorder Traversal σε Binary Tree σε Java

Για να γίνει μια " διάσχιση " ενός δυαδικού δένδρου σε Java σημαίνει να κάνουμε μια αλγοριθμική επεξεργασία των κόμβων σε κάποιο είδος της παραγγελίας . Ένα " προπαραγγελία " διάσχιση σημαίνει ότι ο κόμβος ρίζας επεξεργασία πρώτα , και στη συνέχεια το υπόλοιπο των κόμβων του δέντρου επεξεργασία αναδρομικά . Η λειτουργία διάσχισης θα εκτυπώσετε απλά κάθε κόμβο που επισκέπτεται την κονσόλα . Οδηγίες
Η 1

Δημιουργήστε μια απλή δυαδική κατηγορία δέντρο αναζήτησης που έχει ένα βασικό κατασκευαστή που προετοιμάζει την αξία του κόμβου . Περιλαμβάνονται επίσης θα πρέπει να είναι μια μέθοδος ένθετο για να διασχίσει ένα δέντρο και να δημιουργήσετε ένα νέο κόμβο στη σωστή θέση . " " δημόσια τάξη BinaryTree { BinaryTree αριστερά? BinaryTree δεξιά? αξία int ? δημόσια BinaryTree ( int v) {value = v ? } //Τοποθετήστε μια τιμή στο δέντρο δημόσιο void insert ( int v) { αν ( κατά περίπτωση ( αριστερά = = null ) αριστερά = νέα BinaryTree ( v) ? άλλο left.insert ( v ) ? } else if ( v > value ) {if (δεξιά == null) δεξιά = νέα BinaryTree ( v) ? άλλο right.insert ( v ) ? . } } } " " 2

Κατασκευάστε το ριζικό κόμβο του δυαδικού δέντρου , αναθέτοντας μια τιμή που είναι κοντά στο μέσο όρο της από τα αντικείμενα που θα πρέπει να την αποθήκευση Αυτό θα εξασφαλίσει την αποτελεσματικότητα , δεδομένου . δυαδικό δέντρο σας πρέπει να είναι αρκετά καλά ισορροπημένο Αν είστε αποθήκευση διανομή των αριθμών 1 έως 100 , για παράδειγμα , το 50 είναι μια καλή τιμή για το κόμβο " " BinaryTree β = νέα BinaryTree ( 50) ? " . "
εικόνων 3

Εισάγετε κόμβους στο δέντρο σε μια συγκεκριμένη σειρά . το δυαδικό δέντρο δεν είναι αυτόματη εξισορρόπηση , έτσι ώστε εισαγωγή κόμβων σε μια συγκεκριμένη σειρά βοηθά να διατηρήσει την ισορροπία . Εδώ οι κόμβοι είναι μέρος να κάνω μια σύντομη και αποτελεσματικά ισορροπημένο δέντρο " " b.insert ( 20) ? . b.insert ( 40 ) ? b.insert ( 10 ) ? b.insert ( 5 ) ? b.insert ( 45 ) ? b.insert ( 70 ) ? b.insert ( 60 ) ? b.insert ( 80 ) ? b.insert ( 55 ) ? b.insert ( 85 ) ? " "
Η 4

κάνετε μια διάσχιση preorder διασχίζοντας το ο κόμβος ρίζας πρώτο, τότε το αριστερό δέντρο και, τέλος, η σωστή δέντρο . είναι εύκολο να το κάνουμε αυτό αναδρομικά με ένα μικρό δυαδικό δέντρο , καθώς δεν υπερχειλίζει τη στοίβα . Εάν δυαδικό δέντρο σας είναι πολύ μεγάλο , η λειτουργία διάσχιση πρέπει να εφαρμοστεί επαναληπτικά .
5

Προσθέστε μια νέα μέθοδο , προπαραγγελία , στην κατηγορία BinaryTree . αυτή η μέθοδος εκτυπώνει μόνο την αξία του κάθε κόμβου που επισκέπτεται . "" public void προπαραγγελία ( ) { System.out.println ( αξία ) ? αν ( αριστερά = null ! ) left.preorder ( ) ? αν ( δεξιά = null ! ) right.preorder ( ) ? } " "
Η 6

Καλέστε τη νέα μέθοδο , μετά ένθετα σας . να εκτυπώσετε τους κόμβους σε preorder " " b.preorder ( ) ? "
Η
εικόνων

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

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