Arbre général à la complexité binaire de conversion d'arbre
-
13-10-2019 - |
Question
Quelle est la complexité du temps et l'espace de conversion d'un arbre général à un binaire?
Merci
La solution
Je ne sais pas ce que vous entendez par « arbre général. » Quelle que soit la complexité de tome d'insertion dans un arbre binaire équilibré est O(log n)
, où n
est le nombre d'éléments actuellement dans l'arbre, de sorte que la construction d'un arbre complet, d'une liste d'articles serait O(n log n)
, où n
est le nombre total d'éléments à insérer.
Vous aurez également inclure le temps nécessaire pour obtenir des éléments de l'autre arbre. Cette fois-là dépend du type d'arbre que vous avez. Par souci d'argument je suppose que vous pouvez le parcourir dans le temps linéaire, afin d'obtenir des données de l'arbre existant est O(n)
.
Ce qui rend votre complexité totale O(n + (n log n))
.
L'espace supplémentaire requis sera n * sizeof(node)
, où sizeof(node)
est la taille de votre noeud d'arbre binaire. Notez que, si les éléments sont stockés dans les noeuds « arbre général » sont des pointeurs, vous ne devrez pas payer le coût de la copie des objets réels - juste la tête du nœud d'arbre binaire, qui est généralement trois pointeurs: le données, le lien de l'enfant à gauche, et le lien de l'enfant droit.