• # liste chainé bon exo

    Posté par . En réponse au message Affichage listes chainées en C. Évalué à 1.

    Les listes chainé sont des bons exo pour manipuler les pointeurs
    Il parait que le C est un langage de bas niveaux, mais on peut quand même avoir une approche objet ou au moins structuré

    dans ta fonction main évite de manipuler directement les éléments de ta liste utilise des fonction comme addTail,AddHeader, getNext, delete ...
    considère tout les champs de la structure comme priver au moins en ecriture

    j'aime bien utiliser deux structures pour ma liste
    * la liste
    * un élément de la liste

    typedef struct _item{
     void * data;
     struct *_item next;
    }item
    typedef struct{
     int nbItems;
     items *First; 
    }List;
    List * CreateList(){
     List *l = malloc(sizeof(List));
     l->nbItems = 0;
     l-> First = NULL;
     return l;
    }
    Item * CreateItem(void *MyData ){
     Item *p = malloc(sizeof(Item));
     p->next = null;
     p->data = myData; 
    }
    void addTail(List *MyList , void *MyData){
     if (! MyList->First){ //premier ajout 
     MyList->First = CretateItem(MyData);
     }
     else{
     item *end=MyList->First;
     while(end->Next) end = end->Next;
     end->Next = CreateItem(MyData);
     } 
     MyList->nbItem++;
    }
    Item *GetNext(Item *p){
     if(p) return p->next;
     return null
    }
    void main (){
     List *l = CreateList();
    //ajout des donnés 
    addTail(l,data); 
     for(item *i=getNext(L->First);i;i=getNext(i))
     Show(i);
    }