Bsoir
exploite ceci que Lami20j m'a balancé
#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;
int n;
printf ("Numéro [100 pour terminer] ? ");
scanf ("%d", &n);
while (n != 100) {
CreerArbre (&racine, n);
printf ("Numéro [100 pour terminer] ? ");
scanf ("%d", &n);
}
AfficherPrefixe (racine);
puts ("");
AfficherInfixe (racine);
puts ("");
AfficherPostfixe (racine);
puts ("");
return 0;
}
void CreerArbre (Noeud ** racine, char c)
{
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, c);
else if (n > (*racine)->nb)
CreerArbre (&(*racine)->droite, c);
}
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);
}
}
Bsoir