Académique Documents
Professionnel Documents
Culture Documents
Algorithmique et Analyse :
Structures linaires (suite)
Mathieu Roche
Jrme Az
Fond sur le polycopi de J.P Chevillard
2003 - 2004
Universit Paris-Sud
Filire : C4 - DU
2. Les piles
TailleMax
TYPE
ty_structure_de_pile = agrgat_de
p_top
Remarque : p_top 1
indice de t_pile
2. Les piles
Deux procdures importantes relatives aux piles :
- empiler (PUSH) : stocker une valeur au sommet de la pile
- dpiler (POP) : rcuprer la valeur de lobjet qui est au
sommet de la pile et libre sa place
Empiler (PUSH)
Procdure Empiler (
pile :ty_structure_de_pile, Entre/Sortie;
x : ty_lment_de_pile, Entre; /* valeur empiler */
OK : indicateur boolen, Sortie
2. Les piles
Dpiler (POP)
Procdure Dpiler (
pile :ty_structure_de_pile, Entre/Sortie;
y : ty_lment_de_pile, Sortie; /* valeur dpile */
OK : indicateur boolen, Sortie
Initialiser Pile
Procdure Init_Pile ( pile :ty_structure_de_pile,
Entre/Sortie )
Cours Algo - C4-DU
3. Les files
Une FILE est un autre cas particulier de liste pour laquelle on ne peut
ajouter de nouvel lment qu la fin de la file et on ne peut extraire un
lment quen tte. Do lappellation FIFO (First In, First Out)
1
TailleMax
p_tte
p_queue
TYPE
ty_structure_de_file = agrgat_de
t_file : tableau de ty_lment_de_file indic [1..TailleMax];
p_tte :
p_queue :
Fin_agrgat ty_structure_de_file;
VARIABLE
file : ty_structure_de_file
3. Les files
p_queue
p_tte
3. Les files
Remarque :
p_queue p_tte
p_tte p_queue
3. Les files
Solution propose :
Chaque procdure qui modifie la file tient jour une variable
indiquant ltat_de_la_file : vide, pleine ou normale (c.-d. ni
vide ni pleine).
Ajouter cette variable lagrgat :
TYPE
ty_structure_de_file = agrgat_de
t_file : tableau de ty_lment_de_file indic [1..TailleMax];
p_tte :
p_queue :
Fin_agrgat ty_structure_de_file;
3. Les files
Ajouter
Retirer
Initialiser File