Ωθήστε την δυαδικό δέντρο χρησιμοποιώντας σε σειρά διάσχισης . Υποθέτοντας ότι η κατηγορία " 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 }
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα