#include #include typedef struct noeud { int valeur; struct noeud* gauche; struct noeud* droit; } noeud; noeud* nouvel_arbre (int valeur) { noeud* n; n = (noeud*)malloc(sizeof(noeud)); n->valeur = valeur; n->gauche = NULL; n->droit = NULL; return n; } void __affiche (noeud* arbre, int profondeur, int flag) { int i; if (flag) { for (i = 0; i < profondeur; i++) printf ("\t"); } if (arbre == NULL) { printf ("-"); } else { printf ("%d\t", arbre->valeur); __affiche (arbre->gauche, profondeur+1, 0); __affiche (arbre->droit, profondeur+1, 1); } if (! flag) { puts (""); } } void affiche (noeud* arbre) { __affiche (arbre, 0, 0); } noeud* insere (int valeur, noeud* arbre) { return arbre; } noeud* recherche (int valeur, noeud* arbre) { return arbre; } noeud* supprime (int valeur, noeud* arbre) { return arbre; } int main() { int v, action; noeud* arbre = NULL; while (1) { puts ("Choisissez ce que vous voulez faire :"); puts (" 1 - Insérer une valeur"); puts (" 2 - Supprimer une valeur"); puts (" 3 - Rechercher une valeur"); puts (" 4 - Afficher l'arbre"); puts (" 9 - Quitter le jeu"); scanf ("%d", &action); if (action == 9) { break; } switch (action) { case 1: printf ("Nouvelle valeur : "); scanf ("%d",&v); arbre = insere (v, arbre); break; case 2: printf ("Valeur à supprimer : "); scanf ("%d",&v); arbre = supprime (v, arbre); break; case 3: printf ("Valeur à rechercher : "); scanf ("%d",&v); if (recherche (v, arbre) != NULL) { printf ("La valeur %d a été trouvée dans l'arbre\n", v); } else { printf ("La valeur %d n'a pas été trouvée dans l'arbre\n", v); } break; case 4: affiche (arbre); break; } puts ("\n************\n"); } return 0; }