Creer un arbre de recherche en langage C

Free spirit -  
Arya Dröttningu Messages postés 581 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

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);
  }










A voir également:

2 réponses

Arya Dröttningu Messages postés 581 Date d'inscription   Statut Membre Dernière intervention   157
 
Bonjour,
je ne sais pas si ça vient de là mais l'arbre "racine" n'est jamais alloué
0
Arya Dröttningu Messages postés 581 Date d'inscription   Statut Membre Dernière intervention   157
 
tu peux aller faire un tour sur ce site c'est assez bien expliqué : https://rperrot.developpez.com/articles/algo/structures/arbres/
0