Základní BST Otázka Z Nového Programátor

hlasů
0

Vzhledem k tomu, datový soubor (8, 1, 6, 9, 3, 5, 4, 7), čerpal jsem následující strom binárního vyhledávání:

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

Moje otázka je, jestli bych chtěl odstranit kořenový uzel (8) z tohoto stromu, jak bych to udělat, a co by se výsledná stromová struktura vypadat? Velice vám děkuji za jakoukoliv pomoc!

Položena 30/03/2011 v 04:29
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

budete muset podporovat buď uzlu z levého podstromu nebo pravého podstromu. To lze provést libovolně, nebo ještě lépe, podporují od nejhlubšího stromu.

V případě podpory od levého podstromu, najít list podle děje pravý vždy začíná v levém substree. Snip tento list ze stromu, a dát ho jako nový kořenový adresář.

Stejně tak v případě podpory od pravého dílčího stromu, najít list sahající vlevo vždy začíná v pravém podstromu. Snip tento list ze stromu, a dát ho jako nový kořenový adresář.

Odpovězeno 30/03/2011 v 04:38
zdroj uživatelem

hlasů
-2
            1
             \
              6
            /  \
           3    9 
            \  /
             5 7
            /
           4   

Strom bude vypadat, jak je uvedeno výše. Nejlepší by bylo rekonstruovat opět strom od nuly, spíše než s nějakou logiku přesunout listy a komplikovat proces.

Odpovězeno 30/03/2011 v 06:51
zdroj uživatelem

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