Στην πραγματικότητα αυτό που θέλω να μάθω, δεν είναι πώς να εφαρμόσουν τον αλγόριθμο διάσχισης στην παραγγελία για BST, αλλά να το εφαρμόσει μόνο με εισαγωγή, διαγραφή και αλγόριθμοι διάσχισης προ-παραγγελία για ένα BST.
Μπορείτε να υποθέσετε ότι σας δίνεται η υλοποιήσεις για τυπικούς αλγόριθμους BST για την εισαγωγή, διαγραφή και διάσχιση προ-παραγγελία.
πώς να εφαρμόσουν BST inorder διάσχιση;
Χμμμ ... Ας πούμε ότι έχουμε + στη ρίζα και 1 στο αριστερό κόμβο και 2 στη δεξιά κόμβο. Η προ-παραγγελία θα είναι + 1 2και για θα 1 + 2.. η διαφορά είναι ότι το 1ο και 2ο έχουν ανταλλάξει, οπότε αν έχετε εισαγωγής και διαγραφής που κατ 'επανάληψη να ανταλλάξετε κάθε τιμή κόμβο ρίζα με το αριστερό αξία κόμβο και στη συνέχεια, χρησιμοποιώντας προ-παραγγελία διασχίζουν το δέντρο που θα επιστρέψει θα προκαλέσει διάσχισης inorder.
Δεν είμαι σίγουρος αν αυτός είναι ο τρόπος να πάει, αλλά ελπίζω ότι βοηθά.
Νομίζω ότι έχω βρει μια λύση. :)
έχουμε διάσχισης, εισαγωγής και διαγραφής μεθόδους προ-παραγγελία.
Ας υποθέσουμε ότι μας δίνεται μια BST.
αυτό που κάνουμε είναι, παρέχουμε τη μέθοδο διάσχισης προ-παραγγελία με το δεδομένο BST. δεδομένου ότι διάσχιση προ-παραγγελία πάντα να πάτε στο γονικό κόμβο πρώτα, να διαγράψετε και να εισάγετε κάθε ρίζας (επειδή η ρίζα είναι η πρώτη μητρική που συναντάμε) κόμβο αναδρομικά μέχρι το αριστερό υπο δέντρο από τη ρίζα είναι μηδενική.
τώρα μπορείτε να ξεκινήσετε διαγράφοντας τη ρίζα μέχρι υπάρχει κανένα κόμβοι left.Put αυτές διαγράφονται κόμβους σε μια σειρά ή όπου αλλού θέλετε. Θα πάρετε το ταξινομημένο σύνολο των κόμβων. (Δηλαδή οι κόμβοι θα διαγραφούν σε μια ταξινομημένη order.the αύξουσα σειρά και ούτω καθεξής ...)













