bonjour ;
j'ai implanté une fonction qui ajoute une arbre mais je dois maintenir l'ordre et l'équilibre de l'arbre (là je n'arrive pas maintenir à l'ordre et l'équilibre) voici la fonction :

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
typedef struct noeud
{
	int cle; // Clé de recherche. C'est ce nombre que vous devez comparer pour savoir s'il faut descendre à droite ou à gauche.
	struct noeud *gauche;
	struct noeud *droite;
} Noeud;
typedef Noeud *Arbre;
 
 
Arbre ajoutArbre(Arbre a, int cle, double info)
{
  if(!a)
  {
   Noeud*g=malloc(sizeof(Noeud));
   g->cle=cle;
   g->gauche=g->droite=0;
   return g;
  }
  if(cle==a->cle) return a;
  if(cle<a->cle) a->gauche=ajoutArbre( a->gauche, cle, info);
  if(cle>a->cle) a->droite=ajoutArbre( a->droite, cle, info);
  return a;
}
pouvez vous m'aider pour faire les zigzigs et zigzags pour pouvoir maintenir l'ordre et l'équilibre de l'arbre ?
merci en avance