II. Chaînage, SDD séquentielles

Slides:



Advertisements
Présentations similaires
Le moteur
Advertisements

La recherche de chemin optimal
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Chap. 4 Recherche en Table
Chapitre annexe. Récursivité
Parcours.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 5 Structures de données abstraites.
Piles, files et listes: notions théoriques
Portée des variables VBA & Excel
Fonctions & procédures
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Au programme du jour …. Un peu plus de structures de données
Les Prepositions.
Algorithme et structure de données
Les structures de données
Chap. 1 Structures séquentielles : listes linéaires
Système d’exploitation : Assembleur
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Gestion de la communication par établissement sur le site ville
ALGORITHMES RECURSIFS
UE NFA006 STRUCTURES DE DONNEES
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.
A B D A B D LSC avec « sentinelle »
Récursivité.
Les piles Djamal Rebaïne.
Les structures de données arborescentes
Synchronisation et communication entre processus
Analyse lexicale Généralités Expressions rationnelles Automates finis
Les algorithmes: complexité et notation asymptotique
II. Chaînage, SDD séquentielles
Définition d’un maillon de liste
Structures de données IFT-2000
Etude de cas : buffer clavier
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT-10541A : Hiver 2003 Semaine 5 : Piles et files.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Présentation Structures de Données et TDA

Notre calendrier français MARS 2014
COURS DE PROGRAMMATION ORIENTEE OBJET :
C'est pour bientôt.....
Veuillez trouver ci-joint
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Parcours d'une séquence de longueur fixe
IV. Arbres  Arbre binaire (AB) Représentation SDD d’un AB
Structures de données IFT-10541
Algorithmique et structures de données en C
Exemple de gestion d'un buffer clavier en liste circulaire
Le langage C Structures de données
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
Ch. PAUL - Piles et Files à l'aide de listes chainées
CALENDRIER-PLAYBOY 2020.
USAM BRIDGE H O W E L L -CLASSIQUE
LES PILES ET FILES.
9 paires séries de 3 étuis ( n° 1 à 27 )
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
II. Chaînage, SDD séquentielles
Relevez le numéro de votre logo préféré et adressez-le à : En cas d’hésitation, vous pouvez choisir jusqu’à 3 logos. Seront pris.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
II. Chaînage, SDD séquentielles
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.
Chaînage et LSC : motivation et principe  Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Transcription de la présentation:

II. Chaînage, SDD séquentielles  Piles et Files

Motivation Pour de nombreux algorithmes et SDD séquentielles Opérations limitées et contraintes Ajout et retrait seulement aux extrémités (tête, queue) Ecrire : créer un maillon, copier l’élément, ajouter le maillon Lire : retirer le maillon, copier l’élément, supprimer le maillon  Deux structures fondamentales Ajout et retrait seulement en tête : pile Ajout resp. retrait en queue resp. en tête : file

Vocabulaire Désignation comportementale FIFO/LIFO Extrémités First In First Out = une file (EN : queue) Last In First Out = une pile (EN : stack) Extrémités Têtes Pile : sommet (EN : top) File : sortie Queues Pile : base File : entrée Opérations EN : push/pop FR : empiler/dépiler resp. enfiler/défiler Dimensions Hauteur d’une pile vs. longueur d’une file

Représentation PUSH POP Sommet Base Sortie Entrée PUSH POP

Applications types De manière générale En algorithmique La pile sert à mémoriser des résultats intermédiaires Pile d’appels, analyseur syntaxique La file sert en temporiser des flux Tampons pour la communication inter processus En algorithmique Structures auxiliaires élémentaires les plus courantes Algorithme générique de parcours itératif d’un arbre Utilisation d’une pile : parcours en profondeur Utilisation d’une file : parcours en largeur

5 opérations (et pas davantage) Spécification Création et supression Tester si la _ile est vide E__iler (push) Dé_iler (pop) Implémentation Statique avec tableau Dynamique avec chaînage L’utilisation d’une LSC ? Pertinent !

Implémentation statique de la pile Limitée à n éléments Tableau P[1..n] et attribut sommet L’élément situé à la base de la pile : P[1] L’élément situé au sommet de la pile : P[sommet] La pile est vide ssi sommet = 0 Un empilement peut avoir lieu ssi sommet < n sommet est alors incrémenté Un dépilement peut avoir lieu ssi sommet > 0 sommet est alors décrémenté

Implémentation statique de la pile En langage algorithmique Exemple de traduction en C typedef struct pile { T donne[n]; int sommet; } pile; typedef pile *pile_adr;

Créer une pile

Test de pile vide

Empiler

Dépiler

Implémentation statique de la file Tableau P[1..n] et attributs entrée : index de la position libre suivante sortie : index de l’élément de tête Opérations sur les index : modulo n Principe similaire à ce qui a été vu pour le buffer clavier Repérage L’élément situé à l’entrée de la file : P[entrée – 1] L’élément situé à la sortie de la file : P[sortie] Difficulté : gestion des débordements positif et négatif File vide ssi entrée = index Et pour la file pleine ? Pourquoi la capacité est-elle limitée à n – 1 ?

Implémentation dynamique de la pile Deux possibilités A) Utiliser simplement une LSC B) Composer dans une structure une LSC un champ « profondeur » Dans les deux cas, la tête joue le rôle de sommet

Implémentation dynamique de la pile En langage algorithmique Exemple de traduction en C typedef struct pile { liste sommet; unsigned hauteur; // option } pile; typedef pile *pile_adr;

Créer une pile

Test de pile vide

Empiler

Dépiler

Implémentation dynamique de la file Structure Une LSC Deux adresses : La sortie de file (la tête de la LSC) Option un champ « largeur » On ne présente ci-après que la version sans « largeur » Pour adapter vos algos  cf. pile

Implémentation dynamique de la file En langage algorithmique Exemple de traduction en C typedef struct file { liste entree; liste sortie; } file; typedef file *file_adr;

Créer une file

Test de file vide

Enfiler Algorithme 37 : Enfiler (f : file_adr, e : T) (version dynamique Donnée : l’adresse de la file f Donnée : l’élément e à enfiler dans f Variable locale : L’adresse m du maillon à créer pour stocker e début m  réserver maillon m info  e m  succ  nul si EstFileVide (f) alors f  sortie  m sinon f  entrée  succ  m fin f entrée  m

Défiler Algorithme 38 : Defiler (f : file_adr) : T (version dynamique Donnée : l’adresse de la file f Variable locale : L’élément e défilé de f Variable locale : L’adresse m du maillon à supprimer après l’extraction de e début si EstFileVide (f) alors erreur débordement négatif sinon m  fsortie fsortie msucc si fsortie = nul alors fentrée nul fin e  minfo libérer m retourner e

Simuler la récursivité avec une pile Soit l’algorithme récursif suivant : Si on inverse, défiler implique d’itérer jusqu’au prec de la queue : contreperf ! En donner la version itérative qui simule la récursivité Tip – Utiliser une pile auxiliaire comme pile d’appels

Simuler la récursivité avec une pile Si on inverse, défiler implique d’itérer jusqu’au prec de la queue : contreperf !