web-dev-qa-db-fra.com

Différence entre "Arbre binaire complet", "Arbre binaire strict", "Arbre binaire complet"?

Je suis confus quant à la terminologie des arbres ci-dessous, j'ai étudié l'arbre, et je suis incapable de faire la distinction entre ces arbres:

a) Arbre binaire complet

b) Arbre binaire strict

c) Arbre binaire complet  

S'il vous plaît, aidez-moi à différencier ces arbres . Quand et où ces arbres sont-ils utilisés dans la structure de données?

60
kTiwari

Wikipedia cédé

Un arbre binaire complet (parfois un arbre binaire approprié ou deux arbres ou un arbre strictement binaire) est un arbre dans lequel chaque noeud autre que les feuilles a deux enfants. 

Donc, vous n'avez pas de nœuds avec 1 seul enfant. Semble être la même chose que l’arbre binaire strict. 

Voici une image d'un arbre binaire complet/strict, de google:

enter image description here

Un arbre binaire complet est un arbre binaire dans lequel chaque niveau, sauf éventuellement le dernier, est complètement rempli et tous les nœuds sont aussi éloignés que possible.

Cela semble signifier un arbre équilibré.

Voici une image d'un arbre binaire complet, à partir de Google, une partie de l'image est un bonus.

enter image description here

59
Sam I am

Arbre parfait:

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

Arbre complet:

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

Arbre strict/complet:

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

Il y a une différence entre un STRICT et un arbre complet. 

1) ARBRE BINAIRE COMPLET: Un arbre binaire de hauteur h qui contient exactement (2 ^ h) -1 éléments est appelé un arbre complet binaire . (Ref: Pg 427, Structures de données, algorithmes et applications en C++ [University Press], Deuxième édition de Sartaj Sahni).

ou en d'autres termes

Dans un arbre complet, chaque nœud a exactement 0 ou 2 enfants et tous les nœuds terminaux sont au même niveau.

Par exemple: Voici un arbre complet:

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

2) ARBRE BINAIRE STRICT: Chaque nœud a exactement 0 ou 2 enfants.

Par exemple: Ce qui suit est un ARBRE BINAIRE STRICT:

         18
       /     \   
     15       30    
    /  \          
  40    50

Je pense qu’il n’ya pas de confusion dans la définition d’un arbre binaire complet, toujours pour l’exhaustivité du post, je voudrais dire ce qu’est un arbre binaire complet.

3) ARBRE BINAIRE COMPLET: Un arbre binaire est un arbre binaire complet si tous les niveaux sont complètement remplis, sauf éventuellement le dernier niveau et le dernier niveau contient toutes les clés aussi gauche que possible.

Par exemple: Voici un arbre binaire complet:

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

Note: Ce qui suit est aussi un arbre binaire complet:

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

Disclaimer- La principale source de certaines définitions est wikipedia, toute suggestion pour améliorer ma réponse est la bienvenue.

Bien que ce message ait une réponse acceptée et qu’il soit bon, j’étais toujours dans la confusion et j’aimerais ajouter quelques précisions concernant la différence entre ces termes.

(1) ARBRE BINAIRE COMPLET - Un arbre binaire complet est un arbre binaire dans lequel chaque nœud autre que les feuilles a deux enfants.Il est également appeléarbre strictement binaire.

enter image description hereenter image description here

Les deux précédents sont des exemples d'arborescence complète ou strictement binaire.

(2) ARBRE BINAIRE COMPLET - / Maintenant, la définition d'arborescence binaire complète est assez ambiguë, elle indique: - Un arbre binaire complet est un arbre binaire dans lequel chaque niveau, sauf éventuellement le dernier, est complètement rempli, et tous les nœuds sont aussi loin que possible. Il peut avoir entre 1 et 2h nœuds, le plus à gauche possible, au dernier niveau h 

Remarquez les lignes en italique. 

L'ambiguïté réside dans les lignes en italiques, "sauf éventuellement le dernier", ce qui signifie que le dernier niveau peut également être complètement rempli, c'est-à-dire que cette exception ne doit pas toujours être satisfaite. Si l'exception ne tient pas, alors c'est exactement comme la deuxième image que j'ai postée, qui peut aussi s'appeler arbre binaire parfait . Ainsi, un arbre binaire parfait est aussi complet et complet mais pas l'inverse, ce qui sera précisé par une définition supplémentaire que je dois énoncer:

Arbre binaire presque complet - Lorsque l'exception de la définition d'arborescence binaire complète est valide, elle est appelée arborescence binaire presque complète ou arborescence binaire presque complète. Il s’agit simplement d’un type d’arbre binaire complet, mais une définition distincte est nécessaire pour le rendre plus non ambigu.

Ainsi, un arbre binaire presque complet ressemblera à ceci: vous pouvez voir dans l'image que les nœuds sont aussi à gauche que possible; il s'agit donc plutôt d'un sous-ensemble d'arborescence binaire complète. En d'autres termes, plus rigoureusement, chaque arbre binaire complet est un binaire complet arbre mais pas l'inverse. :

enter image description here

