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

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

Πώς να αφαιρέσει Binary Tree σε Java

Προγραμματιστές χρησιμοποιούν Java για την ανάπτυξη μια σειρά από Web και desktop εφαρμογές, λόγω της cross-platform φορητότητα του και η ίδρυσή της χτισμένο σε αντικειμενοστραφή έννοιες του προγραμματισμού . Java επιτρέπει στους προγραμματιστές για την κατασκευή και το χειρισμό πολύπλοκων δομών δεδομένων, σχεδόν σε κάθε σύστημα . Ένας προγραμματιστής θα μπορούσε , για παράδειγμα , να δημιουργήσετε και να χρησιμοποιήσετε μια δυαδική δομή δέντρου για να αποθηκεύουν τα δεδομένα των χρηστών κατά τη διάρκεια της εκτέλεσης του προγράμματος . Ωστόσο , η programer να θέλετε να διαγράψετε το δυαδικό δέντρο , στην οποία περίπτωση θα μπορούσε να διαγράψει κάθε κόμβο , μία προς μία . Τα πράγματα που θα χρειαστείτε
Kit Java Developer του
επεξεργαστή κειμένου ή Java Development Environment
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Ανάπτυξη τον αλγόριθμο διαγραφής σε ένα δυαδικό δέντρο τάξη . Εάν ένας προγραμματιστής αναπτύσσει ένα δυαδικό δέντρο , μπορούμε να δημιουργήσουμε έναν αλγόριθμο διαγραφής για να διαγράψετε όλα τα δεδομένα σε όλους τους κόμβους του παρόντος . Το περίγραμμα για ένα δυαδικό δέντρο κατηγορία που περιλαμβάνει μια λειτουργία διαγραφής θα μοιάζει με αυτό το παράδειγμα :

τάξη BinaryTree {

ιδιωτικό αριστερά κόμβου ? Ιδιωτικό δικαίωμα του κόμβου ?

Public void add () { //add item }

δημόσιας αναζήτησης του κόμβου (στοιχείο int ) { //εμφάνιση για το στοιχείο }

δημόσια κόμβου getRoot ( ) { //root επιστροφής κόμβο }

public void clearList ( Κόμβος x ) { //διαγράφει δέντρο } } 2

Ανάπτυξη τον αλγόριθμο διαγραφής . Αν το " clearList ( ) " αντιπροσωπεύει τη λειτουργία που θα διαγράψετε ένα δυαδικό δέντρο , τότε η συνάρτηση πρέπει να πάει σε κάθε κόμβο και να κηρύξει ως « άκυρη » αναφορά , που σημαίνει Java ξεσκαρτάρισμα μπορεί να το διαγράψει . Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να επιτύχετε αυτό χρησιμοποιώντας μια διάσχιση μετά την παραγγελία , η οποία επισκέπτεται αναδρομικά κάθε κόμβο , και διαγράφει τα δύο υπο - δέντρα αυτού του κόμβου πριν από τη διαγραφή του κόμβου :

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

if ( x == null) { επιστροφή ? }

clearList ( x.left ) ? clearList ( x.right ) ? x = null?

επιστροφή?}

Η 3

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

BT.clearList ( BT.search ( 5 ) ) ? //Διαγράφει μια υπο δέντρο κάτω από το κόμβο που αντιπροσωπεύει " 5 " ? BT.clearList ( BT.getRoot ( ) ) ? //διαγραφή ολόκληρου του δέντρου
Η
εικόνων

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

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