Poate un arbore binar de căutare să fie atât de plin și completă?

voturi
3

În pregătirea pentru mijlocul semestrului structurile de date, profesorul ne-a dat testul de anul trecut, o întrebare care se ocupă cu re-aranjarea un exemplu copac într-un arbore binar de căutare completă. Am încercat mai multe versiuni diferite de a scrie copac, dar acest exemplu complet arbore binar de la Wolfram Mathematica nu a ajutat deloc, deoarece se potrivește, de asemenea, definiția completă. Manualul definește un arbore binar complet ca un copac prin nivelul n-1 este perfect cu unele noduri suplimentare frunze la nivel n, toate aliniate la stanga.

Nodurile sunt A E I L N O P R S T U, n = 11 noduri. Iată cel mai bun răspuns am venit cu:

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

Dar acest lucru se potrivește exemplul copac de la WM, dar nu exemplul de carte. Deci, care este răspunsul corect?

Întrebat 19/10/2010 la 14:57
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
11

Nu înțeleg complet în cazul în care confuzia se află, dar voi face tot posibilul să răspundă ...

Un arbore binar este considerată completă dacă fiecare nod are exact 0 sau 2 copii.

Un arbore binar este considerată completă dacă fiecare nivel este plin cu excepția ultimului, și toate nodurile sunt împinse cât mai mult posibil din stânga.

Deci, dacă se potrivește atât acestor descrieri, care este posibil, aceasta poate fi în același timp plin și completă.

De asemenea, un arbore binar este considerată perfectă dacă este plină și toate frunzele sunt la același nivel.

Deci, în exemplul de mai sus te-a atras, acel copac este plin și completă, dar nu perfect.

Sper ca asta ajuta.

Publicat 19/10/2010 la 15:06
sursa de către utilizator

voturi
3

Unele mai multe exemple, care sperăm că va fi de ajutor:

Complet, nu pe deplin:

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

Full, nu este completă:

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


        R
      /    \
     L      T
    / \    
  I    N   
 / \  / \
A  E O   P
Publicat 21/10/2010 la 03:38
sursa de către utilizator

voturi
1

Arbore complet: un arbore binar T este plin, dacă fiecare nod este fie o frunză sau are exact două noduri copil.

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

copac plin, dar nu complet

Arbore complet: un T arbore binar cu n nivele este completă dacă toate nivelurile, cu excepția, poate, ultima sunt complet pline, iar ultimul nivel are toate nodurile sale pe partea stângă.

       O
      / \
     O   O
    /
   O

copac complet, dar nu pe deplin

In mod similar, un alt exemplu

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

Sper ca acestea sunt de ajutor!

Publicat 21/04/2014 la 22:30
sursa de către utilizator

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