9
0decimal0

En conclusion des réponses ci-dessus, voici la différence exacte entre les arbres binaires complets/strictement, complets et parfaits

  1. Arbre complet/strictement binaire : - Tous les noeuds sauf les noeuds feuilles ont deux enfants

  2. Arbre binaire complet : - Tous les niveaux sauf le dernier sont complètement remplis et tous les nœuds sont justifiés à gauche.

  3. Arbre binaire parfait : - Tous les noeuds, à l'exception des noeuds feuilles, ont deux enfants et chaque niveau (le dernier niveau aussi) est complètement rempli.

5
Lotus

Pour commencer, il est très important de comprendre l’arbre binaire lui-même pour en comprendre les différents types.

Un arbre est un arbre binaire si et seulement si: -

- Il a un nœud racine, qui ne peut avoir aucun nœud enfant (0 childnodes, arbre NULL)

–Le nœud racine peut avoir 1 ou 2 nœuds enfants. Chacun de ces nœuds forme l’arbre abinaire

–Le nombre de nœuds enfants peut être 0, 1, 2 ....... pas plus de 2

–Il y a un chemin unique de la racine à chaque autre noeud

Exemple :

        X
      /    \
     X      X
          /   \
         X     X

En venant à vos terminologies demandées:

Un arbre binaire est un arbre binaire complet (de hauteur h, on prend le nœud racine comme 0) si et seulement si: -

Les niveaux 0 à h-1 représentent un arbre binaire complet de hauteur h-1

- Un ou plusieurs nœuds du niveau h-1 peuvent avoir 0 ou 1 nœud enfant.

Si j, k sont des noeuds du niveau h-1, alors j a plus de noeuds enfant que k si et seulement si j est à gauche de k, c’est-à-dire que le dernier niveau (h) peut être absent des noeuds feuille. être décalé à gauche

Exemple :

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

Un arbre binaire est un arbre strictement binaire si et seulement si: -

Chaque nœud a exactement deux nœuds enfants ou aucun nœud

Exemple :

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

Un arbre binaire est un arbre binaire complet si et seulement si: -

Chaque nœud non-feuille a exactement deux nœuds enfants

Tous les nœuds feuilles sont au même niveau

Exemple :

                          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 

Vous devriez également savoir ce qu'est un arbre binaire parfait?

Un arbre binaire est un arbre binaire parfait si et seulement si: -

- est un arbre binaire complet

- Tous les nœuds feuilles sont au même niveau

Exemple :

                          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 

Eh bien, je suis désolé de ne pas pouvoir publier d’images car je n’ai pas 10 ans de réputation . J'espère que cela vous aidera, vous et d’autres!

1
user2376267

Un arbre binaire complet est un arbre binaire complet mais l'inverse n'est pas possible, et si la profondeur du binaire est égale à n, le no. de nœuds dans l’arbre binaire complet est (2 ^ n-1). Il n’est pas nécessaire dans l’arbre binaire d’avoir deux enfants, mais dans l’ensemble binaire, chaque nœud n’a pas d’enfant ou deux.

Considérons un arbre binaire dont les nœuds sont dessinés de manière arborescente. Commencez à numéroter les nœuds de haut en bas et de gauche à droite. Un arbre complet a ces propriétés:

Si n a des enfants, tous les nœuds dont le nombre est inférieur à n ont deux enfants. 

Si n a un enfant, il doit s'agir de l'enfant de gauche et tous les nœuds inférieurs à n ont deux enfants. De plus, aucun noeud numéroté supérieur à n n'a d'enfants.

Si n n'a pas d'enfants, aucun noeud numéroté supérieur à n n'a d'enfants.

Un arbre binaire complet peut être utilisé pour représenter un segment de mémoire. Il peut être facilement représenté dans une mémoire contiguë sans espace (c’est-à-dire que tous les éléments du tableau sont utilisés, à l’exception de tout espace pouvant exister à la fin).

1
Craig Wright

Dans mon expérience limitée avec l'arbre binaire, je pense:

  1. Arbre strictement binaire : Tous les noeuds, à l'exception des noeuds feuilles, ont deux enfants ou un seul noeud racine.
  2. Arbre binaire complet : Un arbre binaire de H contenant strictement (ou exactement)2 ^ H -1 noeuds, il est clair que tous les niveaux ont le plus grand nombre de noeuds.
  3. Arbre binaire complet : C'est un arbre binaire dans lequel tous les niveaux, sauf éventuellement le dernier, sont complètement remplis et tous les nœuds sont aussi à gauche que possible.
1
BertKing

Considérons un arbre binaire de hauteur 'h'. Un arbre binaire est appelé un arbre binaire complet si toutes les feuilles sont présentes à la hauteur «h» ou «h-1» sans aucun chiffre manquant dans la séquence. 

                   1
                 /   \
              2       3
            /    \         
         4        5

C'est un arbre binaire complet. 

                   1
                 /   \
              2       3
            /        /    
         4         6    

Ce n'est pas un arbre binaire complet car le nœud du numéro 5 est manquant dans la séquence 

0