Liste monodirectionnelle débutante

Résolu
bornin90s Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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 .
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
merci pr l'explication et bon week-end
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > bornin90s Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > bornin90s Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
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