Vous êtes sur la page 1sur 2

Ecole Supérieure d’industrie 2020-2021

Cours Python et Structure de données avancées

STIC1 2020-2021 TD/TP1 par Dr KADJO T. Lambert


Les Listes chainées, les Piles et les Files

Exercice 1
1) Dessiner une représentation de la séquence de notes de devoirs 13, 14, 8, 19, 5, 11 stockée sous la
forme d’une liste doublement chaînée.
2) Sous Python, créer une liste chainée nommée Evaluation pour stocker différentes évaluations
(note, coefficient) successives. Ici, chaque élément de la liste évaluation devra contenir les
données suivantes : note et coefficient de l’évaluation.
3) Écrire une procédure calculMoyennes qui parcourt la liste des évaluations et qui retourne la
moyenne en tenant compte des coefficients.
4) Donner une procédure non récursive qui inverse l’ordre d’une liste simplement chaînée à n
éléments.
5) Un enseignant de l’ESI souhaite gérer les notes de ses étudiants. Les étudiants sont identifiés par
leur numéro matricule. Ils ont également un nom et un prénom. Ces informations sont stockées
dans une liste chaînée Notation dont chaque élément comporte aussi un champ moy pour la
moyenne de l'étudiant et un champ Evaluations qui est un pointeur sur sa liste de notes qui est
aussi une liste chaînée.
a) Créer une classe Etudiant pour enregistrer les données d’un étudiant (matricule, nom,
prenoms)
b) Créer la liste doublement chainée Notation.
c) Ecrire une procédure qui complète cette liste Notation par un nouvel étudiant.
d) Écrire une procédure moyennesEtudiants qui parcourt la liste des étudiants, et qui calcule et met à
jour le champ moy de chaque étudiant à l'aide de la liste des notes sur laquelle pointe le champ
Evaluations. La procédure moyennesEtudiants prend en paramètre la liste Notation.
e) Ecrire une procédure qui ajoute une note en début de liste de notes d’un étudiant connaissant le
matricule de l’étudiant et la liste de Notation
f) Ecrire une procédure qui supprime une note d’un étudiant connaissant le rang de la note dans la liste,
le matricule de l’étudiant et la liste de Notation
g) Ecrire une procédure qui affiche la liste Notation. Les informations affichées sont : Matricule de
l’Etudiant et sa moyenne.

Exercice 2.
Soit une expression arithmétique complètement parenthésée ne comportant que des nombres positifs
(entier ou flottant). Les opérateurs +, -, *, / et des parenthèses. Toutes les opérations seront
systématiquement entourées par des parenthèses.
Par exemple n’est pas complètement parenthésée.
est complètement parenthésée.

1) Ecrire une fonction controleExp qui permet de savoir si une expression est complètement
parenthésée. Cette fonction prend en paramètre une chaine de caractères représentant une
expression arithmétique et retourne True ou False. La fonction utilise une pile.
2) Ecrire une fonction evaluer(ecp) qui permet de savoir la valeur d’une expression arithmétique
complètement parenthésée, représentée par une chaine de caractères ecp.
Cette fonction doit utiliser les piles. L’utilisation de la fonction eval de Python est interdite.
On supposera que l’expression fournie à la fonction est correctement écrite.
Par exemple, pour l’expression , la fonction evaluer retournera la
valeur entière 92,25
Ecole Supérieure d’industrie 2020-2021
Cours Python et Structure de données avancées

Exercice 3
1) Dans un SE, l'algorithme du tourniquet, circulaire ou round robin mémorise dans une file du type
FIFO (First In First Out) la liste des processus prêts, c'est-à-dire en attente d'exécution
 Choix du processus à exécuter : Il alloue le processeur au processus en tête de file, pendant un
quantum de temps.
 Si le processus se bloque ou se termine avant la fin de son quantum, le processeur est
immédiatement alloué à un autre processus (celui en tête de file).
 Si le processus ne se termine pas au bout de son quantum, son exécution est suspendue. Le
processeur est alloué à un autre processus (celui en tête de file).
 Le processus suspendu est inséré en queue de file.
 Les processus qui arrivent ou qui passent de l'état bloqué à l'état prêt sont insérés en queue de file.

Les processus suivants sont à exécuter dans un système mono processeur. Le temps d'arrivée ainsi que le
temps de calcul demandé pour chaque processus sont donnés dans la table suivante (temps en
milliseconde)

Temps arrivée Temps calcul

A 0 3

B 2,001 6

C 4,001 4

D 6,001 2

Donnez les différentes configurations de la file pour l’exécution de ces différents processus en utilisant un
quantum de deux unités

2) Créer une File à partir de deux piles.

Vous aimerez peut-être aussi