Question arbre "tas"
Étienne9
Messages postés
1090
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour à tous,
J'aimerai savoir si un arbre "tas" (un tas représenté en un arbre) pouvait être complet.
En gros, est-ce que [20,5,6] par exemple est un tas ?
Cordialement et merci beaucoup d'avance.
J'aimerai savoir si un arbre "tas" (un tas représenté en un arbre) pouvait être complet.
En gros, est-ce que [20,5,6] par exemple est un tas ?
Cordialement et merci beaucoup d'avance.
A voir également:
- Question arbre "tas"
- Arbre généalogique famille michelin - Télécharger - Généalogie
- Google tas - Accueil - Applications & Logiciels
- Arbre qui pousse dans le ventre ✓ - Forum Cinéma / Télé
- Créer arbre généalogique gratuit ✓ - Forum Loisirs / Divertissements
- Glandier arbre - Forum Logiciels
5 réponses
"J'aimerai savoir si un arbre "tas" (un tas représenté en un arbre) pouvait être complet."
Un tas est toujours un arbre binaire complet !
Et oui, [20,5,6] est un tas, car on a 20≥5 et 20≥6La confiance n'exclut pas le contrôle
Un tas est toujours un arbre binaire complet !
Et oui, [20,5,6] est un tas, car on a 20≥5 et 20≥6La confiance n'exclut pas le contrôle
En fait j'ai un projet à faire, et dans notre projet il est écrit : "La structure de tas est un objet tabulé qui peut être vu comme un arbre binaire presque complet."
Un arbre parfaitement complet aura toujours 2^h-1 valeurs (h est la hauteur de l'arbre, ici h=3) :
Un arbre presque complet aura un nombre quelconque de valeurs, mais seules les feuilles les plus à droites seront manquantes :
En général quand on dit arbre complet (sans préciser) on sous-entends arbre presque complet.
Ces arbres ne sont pas complets (ni parfaitement complet, ni presque complet) :
Une manière simple de savoir si un arbre est complet c'est de représenter le tableau associé, avec des arbres non-complets tu vas avoir des "trous" :
Parfaitement complet :
8 5 7 1 4 6 3
Un arbre presque complet aura un nombre quelconque de valeurs, mais seules les feuilles les plus à droites seront manquantes :
8 8 8 5 7 5 7 5 7 1 4 6 1 4 1
En général quand on dit arbre complet (sans préciser) on sous-entends arbre presque complet.
Ces arbres ne sont pas complets (ni parfaitement complet, ni presque complet) :
8 8 8 8 5 7 5 7 5 7 5 4 6 3 1 6 3 1 4 3 1 4
Une manière simple de savoir si un arbre est complet c'est de représenter le tableau associé, avec des arbres non-complets tu vas avoir des "trous" :
Parfaitement complet :
[8,5,7,1,4,6,3]Presque complets :
[8,5,7,1,4,6], [8,5,7,1,4], [8,5,7,1]Pas complet :
[8,5,7,_,4,6,3], [8,5,7,1,_,6,3], [8,5,7,1,4,_,3], [8,5,_,1,4]
Si je comprends bien, un tas c'est représenté soit par :
- un arbre complet
- un arbre parfait.
C'est cela ?
- un arbre complet
- un arbre parfait.
C'est cela ?
Parce qu'on a une question dans le projet :
- Quels sont les nombres minimum et maximum d'éléments dans un tas de hauteur h.
J'ai répondu à cela :
1 noeud = 2^0 -> hauteur 0
2 = 2^1 -> 1
3-> 1
4 = 2^2 -> 2
5 -> 2
....
8 = 2^3 -> 3
Le nombre maximum d'éléments dans un tas de hauteur h c'est lorsque l'arbre est complet et donc c'est juste avant un changement de hauteur.
Le nombre maximum d'éléments dans un tas de hauteur h est : 2^(h+1)-1 avec h la hauteur.
De la même manière, pour une hauteur de h, le nombre minimum d'éléments dans un tas c'est l'arbre qui correspond à la limite du passage à la hauteur suivante. Autrement dit, si on enlève un élément à cet arbre on descend une hauteur. Il s'agit donc de 2^h avec h qui est égal à la hauteur.
Est-ce correct ?
- Quels sont les nombres minimum et maximum d'éléments dans un tas de hauteur h.
J'ai répondu à cela :
1 noeud = 2^0 -> hauteur 0
2 = 2^1 -> 1
3-> 1
4 = 2^2 -> 2
5 -> 2
....
8 = 2^3 -> 3
Le nombre maximum d'éléments dans un tas de hauteur h c'est lorsque l'arbre est complet et donc c'est juste avant un changement de hauteur.
Le nombre maximum d'éléments dans un tas de hauteur h est : 2^(h+1)-1 avec h la hauteur.
De la même manière, pour une hauteur de h, le nombre minimum d'éléments dans un tas c'est l'arbre qui correspond à la limite du passage à la hauteur suivante. Autrement dit, si on enlève un élément à cet arbre on descend une hauteur. Il s'agit donc de 2^h avec h qui est égal à la hauteur.
Est-ce correct ?
Non, ce n'est pas correct, ne serait-ce que le début : 1 noeud ? hauteur 0, ça ne va pas, s'il y a un noeud alors il y a une hauteur, sinon quelle serait la hauteur d'un arbre vide ?
En plus sans le savoir je t'ai donné cette réponse tout à l'heure : "Un arbre parfaitement complet aura toujours 2^h-1 valeurs (h est la hauteur de l'arbre)"
En plus sans le savoir je t'ai donné cette réponse tout à l'heure : "Un arbre parfaitement complet aura toujours 2^h-1 valeurs (h est la hauteur de l'arbre)"
Merci beaucoup. J'ai une autre question, est-ce qu'un tableau trié à rebours est un tas ? Je dirai que oui car tous les fils sont toujours à droite aux positions 2i et 2i+1 et donc sont nécessairement inférieurs mais je ne suis pas sûr.
L'ordre dans un tas n'est pas nécessairement le plus grand à la racine, ça peut aussi être le plus petit, il faut juste que ce soit homogène. C'est à dire que soit on a toujours valeur(père)≥valeur(fils), soit on a toujours l'inverse c'est à dire valeur(père)≤valeur(fils). Donc tous les tableaux triés, que se soit par ordre croissant ou décroissant, sont des tas. Mais il y a aussi des tas qui ne sont pas triés.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Donc que ça soit un tableau trié ordre croissant ou décroissant, ça fait obligatoirement un tas dans tous les cas ?