IFT-10541A : Hiver 2003 Semaine 5 : Piles et files.

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Licence pro MPCQ : Cours
Distance inter-locuteur
Piles, files et listes: notions théoriques
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Les numéros
Les identités remarquables
Sirop de Liège « industriel »
Algorithme et structure de données
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Chap. 1 Structures séquentielles : listes linéaires
ORTH 1 CE2 Je sais écrire sans erreur les pluriels des noms se terminant par s, x, z.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
-17 Anticipations économiques en Europe Septembre 2013 Indicateur > +20 Indicateur 0 a +20 Indicateur 0 a -20 Indicateur < -20 Union européenne total:
Structures de données linéaires
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Les structures de données arborescentes
Synchronisation et communication entre processus
II. Chaînage, SDD séquentielles
Cours de physique générale I Ph 11
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
Titre : Implémentation des éléments finis sous Matlab
Les tris.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
1 INETOP
IFT-10541A : Hiver 2003 Semaine 1 : Type de données abstrait.
Structures de données IFT-2000
1 Délégation FSA 2008: Cycle de formations prédépart __ Quest-ce que la mondialisation ?
RACINES CARREES Définition Développer avec la distributivité Produit 1
Présentation Structures de Données et TDA
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
1 10 pt 15 pt 20 pt 25 pt 5 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Les fonctions.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-10541
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Structures des données
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
Ch. PAUL - Piles et Files à l'aide de listes chainées
LES PILES ET FILES.
Exercice de vérification 1 p
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
ETNA – 1ème année Guillaume Belmas –
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Transcription de la présentation:

IFT-10541A : Hiver 2003 Semaine 5 : Piles et files

2 Piles Piles : LIFO : last in, first out DAPS : dernier arrivé, premier sorti ex. : assiettes livres factures pile dexécution évaluation dexpressions inout pile

3 Files Files : FIFO : first in, first out PAPS : premier arrivé, premier sorti ex. : assiettes factures banque chaîne de montage imprimante tâches à exécuter outin file

4 Piles et files structures de données auxiliaires car utilisées par dautres structures (comme les listes ordonnées) utilité : support à des applications support à dautres structures de données modélisation de la réalité en informatique : système dexploitation gestion interne évaluation d expressions etc.

5 Piles espace de mémorisation temporaire, avec conventions de manipulation (gestion) : ajouter un nouvel élément sur la pile (empiler) enlever un élément de la pile (dépiler) regarder le premier élément de la pile indiquer si la pile est vide regarder si un élément est sur la pile remplacer un élément sur la pile pile

6 manipulations (empiler et dépiler) par le même point daccès in out pile out in Pile = liste + gestion adaptée

7 empiler (push) : dépiler (pop) : sommet (top) : pile vide ? élément sur la pile (peep) ? remplacer un élément sur la pile

8 Piles : spécifications formelles Une pile est une structure monolithique, c.-à- d. quelle n'est pas construite à l'aide de sous-piles. Les opérations ne vont pas créer de nouvel objet de type pile. La pile passée en paramètre (par référence) sera mise à jour (au besoin).

9 Piles : spécifications formelles empiler : p p + x Pile empiler(Pile p, TypeEl x, int *err) dépiler : -p Pile depiler(Pile p, TypeEl *x, int *err); sommet : !p TypeEl sommet(Pile p, int *err);

10 Piles : spécifications formelles pile vide : p = ? Bool pileVide(Pile p, int *err); appartenance : x p? Bool appartientP(Pile p, TypeEl x, int *err); remplacement : p p - x/y Pile remplacerPile(Pile p, TypeEl x, TypeEl y, int *err);

11 Piles : autres fonctions création et initialisation : Pile p1, p2; int err; p1 = initPile(&err); p2 = initPile(&err); vider une pile : Pile viderPile(Pile p, int *err); ou : while(! (p = ?) ) p -p; typedef struct { } Pile;

