it-swarm.com.de

Unterschied zwischen "Vollständiger Binärbaum", "Strenger Binärbaum", "Vollständiger Binärbaum"?

Ich bin verwirrt über die Terminologie der untersten Bäume, ich habe den Baum studiert und ich kann nicht zwischen diesen Bäumen unterscheiden:

a) Kompletter binärer Baum

b) Strenger binärer Baum

c) Voller binärer Baum  

Bitte helfen Sie mir, zwischen diesen Bäumen zu unterscheiden ... Wann und wo werden diese Bäume in der Datenstruktur verwendet?

60
kTiwari

Wikipedia ergab

Ein vollständiger Binärbaum (manchmal richtiger Binärbaum oder 2-Baum oder streng binärer Baum) ist ein Baum, in dem jeder Knoten außer den Blättern zwei Kinder hat. 

Sie haben also keine Knoten mit nur einem Kind. Scheint identisch mit dem strengen Binärbaum zu sein. 

Hier ist ein Bild eines vollständigen/strengen Binärbaums von Google:

enter image description here

Ein vollständiger Binärbaum ist ein Binärbaum, in dem alle Ebenen (außer der letzten) vollständig gefüllt sind und alle Knoten so weit wie möglich links liegen.

Es scheint einen ausgeglichenen Baum zu bedeuten.

Hier ist ein Bild eines vollständigen binären Baums. Von Google ist der vollständige Baumteil des Bildes ein Bonus.

enter image description here

59
Sam I am

Perfekter Baum:

       x
     /   \
    /     \
   x       x
  / \     / \
 x   x   x   x
/ \ / \ / \ / \
x x x x x x x x

Vollständiger Baum:

       x
     /   \
    /     \
   x       x
  / \     / \
 x   x   x   x
/ \ /
x x x

Strenger/vollständiger Baum:

       x
     /   \
    /     \
   x       x
  / \ 
 x   x 
    / \
    x x 
74
japreiss

Es gibt einen Unterschied zwischen STRICT und FULL BINARY TREE. 

1) FULL BINARY TREE: Ein binärer Baum der Höhe h, der genau (2 ^ h) -1 Elemente enthält, wird als vollständiger binärer Baum bezeichnet. (Ref: S. 427, Datenstrukturen, Algorithmen und Anwendungen in C++ [University Press], zweite Ausgabe von Sartaj Sahni).

oder mit anderen Worten

In einem FULL BINARY TREE hat jeder Knoten genau 0 oder 2 Kinder, und alle Blattknoten befinden sich auf derselben Ebene.

Zum Beispiel: Folgendes ist ein FULL BINARY TREE:

          18
       /      \   
     15       30    
    /  \     /   \   
  40    50  100  40 

2) STRICT BINARY TREE: Jeder Knoten hat genau 0 oder 2 Kinder.

Zum Beispiel: Folgendes ist ein STRICT BINARY TREE:

         18
       /     \   
     15       30    
    /  \          
  40    50

Ich denke, es gibt keine Verwirrung bei der Definition eines vollständigen binären Baums. Trotzdem möchte ich zur Vollständigkeit des Beitrags sagen, was ein vollständiger binärer Baum ist.

3) COMPLETE BINARY TREE: Ein binärer Baum ist abgeschlossen. Binärer Baum ist vollständig, wenn alle Ebenen bis auf die letzte Ebene vollständig gefüllt sind und die letzte Ebene alle Tasten als möglich belässt.

Zum Beispiel: Das Folgende ist ein VOLLSTÄNDIGER BINÄRISCHER BAUM:

           18
       /       \  
     15         30  
    /  \        /  \
  40    50    100   40
 /  \   /
8   7  9 

Hinweis: Das Folgende ist auch ein kompletter binärer Baum:

         18
       /     \   
     15       30    
    /  \     /   \   
  40    50  100  40 
42
Saurabh Bhatia

Disclaimer- Die Hauptquelle für einige Definitionen ist Wikipedia. Jeder Vorschlag zur Verbesserung meiner Antwort ist willkommen.

Obwohl dieser Beitrag eine akzeptierte Antwort hat und eine gute ist, war ich immer noch verwirrt und möchte etwas mehr Klarheit über den Unterschied zwischen diesen Begriffen hinzufügen.

(1) FULL BINARY TREE- Ein vollständiger Binärbaum ist ein Binärbaum, in dem jeder Knoten außer den Blättern zwei Kinder hat. Dies wird auch alsstreng binärer Baumbezeichnet.

