Comment faire ce test?

onlytime Messages postés 473 Statut Membre -  
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonsoir ,
je voudrais tester une structure de données(les arbres) je voudrais savoir l'ajout d'un ensemble de données dans un arbre combien de temps pourrait il prendre, j'ai utilisé la méthode manuelle avec 2000 donnée a chaque je fais appel a la procédure ajouter avec un élément x, j'avoue que le temps d'exécution n'est pas trés différents avec 100 200 ...2000 alors je crois qu'il me faut dans les 10 000 ou plus mais je sais pas comment faire entrer ces éléments vous n'auriez pas d'idées?
Cordialement
A voir également:

1 réponse

lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Tu peux faire une boucle
#include<stdio.h>
#include<stdlib.h>

typedef struct N_
{
  int nb;
  struct N_*gauche;
  struct N_*droite;
} Noeud;

void CreerArbre (Noeud ** racine, int n);
void Traiter (Noeud * racine);
void AfficherPrefixe (Noeud * racine);
void AfficherPostfixe (Noeud * racine);
void AfficherInfixe (Noeud * racine);

Noeud *alloc ();

int main ()
{
  Noeud *racine;

  racine = NULL;
  unsigned int n=0,NB;

  printf ("Nombre de données à insérer : ");
  scanf ("%d", &NB);
  while (n <=  NB) {
    CreerArbre (&racine, n);
    ++n;
  }
  AfficherPrefixe (racine);
  puts ("");
  AfficherInfixe (racine);
  puts ("");
  AfficherPostfixe (racine);
  puts ("");
  return 0;
}

void CreerArbre (Noeud ** racine, int n)
{
  Noeud *nouveau;

  nouveau = alloc ();

  if (*racine == NULL) {
    nouveau->nb = n;
    nouveau->gauche = NULL;
    nouveau->droite = NULL;
    *racine = nouveau;
  }
  else if (n < (*racine)->nb)
    CreerArbre (&(*racine)->gauche, n);
  else if (n > (*racine)->nb)
    CreerArbre (&(*racine)->droite, n);
}


Noeud *alloc ()
{
  Noeud *noeud;

  noeud = (Noeud *) malloc (sizeof (Noeud));
  return noeud;
}

void Traiter (Noeud * racine)
{
  printf ("%d (%p) ; ", racine->nb, racine);
}

void AfficherPrefixe (Noeud * racine)
{
  if (racine != NULL) {
    Traiter (racine);
    AfficherPrefixe (racine->gauche);
    AfficherPrefixe (racine->droite);
  }
}
void AfficherPostfixe (Noeud * racine)
{
  if (racine != NULL) {
    AfficherPostfixe (racine->gauche);
    AfficherPostfixe (racine->droite);
    Traiter (racine);
  }
}


void AfficherInfixe (Noeud * racine)
{
  if (racine != NULL) {
    AfficherInfixe (racine->gauche);
    Traiter (racine);
    AfficherInfixe (racine->droite);
  }
}
0