// Permet de faire une insertion en fin de liste chainée. ptr_liste insertion(char mot_regle[30][5], ptr_liste p, long nb_mot) { ptr_liste courant, nouv; int i=0, j=0; // On fait une boucle pour insérer tous les mots d'une règle dans une liste chainée. for (i=0; i<nb_mot; i++) { // On prépare le nouveau maillon à insérer nouv = (ptr_liste) malloc (sizeof(liste)); for(j=0; j<5; j++) { nouv->mot[j] = mot_regle[i][j]; } nouv->suivant = NULL; // Si la chaine est vide, la tête de la liste sera le maillon nouv... if (p == NULL) { p = nouv; } // ... sinon, on va à la fin de la liste chainée et on insert en dernier. else { courant = p; do { // Il semblerait que se soit là que ca coince : courant = courant->suivant; }while(courant != NULL); courant = nouv; } } return p; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question// Permet de faire une insertion en fin de liste chainée pour // insérer tous les mots d'une règle dans une liste chainée. void insertion(char mot_regle[30][5], ptr_liste *p, long nb_mot) { ptr_liste *courant, *nouv; int i=0; // On fait une boucle pour insérer tous les mots d'une règle dans une liste chainée. for (i=0; i<nb_mot; i++) { courant = (ptr_liste*) malloc (sizeof(liste)); // On prépare le nouveau maillon à insérer nouv = (ptr_liste*) malloc (sizeof(liste)); strcpy((*nouv)->mot, mot_regle[i]); (*nouv)->suivant = NULL; // Si la chaine est vide, la tête de la liste sera le maillon nouv... if (p == NULL) { p = nouv; } // ... sinon, on va à la fin de la liste chainée et on insert en dernier. else { courant = p; do { // Il semblerait que se soit là que ca coince : courant = (*courant)->suivant; }while(courant != NULL); courant = nouv; } } }