12 en tableau : (accès : indice 0) pile Piles : modèles dimplantation

13 en tableau : (accès par la fin) pile Piles : modèles dimplantation

14 pile Piles : implantation en tableau #define MAX_PILE 100 typedef struct {int top; TypeEl tab[MAX_PILE]; } Pile; #define MAX_PILE 100 typedef struct {int taille int top; TypeEl * tab; } Pile;

15 création : Pile p1; int erreur; initialisation : pile initPile(int taille, int *err); p1 = initPile(2000,&erreur); Piles : création et initialisation pile

16 liste chaînée debut pile Piles : modèles dimplantation

17 3 pile Piles : implantation par listes #define MAX_PILE 100 typedef struct {elem * debut; int cpt; } Pile;

18 création : Pile p1; int erreur; initialisation : Pile initPile(int *err); p1 = initPile(&erreur); 0 p1 Piles : création et initialisation

19 Gestion de piles par listes Gestion simple : empiler dépiler sommet pileVide ? appartenance remplacement

20 approches hybrides : implantation par tableau (par nœud) implantation par listes (globalement) p1 Ratio : info admin./espace total

21 Comment accéder au sommet ? Comment ajouter un élément ? Comment enlever un élément ? p1 pile fin cpt tab suiv nœud... en-tête (header) Modèles hybrides

22 Applications des piles gestion de lordre dexécution des fonctions où TypeEl = struct { adresse de retour dans la fonction; variables de la fonction; } f1 appelle f2: avant lappel : la struct décrivant f1 est mise sur la pile au retour, on dépile et on continue avec les variables dépilées et à partir de ladresse indiquée

23 Applications des piles On peut donc simuler la pile. On peut alors transformer une fonction récursive en fonction itérative avec gestion explicite dune pile. Avantages versus désavantages ???

24 Vérification dimbrication {, (, [ doit correspondre à }, ) et ] respectivement i 1 Tantque i < nb de caractères faire Si caractère[i] est '(' ou '{' ou ' [' alors empiler caractère[i] Sinon Si caractère[i] est ') ' ou '}' ou ']' alors Si caractère[i] = symétrique sommet de la pile alors dépiler la pile Sinon ERREUR i i + 1 Fin Tantque

25 Vérification dimbrication Exemples : 3*(2-[4 / (2 +x)] * y) 3*(2-[4 / (2 +x]) * y) ((((x + 4 / 3 * (-5)))))

26 Notation polonaise inversée AB+ ; CD- ; EF* ; GH/ 3*(2-[4 / (2 +x)] * y) 3 (2-[4 / (2 +x)] * y) * 3 (2 [4 / (2 +x)] * y-) * 3 (2 [4 (2 +x)/] * y-) * 3*(2-[4 / (2 +x)] * y)3 (2 [4 (2 x +)/] * y-) * 3 (2 [4 (2 x +)/] y * -) * x + / y * - *

27 3*(2-[4 / (2+x)] * y) x + / y * - * Évaluation dexpr. arithmétiques

28 évaluation dexpressions suffixées voir manuel de cours p.97 (pour opérateurs binaires mais pourrait être étendu pour opérateurs n-aires) production dexpressions suffixées voir manuel de cours p.99 Algorithmes à lire

29 Files espace de mémorisation temporaire, avec conventions de manipulation (gestion) : ajouter un nouvel élément sur la file (enfiler) enlever un élément de la pile (défiler) regarder le premier élément de la file regarder le dernier élément de la file indiquer si la file est vide regarder si un élément est sur la file remplacer un élément sur la file outin file

30 Files : spécifications formelles enfiler : f f + x File enfiler(File f, TypeEl x, int *err); défiler : -f File defiler(File f, TypeEl *x, int *err); premier : !f TypeEl premier(File f, int *err);

