Posez votre question Signaler

Creer un arbre de recherche en langage C

Free spirit - Dernière réponse le 13 nov. 2010 à 12:01
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);
  }







Lire la suite 

Creer un arbre de recherche en langage C »

2 réponses
Réponse
+0
moins plus
Bonjour,
je ne sais pas si ça vient de là mais l'arbre "racine" n'est jamais alloué
Ajouter un commentaire
Réponse
+0
moins plus
tu peux aller faire un tour sur ce site c'est assez bien expliqué : http://rperrot.developpez.com/articles/algo/structures/arbres/
Ajouter un commentaire
Ce document intitulé « creer un arbre de recherche en langage C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?