Grunnleggende BST spørsmål fra en ny Programmerer

stemmer
0

Gitt datasett (8, 1, 6, 9, 3, 5, 4, 7) trakk jeg følgende binært søk treet:

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

Mitt spørsmål er, hvis jeg ønsket å fjerne rotnoden (8) fra dette treet, hvordan ville jeg gjøre det og hva ville den resulterende trestruktur se ut? Tusen takk for all hjelp!

Publisert på 30/03/2011 klokken 03:29
kilden bruker
På andre språk...                            


2 svar

stemmer
1

du trenger for å fremme enten en node fra venstre treet eller høyre subtre. Du kan gjøre dette vilkårlig, eller enda bedre, fremme fra den dypeste treet.

Hvis fremme fra venstre undertreet, finn bladet ved å gå riktig alltid starter i venstre substree. Klipp dette blad av treet, og sette det som den nye roten.

Likeledes om å fremme fra høyre undertreet, finn bladet ved å gå til venstre alltid starter i riktig treet. Klipp dette blad av treet, og sette det som den nye roten.

Svarte 30/03/2011 kl. 03:38
kilden bruker

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

Treet vil se ut som vist ovenfor. Det beste ville være å rekonstruere treet på nytt fra bunnen i stedet for å ha noen logikk for å flytte bladene og komplisere prosessen.

Svarte 30/03/2011 kl. 05:51
kilden bruker

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