enter image description hereenter image description here

Die beiden obigen Beispiele sind Beispiele für einen vollständigen oder streng binären Baum.

(2) COMPLETE BINARY TREE- Nun, die Definition des vollständigen Binärbaums ist ziemlich vieldeutig und besagt: - Ein vollständiger Binärbaum ist ein Binärbaum, in dem jede Ebene außer möglicherweise die letzte ist vollständig gefüllt, und alle Knoten sind so weit wie möglich links. Es kann auf der letzten Ebene h so weit wie möglich zwischen 1 und 2h Knoten haben. 

Beachten Sie die Zeilen in Kursivschrift. 

Die Mehrdeutigkeit liegt in den kursiven Zeilen, "außer möglicherweise der letzte", was bedeutet, dass die letzte Ebene auch vollständig gefüllt sein kann, d. H. Diese Ausnahme muss nicht immer erfüllt sein. Wenn die Ausnahme nicht gilt, ist es genau wie das zweite Bild, das ich gepostet habe. Dieses kann auch als perfect binary tree bezeichnet werden. Ein perfekter binärer Baum ist also auch vollständig und vollständig, aber nicht umgekehrt, was durch eine weitere Definition klar wird, die ich angeben muss:

ALMOST COMPLETE BINARY TREE- Wenn die Ausnahme in der Definition des vollständigen Binärbaums zutrifft, wird sie als fast vollständiger Binärbaum oder fast vollständiger Binärbaum bezeichnet. Es ist nur eine Art vollständiger Binärbaum selbst, aber es ist eine separate Definition erforderlich, um ihn eindeutiger zu machen.

Ein fast vollständiger Binärbaum sieht also so aus. Sie können im Bild sehen, dass die Knoten so weit wie möglich links sind. Es ist also eher eine Untermenge des vollständigen Binärbaums. Genauer gesagt ist jeder fast vollständige Binärbaum eine vollständige Binärdatei Baum aber nicht umgekehrt. :

enter image description here

9
0decimal0

Aus den obigen Antworten folgt der genaue Unterschied zwischen vollständigen/strengen, vollständigen und perfekten binären Bäumen

  1. Voll/Streng Binärbaum : - Jeder Knoten außer den Blattknoten hat zwei Kinder

  2. Vollständiger Binärbaum : - Jede Ebene außer der letzten Ebene ist vollständig gefüllt, und alle Knoten bleiben ausgerichtet.

  3. Perfekter Binärbaum : - Jeder Knoten außer den Blattknoten hat zwei Kinder und jede Ebene (auch letzte Ebene) ist vollständig gefüllt.

5
Lotus

Um mit den Grundlagen zu beginnen, ist es sehr wichtig, den binären Baum selbst zu verstehen, um die verschiedenen Typen davon zu verstehen.

Ein Baum ist nur dann ein binärer Baum, wenn: -

- Es hat einen Wurzelknoten, der möglicherweise keine Kindknoten hat (0 Kindknoten, NULL-Baum).

–Root-Knoten können 1 oder 2 untergeordnete Knoten haben. Jeder dieser Knoten bildet selbst einen Baum

–Anzahl untergeordneter Knoten kann 0, 1, 2 ....... nicht mehr als 2 sein

–Es gibt einen eindeutigen Pfad vom Stamm zu jedem anderen Knoten

Beispiel:

        X
      /    \
     X      X
          /   \
         X     X

Zu Ihren angefragten Terminologien kommen:

Ein binärer Baum ist ein vollständiger binärer Baum (mit der Höhe h, wir nehmen den Wurzelknoten als 0), und zwar nur dann, wenn: -

Die Stufen 0 bis h-1 repräsentieren einen vollständigen binären Baum der Höhe h-1

- Ein oder mehrere Knoten der Stufe h-1 können 0 oder 1 untergeordnete Knoten haben

Wenn j, k Knoten in der Ebene h-1 sind, dann hat j mehr Kindknoten als k, und nur dann, wenn j links von k ist, dh die letzte Ebene (h) kann Blattknoten fehlen, die vorhandenen Knoten müssen jedoch nach links verschoben werden

Beispiel:

                          X
                     /          \
                   /              \
                 /                  \
                X                    X
             /     \              /     \
           X       X             X       X
         /   \   /   \         /   \    /  \ 
        X    X   X   X        X    X    X   X 

