Algorithmique Et Structures de Donnees Les Listes Simplement Chainees
Algorithmique Et Structures de Donnees Les Listes Simplement Chainees
Algorithmique Et Structures de Donnees Les Listes Simplement Chainees
ALGORITHMIQUE ET STRUCTURES DE
DONNEES
LES LISTES SIMPLEMENT CHAINEES
Exercice 1 :
Soit Li une liste d’étudiants pour une classe donnée. Un étudiant est représenté par son :
Numéro, Nom, Prénom et sa Moyenne.
1. Proposer une structure de donnée chainée qui permet de stocker la liste des étudiants.
(La structure + la déclaration d’une liste vide).
2. Ecrire une fonction qui permet de calculer la moyenne générale d’une classe Li.
3. Ecrire un programme qui permet d’éclater une liste Li en 2 sous listes L1 et L2, de
telle sorte la première liste L1 contient seulement les étudiants Admis, et la deuxième
L2 contient les étudiants Ajournés
Correction :
Q1 : proposition d’une structure chainée
etudiant = Enregistrement
N entier
Nom : chaine[ 20]
Prenom : Chaine [20]
moyenne : réel
suivant : *etudiant
FinEnreg
Type
ListeEtu =*etudiant
Var P,P1,P2:ListeEtu
Debut
L1←Null
L2←Null
PL
Exercice 2 :
Type
P = *Elem
Enregistrement Elem
Info : Caractere ;
Suiv: P
Fin
Ecrire des sous algorithmes permettant de:
1. Créer Une liste de N caractères (N est un nombre entier transmis en paramètre- quel
changement doit on effectué si le nombre d’éléments n’est pas connu)
Correction :
Procedure création (Var L : P ; N : entier)
Variable
X: P
Co : Entier ;
Debut
L <-- Null
Pour Co de 1 à N Faire
Allouer (x)
Lire (*x. Info)
*x.Suiv <-- L
L <-- x
FinPour
Fin
Si l’on fait une insertion au début pour le premier et les autres en fin cela donnera :
Procedure création (Var L : P ; N : entier) ;
Var
X, Y: P
Co : Entier
Debut
Allouer (x)
Lire (*x. Info)
*x.Suiv <--Null
L <-- x
Pour co de 1 a N – 1 Faire
Allouer (x)
Dans le cas où le nombre d’éléments n’est pas connu on doit faire appel à une boucle :
Procedure création (Var L : P)
Variable
Rep : Caracter
Debut
L <--Null
Repeter
AjoutD (L) ;
Ecrire ('Avez un autre élément à insérer (O/N) ?')
Lire (Rep)
Jusqu’à Rep = 'N'
Fin
FinSi
Fin
Exercice 3 :
Type
P = *Elem
Elem= Enregistrement
Info : entier
Suiv: P
Sinon
L1 *L1.Suiv
FinSi
L1 Tete
Tantque L1 <>Null Faire
Ecrire (*L1.Info)
L1 *L1.Suiv
FinTantque
Fin
Exercice 4 :
Ecrire un sous algorithme qui permet de convertir un entier naturel en sa représentation
binaire en gardant les éléments binaires dans une liste (l’affichage de la liste doit donner
directement la bonne représentation exp 1000 pour 8)
Type
P = *Elem
Enregistrement Elem
Info : ntier
Suiv: P