Bon, on ne donne pas des codes tout fait ici. Il faut participer. Je t'ai mis un schéma. Tu ne dit même pas s'il correspond à ton problème !?!
Sais-tu faire des fonctions ? Car il te faut des fonctions pour : créer tes listes, ajouter des éléments à tes listes, afficher tes listes si tu veux en vérifier le bon fonctionnement...
Et aussi, n'oublie pas que scanf attend l'adresse de la variable à modifier !
Fais-tu un copier-coller de ton message au sujet du bouton code? Tu ferais un bon modérateur.
Dans ces exemples, si je comprend bien, la liste dite "verticale" est la liste primaire.
Elle contient un élément qui est un pointeur ou tête de liste pour chaque liste dite "horizontale".
Au fur et à mesure qu'on crée la liste verticale, il ne faut pas oublier d'initialiser le pointeur vers le premier élément de chaque liste horizontale, s'il y en a un, sinon, c'est le pointeur NULL.
Chacun des deux types de liste comporte dans chaque "noeud" ou élément un pointeur vers l'élément suivant de cette même liste.
Il existe un pointeur vers le premier élément de la liste primaire qu'il ne faut pas oublier d'initialiser.
On peut écrire des fonctions de gestion de ces listes qui seront très semblables, voire identiques dans certains cas.
Par exemple,
+ créer la liste (avec seulement la tête de liste)
+ ajouter un élément, soit au début, au milieu, ou à la fin.
+ éliminer un élément.
+ parcourir la liste
+ afficher la liste si on peut
+ etc...
On peut n'écrire qu'une seule fonction de réservation de mémoire avec malloc.
Je vous joint ce que j'ai déjà écrit, qui me semble utile pour les deux types de liste:
'name' est le nom de la fonction appelante, et 'size' est la quantité de mémoire requise.
-
// Alouer l'espace pour un nouveau noeud.
void *getNode(char *name, int size) {
void *node;
if((node = malloc(size)) == NULL) {
perror(name);
printf("Dimension: %d\n", size);
exit(2);
}
return(node);
}
PS perror() requière le header errno.h et malloc() et exit() requièrent le header stdlib.h
- Edité par PierrotLeFou 19 septembre 2020 à 19:03:41
Le Tout est souvent plus grand que la somme de ses parties.
Liste verticale et horizontale
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.