Envoyé par
gmalonga
Et je voudrais passer d'un arbre à un tableau afin de pouvoir le trier et afficher les temps d'exécution par ordre croissant.
J'ai pensé à l'idée à laquelle à chaque fois que j'alloue un nœud, je l'insère dans mon tableau, mais pour cela il me faudrait un indice en variable globale, car toutes mes fonctions sont récursives ...
Merci d'avance.
Pas nécessairement
1) tu crée une structure qui représente un tableau (extensible, à tant faire) de (pointeurs de) noeuds
1 2 3 4 5
| struct TableauNoeuds {
int capacite;
int nb_noeuds;
struct Noeud *data;
} |
2) tu écris une fonction qui ajoute un (pointeur de) noeud dans le tableau, en le réallouant pour agrandir sa capacité si besoin
void ajouter_noeud(struct TableauNoeuds & adr_tableau, struct Noeud * pNoeud);
3) Tu définis une fonction - récursive celle-ci - qui ajoute un noeud et ses sucesseurs dans un tableau
void ajouter_noeud_et_fils(struct TableauNoeuds & adr_tableau, struct Noeud * pNoeud);
4) Initialiser le tableau, appeler la fonction sur la racine, trier, exploiter le résultat, fun + profit
Partager