Exemple Arbre et temps d'exécution
#include <iostream>
#include <time.h>
clock_t tempsDep, tempsFin;
using namespace std;
typedef struct StrArbre {
char Etiquette;
struct StrArbre *FilsG, *FilsD;
} Arbre;
Arbre *TeteArbre;
Arbre *CreerNoeud()
{
char Val;
Arbre *p;
bool EstFeuille;
cout<<"Lettre de l'etiquette du noeud : ";
cin>>Val;
p = new Arbre;
cout<<"1 si ce noeaud est une feuille, 0 sinon : ";
cin>>EstFeuille;
p->Etiquette = Val;
if(EstFeuille)
{
p->FilsG = NULL;
p->FilsD = NULL;
}
else
{
p->FilsG = CreerNoeud();
p->FilsD = CreerNoeud();
}
return p;
}
void ParcoursArbre(Arbre *p, char ModeParc)
{
if(p!=NULL)
{
if (ModeParc=='r') // Préfixé
cout << "Mon etiquette est : "<<p->Etiquette<<endl;
ParcoursArbre(p->FilsG, ModeParc);
if (ModeParc=='i') // Infixé
cout << "Mon etiquette est : "<<p->Etiquette<<endl;
ParcoursArbre(p->FilsD, ModeParc);
if (ModeParc=='p') // Postfixé
cout << "Mon etiquette est : "<<p->Etiquette<<endl;
}
}
int main()
{
time(&tempsDep);
TeteArbre = CreerNoeud();
char choix;
do
{
cout << "p : postfixe"<<endl<<"i : infixe"<<endl<<"r : prefixe"<<endl<<"s : sortir"<<endl;
cout << "Votre choix : ";
cin >> choix;
if (choix=='p' || choix=='i' || choix=='r')
ParcoursArbre(TeteArbre, choix);
} while (choix != 's');
time(&tempsFin);
double TempsDif=difftime(tempsFin, tempsDep);
cout<<"Temps d'exécution est : "<<TempsDif<<" secondes"<<endl;
return 0;
}