Kan et binært søketre være både full og komplett?

stemmer
3

I forberedelsene til datastrukturer deleksamen, professoren ga oss fjorårets test, ett spørsmål som omhandler re-arrangere et eksempel tre inn i et komplett binært søketre. Jeg har prøvd flere forskjellige versjoner for å skrive ut treet, men dette komplett binært tre eksempel fra Wolfram Mathematica hjalp ikke i det hele tatt, siden den også passer definisjonen av full. Læreboken definerer en fullstendig binært tre som et tre gjennom nivå n-1 er perfekt med noen ekstra bladnoder på nivå n, alle venstrejustert.

Nodene er A E I L N O P R S T U, n = 11 noder. Her er det beste svaret jeg kom opp med:

           R
         /    \
        L      T
       / \    / \
     I    N   S   U
    / \  / \
   A  E O   P

Men dette passer eksempel på treet på WM, men ikke boken eksempel. Så hvilken er den riktige svaret?

Publisert på 19/10/2010 klokken 13:57
kilden bruker
På andre språk...                            


3 svar

stemmer
11

Jeg vet ikke helt forstår hvor forvirringen ligger, men jeg skal gjøre mitt beste for å svare på ...

En binærtreet anses full hvis hver node har nøyaktig 0 eller 2 barn.

En binærtreet anses komplett hvis alle nivå er full bortsett fra den siste, og alle noder er skjøvet så langt til venstre som mulig.

Så hvis det passer begge disse beskrivelsene, som er mulig, kan det samtidig være full og komplett.

Dessuten er et binært tre anses perfekt hvis den er full, og alle bladene er på samme nivå.

Så i eksempelet du tegnet ovenfor, er det treet fulle og hele, men ikke perfekt.

Jeg håper dette hjelper.

Svarte 19/10/2010 kl. 14:06
kilden bruker

stemmer
3

Noen flere eksempler som forhåpentligvis vil være nyttig:

Komplett, ikke full:

        R
      /    \
     L      T
    / \    / \
  I    N   S   U
 / \  /
A  E O   

Full, ikke fullføre:

        R
      /    \
     L      T
    / \    / \
  I    N   S   U
      / \
     O   P


        R
      /    \
     L      T
    / \    
  I    N   
 / \  / \
A  E O   P
Svarte 21/10/2010 kl. 02:38
kilden bruker

stemmer
1

Full Tre: et binært tre T er full hvis hver node er enten et blad eller besitter nøyaktig to barn noder.

      O
     / \
    O   O
   / \ / \
  O  O O  O
    / \
   O   O

Full treet, men ikke fullført

Komplett Tre: et binært tre T med n nivåene er komplett hvis alle nivåer bortsett fra muligens den siste er helt full, og det siste nivået har alle noder til venstre side.

       O
      / \
     O   O
    /
   O

Komplett treet, men ikke full

Tilsvarende, et annet eksempel

      O
     / \
    O   O
   / \ / \
  O  O O  O
 /\ /
O O O

Jeg håper dette er nyttig!

Svarte 21/04/2014 kl. 21:30
kilden bruker

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