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;
}

Modifié le: Saturday 13 February 2021, 14:08