Langage C

Bonjour,
comment supprimer un nombre dans un arbre binaire de recherche grace à une procédure avec comme argument arbre a,int v
arbre est type

2 réponses

  1. aidez moi svp
    1. Contributeur
      on veux bien t'aider, mais soit plus précis : donne ton arbre au moins, et ce que tu veux faire exactement.
  2. la procédure insérer me permet d'avoir un arbre binaire de recherche et maintenant j'ai besoin d'une autre procédure qui me permettra de supprimer une valeur dans l'arbre cette valeur étant donné par l'utilisateur
    Voici le code

    #include <stdio.h>
    #include <stdlib.h>

    struct noeud{
    int valeur;
    struct noeud* fg;
    struct noeud* fd;
    };
    typedef struct noeud* arbre;

    void Inserer(arbre *A,int v)
    {
    if(*A==NULL)
    {
    *A=(arbre)malloc(sizeof (struct noeud));
    (*A)->valeur=v;
    (*A)->fg=NULL;
    (*A)->fd=NULL;
    }
    else if(v<=(*A)->valeur)
    Inserer(&(*A)->fg,v);
    else
    Inserer(&(*A)->fd,v);
    }

    void parcoursPrefixe(arbre A)//affiche les valeurs de l'arbre
    {
    if(A!=NULL)
    {
    printf("%d ",(*A).valeur);
    parcoursPrefixe((*A).fg);
    parcoursPrefixe((*A).fd);
    }
    }

    int main()
    {
    int n,i,m,v,k,p;
    arbre A=NULL;
    printf("saisir le nombre d'element de l'arbre\n");
    scanf("%d",&n);
    fflush(stdin);
    for(i=1;i<=n;i++)
    {
    printf("donner le %d element ",i);
    scanf("%d",&m);
    Inserer(&A,m);
    }

    parcoursPrefixe(A);
    printf("entrer le nombre a supprimer");
    scanf("%d",&p);
    supprimer(&A,p);//g besoin de cette procédure pour pouvoir supprimer
    parcoursPrefixe(A);
    getch ();
    return 0;
    }

    aprés avoir supprimer j'affiche l'arbre pour voir si le nombre a été bien supprimer
    j'espère avoir été claire
    1. Contributeur
      pour supprimer, il faut recoller les noeud à gauche et à droite, et libérer la mémoire. La première étape est bien entendu de parcourir l'arbre jusqu'à la valeur que tu cherches.
      comme tu n'as pas de point d'entré fixe, avant il faut "rembobiner" ta structure, c'est à dire aller tout à gauche, puis parcourir vers la droite et s'arreter lorsque tu as la valeur souhaitée.

      Voilà l'algorithme, à toi d'écrire les fonctions. Redemande si tu buttes.