Πώς μπορώ να διαγράψω έναν κόμβο από ένα BST;
Χρειάζομαι έναν αλγόριθμο για να το κάνουμε αυτό στο Σχέδιο Δρ.
Πώς μπορώ να διαγράψω έναν κόμβο από ένα BST;
Χρειάζομαι έναν αλγόριθμο για να το κάνουμε αυτό στο Σχέδιο Δρ.
Υποθέτοντας δυαδικό δέντρο αναζήτησης σας χρησιμοποιεί κατ 'ευθείαν προς τα εμπρός μειονεκτήματα κύτταρα με περιεχόμενο μόνο στα φύλλα, και με την προϋπόθεση να εργάζεστε σε μια εργασία για το σπίτι: Μπορείτε να χρησιμοποιήσετε set-car!ή set-cdr!να αλλάξετε το περιεχόμενο ενός κελιού μειονεκτήματα.
Μπορείτε βασικά πετάξει το BST που έχετε τώρα, και να δημιουργήσει ένα νέο χωρίς το στοιχείο.
Μπορείτε να το κάνετε αυτό αναδρομικά φθίνουσα το δέντρο. Εάν το στοιχείο σας είναι μικρότερη από τη ρίζα δεδομένο, δημιουργήστε ένα BST του οποίου η ρίζα και περισσότερο, από ό, τι κλαδί έχει αντιγραφεί από αυτό που έχετε τώρα, αλλά των οποίων λιγότερο από ό, τι κλαδί είναι το αποτέλεσμα από μια αναδρομική κλήση.
Είναι πολύ παρόμοιο με το πώς μπορείτε να προσθέσετε έναν κόμβο, αλλά όταν φτάσετε σε αυτό που έψαχναν για, συγχώνευση των δύο BSTs κάτω από αυτό και να επιστρέψει το αποτέλεσμα. Υπάρχουν σίγουρα τα υπάρχοντα ερωτήματα σχετικά με το πώς να το κάνουμε αυτό ήδη.