BST de bază întrebare de la un nou programator

voturi
0

Având în vedere setul de date (8, 1, 6, 9, 3, 5, 4, 7), am tras următorul arbore binar de căutare:

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

Întrebarea mea este, dacă am vrut să elimine nodul rădăcină (8) din acest copac, cum o fac și ceea ce ar arăta ca rezultat copac-structura cum ar fi? Vă mulțumesc foarte mult pentru orice ajutor!

Întrebat 30/03/2011 la 04:29
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
1

va trebui să promoveze fie un nod din subarborele stâng sau subarborelui drept. Puteți face acest lucru în mod arbitrar, sau mai bine încă, să promoveze din cea mai adâncă copac.

În cazul în care promovarea din copac Sub stânga, găsiți frunza de a merge drept începând întotdeauna în substree din stânga. Decupați această frunză de pe copac, și a pus-o ca noua rădăcină.

De asemenea, dacă promovarea din arborele de sub dreapta, găsiți frunza de a merge întotdeauna la stânga începând din subarborele din dreapta. Decupați această frunză de pe copac, și a pus-o ca noua rădăcină.

Publicat 30/03/2011 la 04:38
sursa de către utilizator

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

Copacul va arăta așa cum este arătat mai sus. Cel mai bine ar fi pentru a reconstrui copacul din nou de la zero, mai degrabă decât unele logica pentru a muta frunze și complică procesul.

Publicat 30/03/2011 la 06:51
sursa de către utilizator

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