probleme des arbres binaires

je pense que mon programme est mal fonctionné


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
typedef int type_val;
typedef struct noeud
                  {
                  type_val T;
                  struct noeud *fg;
                  struct noeud *fd;
                  }racine;
typedef racine *arbre;
/*********************fonction ecrire**********************/
void ecrire(type_val x)
{
 printf("%d\n",x);
}
/********************fonction lire***************************/
void lire(type_val *x)
{
 scanf("%d",&x);
}
/*******************Fonction remplir****************/
 
arbre remplir(type_val V,arbre l)
{
if(l==NULL)
  {
  l=(arbre)malloc(sizeof(racine));
  l->T=V;
  l->fg =NULL;
  l->fd =NULL;
 
  }
else if(l->T<V)
     l->fd=remplir(V,l->fd);
else l->fg=remplir(V,l->fg);
return (l) ;
}
void afficher(arbre A,int niveau)
 { int i;
   if(A!=NULL)
        { for(i=0;i<niveau;i++)
               printf("---");
               ecrire(A->T);
               afficher(A->fg,niveau+1);
               afficher(A->fd,niveau+1);
 
        }
 }
 
type_val suprimin(arbre *a)
{ arbre aux;
type_val element;
 if (a!=NULL)
 {
  arbre aux;
              if ((*a)->fg==NULL)
                { element=(*a)->T;
 
                 aux=(*a);
                 (*a)=(*a)->fd;
                 free((*a)); }
              else
                  element=suprimin(&(*a)->fg);
}
return (element);}
/*********************menue*************************************/
char menue()
{
char ch;
//clrscr();
printf("*****************Menu********************\n\n");
printf("-Afficher........................ a\n");
printf("-Supprimer.......................  s\n");
printf("-Inserer.........................  i\n");
printf("-Quitter.........................  q\n\n");
printf("             votre choix       :");
fflush(stdin);
ch=getchar();
 
return(ch);
}
/****************Fonction principale**************************/
 
 
int main()
{char c;
arbre l=NULL;
type_val x ;
while ((c==menue())!='q')
 {
     switch(c)
     {
      case'i': printf("la valeur a inserer") ;
                 lire(&x);
                 l=remplir(x,l);break ;
      case's': printf("la valeur %d a ete suprimer\n",suprimin(&l));break;
      case'a': afficher(l,0);break;
      default    :printf("verifier le caractaire que vous avez tapez");  break;
     }
 
 
 }
 
/*printf("entrer la valeur a inserer:  ");
err=scanf("%d",&V);
if(err<=0) break;
l=remplir(V,l);
}
while(1);
 afficher(l,0);*/
 fflush(stdin);
 getchar();
return(0) ;
}

vous pouvez m'aider svp ..??