31 Files : spécifications formelles dernier : !!f TypeEl dernier(File f, int *err); file vide : f = ? Bool fileVide(File f, int *err); appartenance : x f? Bool appartientFile(File f, TypeEl x, int *err); remplacement : f f - x/y File remplacerFile(File f, TypeEl x, TypeEl y, int *err);

32 inout file outin file File = liste + gestion adaptée manipulations (enfiler et défiler) par des points daccès opposés

33 File = liste + gestion adaptée enfiler : défiler : premier : dernier : file vide ? élément sur la file ? remplacer un élément sur la file :

34 Files : autres fonctions création et initialisation : File f1, f2; f1 = initFile(int *err); f2 = initFile(int *err); vider une file : file viderFile(File f, int *err); ou : while(! (f = ?) ) f -f; typedef struct { } File;

35 TêteQueue Insérer 'Robert' TQ Paul René Marc Paul Paul René René Marc Marc Marc Marc Marc Jean Jean Jean Anne Anne T T T T T T T Q Q Q Q Q Q Q Débordement Vide Insérer 'Paul' Insérer 'Jean' Insérer 'René' Extraire 'Paul' Extraire 'René' Insérer 'Anne' Insérer 'Marc' Implantation par tableau

36 Implantation : liste circulaire q = (q + 1) modulo MAXELT

37 #define MAXELT 100 typedef struct {int tete; int queue; TypeEl * tab; int taille; } File; 0 file Files : implantation en tableau

38 création : file f1; int erreur; f1 tete queue tab taille Files : création et initialisation

39 création : File f1; int erreur; initialisation : File initFile(int taille, int *err); f1 = initFile(2000,&erreur); file f1 tete queue tab taille Files : création et initialisation

40 Gestion de listes circulaires enfiler défiler premier dernier file vide? appartenance remplacer

41 Files : implantation par listes tete el suivant el suivant el suivant cpt queue 3 typedef struct {elem *tete; int cpt; elem *queue; } File;

42 Files : implantation par listes tete el suivant el suivant el suivant cpt queue 3 enfiler défiler premier dernier file vide? appartient remplacer

43 cpt tab suiv 443 tete cpt queue 11 enfiler défiler premier dernier file vide? appartient remplacer Modèles hybrides

44 Files prioritaires gestion dune seule file insertion se fait selon la priorité éléments toujours triés selon leur priorité in file in file 11448

45 Files prioritaires gestion de plusieurs files 1 file par niveau de priorité (sous-liste) une liste triée selon le niveau de priorité avec un bloc descripteur pour la sous-liste correspondante

46 Applications des files Modélisation du phénomène : banque chaîne de montage etc. En informatique : traitement « batch » (en lots) gestion des listes dimpression

47 Traitement « batch » (en lots) Tantque toujours faire si f nest pas vide alors: tâche = defile(f); exécuter tâche; Fin Tantque Si exécution(tâche) alors: f = enfiler(tâche,f); Processus consommateur Processus producteur

48 simulation : élément = priorité = temps in file in file Application des files prioritaires

49 Simulation exemple : banque : 4 guichets automatiques revenus associés à chaque transaction 1 seule file dattente pour tous les guichets taux darrivée des clients (hres de pointe) temps de service moyen temps dattente dun client versus sa position dans la file modèle de simulation

50 Simulation bancaire processus : arrivée dun client : enfile (1 processus si 1 seule file) à une certaine fréquence : loi de Poisson heure dentrée dans la file : horloge centrale temps de transaction requis nombre de transactions revenus par client tolérance au temps dattente traitement dun client (par guichet) : défile (4 processus) temps de transaction selon le client mise à jour des statistiques lhorloge (1) : mise à jour de lhorloge et de la file dattente

51 Simulation de files dattente on évalue certaines métriques : la longueur moyenne de la file le nombre de clients perdus les revenus obtenus/perdus pendant la simulation le temps dutilisation des guichets on modifie certains paramètres et on recommence ! in file in file Guichet n o 1 Guichet n o 2 Guichet n o 3 Guichet n o 4 Création