BST di base Domanda da un nuovo programmatore

voti
0

Dato il set di dati (8, 1, 6, 9, 3, 5, 4, 7) ho disegnato il seguente albero di ricerca binaria:

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

La mia domanda è, se volevo rimuovere il nodo radice (8) da questo albero, come lo farei E quale sarebbe la risultante struttura ad albero simile? La ringrazio molto per tutto l'aiuto!

È pubblicato 30/03/2011 alle 04:29
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

è necessario promuovere un nodo Dalla sottostruttura sinistra o il sottoalbero destro. È possibile farlo in modo arbitrario, o meglio ancora, di promuovere dall'albero più profondo.

Se promuovendo dall'albero sub sinistra, trovare la foglia andando a destra sempre a partire dal substree sinistra. Snip questa foglia fuori l'albero, e metterlo come nuova radice.

Allo stesso modo, se promuovere dall'albero sub destra, trovare la foglia andando a sinistra partendo sempre nel sottoalbero destro. Snip questa foglia fuori l'albero, e metterlo come nuova radice.

Risposto il 30/03/2011 a 04:38
fonte dall'utente

voti
-2
            1
             \
              6
            /  \
           3    9 
            \  /
             5 7
            /
           4   

L'albero sarà come indicato sopra. La cosa migliore sarebbe ricostruire nuovamente l'albero da zero piuttosto che avere qualche logica per spostare le foglie e complicare il processo.

Risposto il 30/03/2011 a 06:51
fonte dall'utente

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