La Création D'Arbres Binaires
Si je construire un arbre de recherche binaire en ajoutant les valeurs suivantes dans l'ordre:
10, 7, 16, 12, 5, 11, 2, 20, 1, 14
- Je obtenir un arbre de hauteur 5. Est-il une méthode (autre que l'essai et l'erreur) que je peux utiliser pour déterminer l'ordre des entiers qui permettrait de créer un arbre d'une hauteur de 4?
- Vous avez besoin de la d'Équilibrage Arbre Binaire
- double possible de l'Équilibrage d'un Arbre Binaire (AVL)
- Je ne cherche pas à construire l'équilibre de l'arbre en tant que tel, plus de déterminer un ordre des entiers qui permettrait d'obtenir une hauteur de 4.
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas réfléchi complètement, mais un moyen d'obtenir un arbre de telle profondeur est de trier vos éléments avant de les insérer: c'est à dire le tri insertion de
N
éléments dans un arbre de recherche binaire va produire un arbre de profondeurN
.Vous pourrait être en mesure de:
K=4
pour produire un arbre de profondeurK
(Bien sûr, choisir les
K
éléments pour commencer et une stratégie pour insérer le reste des éléments est la partie la plus délicate -- mais peut-être que ce serait un début?)Modifier: je pense que la solution générale est possible, en supposant
K
est assez grand. Comment à ce sujet:10, 7, 16, 12, 5, 11, 2, 20, 1, 14
1, 2, 5, 7, 10, 11, 12, 14, 16, 20
Par exemple, après le tri et l'insertion de la dernière 4:
...puis après l'insertion de la dernière 3:
...puis après les 2 derniers:
...et enfin, après l'insertion du dernier élément:
...vous êtes de gauche avec un TBS de hauteur K=4.
Noter que cette approche ne fonctionne que lorsque
K
est assez grand, plus précisément, lorsqueK(K+1)/2 >= N
.K
est assez grand. J'ai mis à jour la réponse.Oui, vous pouvez tout d'abord construire un parfait équilibre de l'arbre et vous pouvez alors la sortie de l'nœuds d'une manière qui a des nœuds parents d'être imprimé avant que leurs enfants.
Pour créer un parfait équilibre de l'arbre, juste trier les nombres et l'utilisation récursive de divisions binaires pour construire un arbre.
Par exemple, dans votre cas, nous permettrait de trier les nombres
et ensuite construire un équilibre de l'arbre à partir d'eux (prendre le nombre moyen comme la racine et répéter ce processus de manière récursive)
Nous pouvons maintenant utiliser une précommande de la traversée ou en largeur d'abord la traversée d'imprimer les nœuds dans l'ordre que vous voulez (tant que nous avons de sortie nœuds parents devant les enfants, nous allons être très bien).