Βασικές Ερώτηση BST Από τη Νέα Προγραμματιστής

ψήφοι
0

Δεδομένου του σύνολο δεδομένων (8, 1, 6, 9, 3, 5, 4, 7) επέστησα την ακόλουθη δυαδικό δέντρο αναζήτησης:

   8
  / \
  1  9
   \ 
    6
   / \ 
  3   7
   \ 
    5
   /
  4

Η ερώτησή μου είναι, αν ήθελα να αφαιρέσετε τον κόμβο ρίζας (8) από αυτό το δέντρο, το πώς θα το κάνω και αυτό θα το δέντρο-δομή που προκύπτει μοιάζει; Σας ευχαριστώ πολύ για οποιαδήποτε βοήθεια!

Δημοσιεύθηκε 30/03/2011 στις 04:29
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

θα πρέπει να προωθήσει είτε έναν κόμβο από την αριστερή υποδέντρο ή το δεξί υποδένδρο. Μπορείτε να το κάνετε αυτό αυθαίρετα, ή ακόμη καλύτερα, να προωθήσει από το βαθύτερο δέντρο.

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

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

Απαντήθηκε 30/03/2011 στις 04:38
πηγή χρήστη

ψήφοι
-2
            1
             \
              6
            /  \
           3    9 
            \  /
             5 7
            /
           4   

Το δέντρο θα δούμε όπως φαίνεται παραπάνω. Το καλύτερο θα ήταν να ανακατασκευάσει και πάλι το δέντρο από την αρχή αντί να έχουν κάποια λογική για να μετακινήσετε τα φύλλα και περιπλέκουν τη διαδικασία.

Απαντήθηκε 30/03/2011 στις 06:51
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more