C : creation d'un arbre
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

C : creation d'un arbre



  1. #1
    invite2bb16845

    C : creation d'un arbre


    ------

    Salut,

    Pourriez vous m'expliquez pourquoi on utilise un double pointeur lors de l'ajout d'un élément dans un arbre et si possible de l'expliquer quand est ce qu'on utilise double pointeur et comment acceder au contenu de l'element pointé

    Merci

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct arbre arbre;
    struct arbre{
        int x;
        struct arbre *fg,*fd;
    };
    
    
    void ajout(arbre **r,int n)
    {
        if(*r==NULL)
        {
            arbre *temp = malloc(sizeof(arbre));
            temp->x=n;
            temp->fg=NULL;
            temp->fd=NULL;
            *r=temp;
        }
        else
        {
            if((*r)->x>n)
            {
                ajout(&(*r)->fg,n);
            }
            else
            {
                ajout(&(*r)->fd,n);
            }
    
        }
    }
    
    
    void affiPre(arbre *r)
    {
        if(r!=NULL)
        {
            printf("%d",r->x);
            affiPre(r->fg);
            affiPre(r->fd);
        }
    }
    
    
    void remplir(arbre **r,int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            ajout(&(*r),i);
        }
    }
    
    
    main()
    {
    
    arbre *r=NULL;
    remplir(&r,10);
    affiPre(r);
    
    
    }

    -----

  2. #2
    Jack
    Modérateur

    Re : C : creation d'un arbre

    Bonjour.

    pourquoi cette question, ce n'est pas ton code?

  3. #3
    inviteb9f49292

    Re : C : creation d'un arbre

    La base du C: un argument d'une fonction n'est jamais modifié par une fonction puisque copié au moment de l'appel, donc si tu veux modifier un argument et que cette modification passe la fonction, il faut utiliser l'adresse (qui elle sera copiée et non modifiée), au travers d'un pointeur. Maintenant si ton argument est un pointeur qui doit pouvoir être modifié dans la fonction (changement de tête de liste, allocation...), il faut donc utiliser le même mécanisme, et passer l'adresse du pointeur modifiable, donc un pointeur de pointeur...

  4. #4
    invite2bb16845

    Re : C : creation d'un arbre

    @lou_ibmix_xi

    Grand merci à vous

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Arbre creux ou arbre plein ?
    Par inviteb12541d5 dans le forum Physique
    Réponses: 10
    Dernier message: 17/01/2014, 15h58
  2. Création d'un forum : quel outil de création gratuit choisir ?
    Par invite845dec12 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 25/06/2013, 19h09
  3. Réponses: 9
    Dernier message: 07/05/2013, 13h54