- if (p == NULL)
- {p = (N_AVL *)malloc(sizeof(N_AVL));
- if (p==NULL) exit(-1);
- p->cle = x;p->gauche = NULL;p->droit = NULL;
- p->deseq = 0; *verif = 1;
- }
- else if (x == p->cle)
- printf("Insertion impossible ! %d est deja dans l'arbre\n",x);
-
- else if (x < p->cle)
- {p->gauche = insere(p->gauche,x,verif);
- if (*verif) {/* on a insere a gauche */
- switch (p->deseq)
- {case -1 : p->deseq = 0; *verif = 0; break;
- case 0 : p->deseq = 1; break;
- case 1 : // reequilibrage
- if (p->gauche->deseq==1)
- {// rotation droite
- printf("RD pour %6d\n",p->cle);
- p=RD(p);
- p->deseq = p->droit->deseq = 0;
- *verif = 0;
- }
- else {/* rotation gauche droite */
- printf("RGD pour %6d\n",p->cle);
- p=RGD(p);
- switch (p->deseq)
- {case -1 : p->droit->deseq=0;
- p->gauche->deseq=1;
- break;
- case 0 : p->droit->deseq=0;
- p->gauche->deseq=0;
- break;
- case 1 : p->droit->deseq=-1;
- p->gauche->deseq=0;
- }
- p->deseq=0; *verif=0;
- }
- break;
+ if (p == NULL) {
+ p = (N_AVL *) malloc(sizeof(N_AVL));
+ if (p == NULL)
+ exit(-1);
+ p->cle = x;
+ p->gauche = NULL;
+ p->droit = NULL;
+ p->deseq = 0;
+ *verif = 1;
+ } else if (x == p->cle)
+ printf("Insertion impossible ! %d est deja dans l'arbre\n", x);
+
+ else if (x < p->cle) {
+ p->gauche = insere(p->gauche, x, verif);
+ if (*verif) { /* on a insere a gauche */
+ switch (p->deseq) {
+ case -1:
+ p->deseq = 0;
+ *verif = 0;
+ break;
+ case 0:
+ p->deseq = 1;
+ break;
+ case 1: // reequilibrage
+ if (p->gauche->deseq == 1) { // rotation droite
+ printf("RD pour %6d\n", p->cle);
+ p = RD(p);
+ p->deseq = p->droit->deseq = 0;
+ *verif = 0;
+ } else { /* rotation gauche droite */
+ printf("RGD pour %6d\n", p->cle);
+ p = RGD(p);
+ switch (p->deseq) {
+ case -1:
+ p->droit->deseq = 0;
+ p->gauche->deseq = 1;
+ break;
+ case 0:
+ p->droit->deseq = 0;
+ p->gauche->deseq = 0;
+ break;
+ case 1:
+ p->droit->deseq = -1;
+ p->gauche->deseq = 0;