je viens d'écrire un programme pour la création d'un arbre binaire de recherche, mais l'exécution ne fonctionne pas totalement, le programme fait un bug des que l'exécution de la fonction insert, je vous demande de m'aider a trouver l'erreur(le programme est compilé) voici mon code:
#include <stdlib.h>
#include <stdio.h>
typedef struct no*arbre;
typedef struct no
{
arbre droit;
arbre gauche;
int etiqu;
}noeud;
int recherche(arbre a, arbre *prd, int val)
{ if (a==NULL)
return (0);
else
{ if (a->etiqu==val) return (1);
else { *prd=a;
if (a->etiqu==val)
return (recherche(a->gauche, prd, val));
else
return (recherche(a->droit, prd, val));
}
}
}
void insert(arbre *racine, int val)
{ arbre prd=NULL; arbre a;
if (recherche(*racine, &prd, val)==1) printf ("existe deja");
else { a=(arbre)malloc(sizeof(noeud));
a->etiqu=val;
a->droit=NULL;
a->gauche=NULL;
if(prd!=NULL)
if(val<prd->etiqu) prd->gauche=a;
else prd->droit=a;
else *racine=a;
}
}
int main()
{int n; arbre *racine; int i;
racine=NULL;
while (i!=0)
{
printf("donnez la valeur a inserer");
scanf("%d", &n);
insert(racine, n);
printf("si vous voulez arreter l'ajout d'elements dans l'arbre tapez 1");
}
return (3);
}
