Liste monodirectionnelle débutante

Résolu/Fermé
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018 - Modifié le 28 avril 2018 à 14:28
yg_be Messages postés 23268 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 octobre 2024 - 28 avril 2018 à 19:28
Bonjour tout le monde je suis une débutante en programmation et aujourd'hui j'essaie de comprendre la notion de liste monodirectionnelle . Alors je suis en train de lire le cours et y ' a deux trois points qui sont un peu flous. Du coup je sollicite vivement votre aide svp et merci d'avance.
Alors c'est un simple exercice d'application et la solution du prof et je vais mettre en commentaire les 2 - 3 lignes que je ne comprend pas.
En fait j'avais raté ce cours c'est pour cela.
alors l'énoncé de l'exercice:
Ecrire un module qui permet de créer une liste monodirectionnelle d’étudiants. Les étudiants de la liste seront saisis en fonction des besoins de l’utilisateur. L’étudiant est caractérisé par son matricule, son nom, son prénom, sa classe et sa moyenne.

Type LMEtudiant = ↑structure
DEBUT
Mat : chaine
nom,prenom ,classe : chaine
moy : reel
Suiv : LMEtudiant
FIN
Var Tete : LMEtudiant
Procédure CréationListeMono (Résultat Tete : LMEtudiant)/* Pourquoi le résultat est tete ?*/
Var pp, pc : LMEtudiant
Var reponse : caractère
DEBUT
Tete ← NIL
REPETER
Ecrire « Voulez vous ajouter un étudiant O/N ? »
lire reponse
Si( reponse = ‘O’ ou reponse= ‘O’) alors
ALLOUER (pc))/* On alloue de la memoire pourpermettre la creation de la liste ?*/
Ecrire « Entrer le n. de matricule de l’étudiant »
lire pc↑.mat
Ecrire « Entrer le nom et prenom de l’étudiant »
lire pc↑.nom, pc↑.prenom
Ecrire « Entrer la classe »
lire pc↑.classe
Repeter
Ecrire « Entrer la moyenne »
lire pc↑.moy
Jusqu’à (pc↑.moy>=o et pc↑.moy<= 20)
Pc↑.suiv ← NIL /* Pourquoi on affecte à suiv la valeur Nil ou c 'est pour l'initialisation ?*/
Si (Tete = NIL) Alors/* commençant de cette ligne*/
Tete ←pc
pp ← pc
SINON
Pp↑.suiv ← pc
pp ← pc/* jusqu'ici je ne comprends pas , besoin d'eclaircissement svp .et merci*/
FINSI



Merci d'avoir pris le temps de m'aider .

1 réponse

yg_be Messages postés 23268 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 octobre 2024 Ambassadeur 1 544
Modifié le 28 avril 2018 à 15:58
bonjour,
Pourquoi le résultat est tete : parce que le résultat de la création est le premier élément de la liste.
On alloue de la mémoire pour permettre la creation d'un élément de la liste
On affecte à suiv la valeur Nil parce qu'il n'y a rien après l’élément en cours de création
Ce que tu ne comprends pas à la fin, c'est le plus important:
si la liste est vide (tête vide), alors l'élément en cours de création devient la tête, sinon on ajoute l'élément en cours de création comme suivant du dernier de la liste. dans les deux cas, on mémorise dans pp quel est le dernier élément de la liste.
2
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018
28 avril 2018 à 15:17
merci pr l'explication et bon week-end
0
yg_be Messages postés 23268 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 octobre 2024 1 544 > bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018
28 avril 2018 à 15:21
si c'est clair ainsi, peux-tu marquer le sujet comme résolu, via la roue dentée à droite du titre?
0
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018
28 avril 2018 à 15:28
d'accord je le ferai.. je vais faire une petite illustration et vous le montrer pour voir si j'ai bien compris.
0
bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018
28 avril 2018 à 17:35
mais dîtes- moi pourquoi on mémorise l'adresse du dernier élément dans pp . Est-ce lui qui servira de case suiv pour le dernier élément ?
0
yg_be Messages postés 23268 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 octobre 2024 1 544 > bornin90s Messages postés 44 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 6 juillet 2018
28 avril 2018 à 18:00
quand on ajoute un nouvel élément, on l'ajoute comme suivant du dernier.
donc il est utile de mémoriser l'adresse du dernier, sinon on devrait chaque fois partir du premier et parcourir toute la liste pour trouver le dernier.
0