Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.

Slides:



Advertisements
Présentations similaires
Structures de données avancées : Principales structures de données
Advertisements

Structures de données avancées : Introduction
Chap. 4 Recherche en Table
Parcours.
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 5 Structures de données abstraites.
Cours n° 6 Standard Template Library I.
Piles, files et listes: notions théoriques
Algorithmes et structures de données avancées Cours 1+2+3
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
Sensibilisation à l’Algorithmique et structure de données
Cours n° 8 Conception et Programmation à Objets
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Cours d’Algorithmique
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Algorithme et structure de données
Les structures de données
Chap. 1 Structures séquentielles : listes linéaires
Système d’exploitation : Assembleur
PILE voir l'animation: Diaporama / Visualiser ...
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
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é.
Cours d’Algorithmique
Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
Démarche de résolution de problèmes
Les piles Djamal Rebaïne.
II. Chaînage, SDD séquentielles
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Bibliothèque standard du C++
II. Chaînage, SDD séquentielles
Programmation fonctionnelle Le langage LISP
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
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
Les listes chaînées par Frédérick Henri.

IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
IV. Arbres  Arbre binaire (AB) Représentation SDD d’un AB
Structures de données IFT-10541
Structures de données IFT-2000
Exemple de gestion d'un buffer clavier en liste circulaire
Le langage C Structures de données
Ch. PAUL - Piles et Files à l'aide de listes chainées
Cours Architecture des Systèmes Informatiques
LES PILES ET FILES.
INTRODUCTION.
II. Chaînage, SDD séquentielles
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
Labo 4 : Les structures et les entrées et sorties
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 –
Structures de données élémentaires
Structures de données avancées : Introduction D. E ZEGOUR Institut National d ’Informatique.
 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.
Types abstraits de données (TAD)
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.
II. Chaînage, SDD séquentielles
Transcription de la présentation:

Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier  Piles et Files II. Chaînage, SDD séquentielles 1

Motivation 2  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 Séquentiel_ilesMotivation

Exemples de la vie courante 3 SéquentielPileExemples

Exemples de la vie courante SéquentielFileExemples

Vocabulaire 5  Désignation comportementale FIFO/LIFO  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 Séquentiel_ileVocabulaire

Représentation 6 Sommet Base Sortie Entrée PUSHPOP PUSHPOP Séquentiel_ileVocabulaire

Applications types 7  De manière générale  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 Séquentiel_ileApplications

5 opérations (et pas davantage) 8  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 ! Séquentiel_ileSpécification

Implémentation statique de la pile 9  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 somme > 0  sommet est alors décrémenté SéquentielPileImplém.Statique

Implémentation statique de la pile typedef struct pile { T donne[n]; int sommet; } pile; typedef pile *pileadr; En langage algorithmiqueExemple de traduction en C SéquentielPileImplém.Statique 10

Créer une pile 11 SéquentielPileImplém.Statique

Test de pile vide 12 SéquentielPileImplém.Statique

Empiler 13 SéquentielPileImplém.Statique

Dépiler 14 SéquentielPileImplém.Statique

Implémentation statique de la file 15  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 ?  A vous de jouer ! SéquentielFileImplém.Statique

Implémentation dynamique de la pile 16  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 Pourquoi ne pas utiliser plutôt la queue comme sommet ? SéquentielPileImplém.Dynamique

17 BONNE CHANCE POUR LE CE DE MARDI !!