Je ne sais pas vraiment ce que tu entends par une liste des noeuds traversés. Veux-tu dire stocker tous les éléments parcourus ? Dans ce cas, la solution est mauvaise pour des arbres binaires, car elle est linéaire en espace mémoire, ce qui, pour une fonction de ce type, n'est pas acceptable. On n'imagine pas avoir à copier une structure de données potentiellement très importante. Concernant les petits tests des AVL, cela voudrait dire que tu aurais environ 200 Mo de données, plus 200 Mo copiés à cause d'une fonction de visite mal programmée !
Quand je dis pile, je veux dire une pile contenant des noeuds, mais exactement comme le ferait un appel récursif. Pour un arbre binaire AVL, on devrait stocker une structure logarithmique, chose qui est déjà beaucoup plus acceptable en termes de consommation mémoire, surtout lorsque l'on possède une borne supérieure de la hauteur d'un AVL de n noeuds.
Pour revenir aux éventuelles fonctionnalités de la bibliothèque, coder de vrais algorithmes de tri, efficaces, ne serait pas une option également. On peut ainsi penser à un vrai quicksort, un vrai mergesort, shellsort pour les petits vecteurs et même un tri compteur pour les vecteurs d'entiers.
Partager