Ein Binärbaum ist genau dann ein Binärbaum, wenn: -

Jeder Knoten hat genau zwei Kindknoten oder keine Knoten

Beispiel:

         X
       /   \
      X     X 
          /   \
         X      X
        / \    / \ 
       X   X  X   X 

Ein binärer Baum ist ein vollständiger binärer Baum, wenn und nur wenn: -

Jeder Nicht-Blatt-Knoten hat genau zwei Kindknoten

Alle Blattknoten befinden sich auf derselben Ebene

Beispiel:

                          X
                     /          \
                   /              \
                 /                  \
                X                    X
             /     \              /     \
           X       X             X       X
         /   \   /   \         /   \    /  \ 
        X    X   X   X        X    X    X   X 
      /  \  / \ / \ / \      / \  / \  / \ / \ 
     X   X X  X X X X X     X  X  X X  X X X X 

Sie sollten auch wissen, was ein perfekter binärer Baum ist?

Ein binärer Baum ist genau dann ein perfekter binärer Baum, wenn: -

- ist ein vollständiger binärer Baum

- Alle Blattknoten befinden sich auf derselben Ebene

Beispiel:

                          X
                     /          \
                   /              \
                 /                  \
                X                    X
             /     \              /     \
           X       X             X       X
         /   \   /   \         /   \    /  \ 
        X    X   X   X        X    X    X   X 
      /  \  / \ / \ / \      / \  / \  / \ / \ 
     X   X X  X X X X X     X  X  X X  X X X X 

Es tut mir leid, dass ich keine Bilder posten kann, da ich keine Reputation habe. Ich hoffe, das hilft Ihnen und anderen!

1
user2376267

Ein vollständiger Binärbaum ist ein vollständiger Binärbaum, aber ein Umkehren ist nicht möglich, und wenn die Tiefe der Binärdatei n ist, ist dies die Zahl Nein. von Knoten im vollständigen Binärbaum ist (2 ^ n-1). Es ist nicht notwendig, dass im Binärbaum zwei untergeordnete Elemente vorhanden sind, aber in der vollständigen Binärdatei hat jeder Knoten kein oder zwei untergeordnete Elemente.

Betrachten Sie einen binären Baum, dessen Knoten baumartig gezeichnet sind. Beginnen Sie nun mit der Nummerierung der Knoten von oben nach unten und von links nach rechts. Ein vollständiger Baum hat folgende Eigenschaften:

Wenn n Kinder hat, haben alle Knoten, die weniger als n sind, zwei Kinder. 

Wenn n ein Kind hat, muss es das linke Kind sein und alle Knoten mit weniger als n haben zwei Kinder. Außerdem hat kein Knoten, der größer als n ist, Kinder.

Wenn n keine Kinder hat, hat kein Knoten, der größer als n ist, Kinder.

Ein vollständiger binärer Baum kann verwendet werden, um einen Heap darzustellen. Es kann leicht in einem zusammenhängenden Speicher ohne Lücken dargestellt werden (d. H. Alle Array-Elemente werden verwendet, außer für den eventuell vorhandenen Speicherplatz).

1
Craig Wright

In meiner begrenzten Erfahrung mit dem binären Baum denke ich:

  1. Streng binärer Baum : Jeder Knoten außer den Blattknoten hat zwei Kinder oder nur einen Stammknoten.
  2. Full Binary Tree : Ein binärer Baum von H, der2 ^ H -1 Knotenenthält (oder genau). Es ist klar, dass jede Ebene die meisten Knoten hat.
  3. Complete Binary Tree : Kompletter binärer Baum - /: Dies ist ein binärer Baum, in dem alle Ebenen (außer der letzten) vollständig gefüllt sind und alle Knoten so weit wie möglich links liegen.
1
BertKing

Betrachten wir einen binären Baum der Höhe 'h'. Ein Binärbaum wird als vollständiger Binärbaum bezeichnet, wenn alle Blätter in der Höhe 'h' oder 'h-1' vorhanden sind und keine Zahlen in der Sequenz fehlen. 

                   1
                 /   \
              2       3
            /    \         
         4        5

Es ist ein vollständiger binärer Baum. 

                   1
                 /   \
              2       3
            /        /    
         4         6    

Es ist kein vollständiger Binärbaum, da der Knoten der Nummer 5 in der Sequenz fehlt 

0