Question

Quelle est la complexité du temps et l'espace de conversion d'un arbre général à un binaire?

Merci

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top