3-Pile et File Définitions Primitives de piles, exemples

Slides:



Advertisements
Présentations similaires
Parcours.
Advertisements

Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 5 Structures de données abstraites.
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Piles, files et listes: notions théoriques
Algorithmique (suite)
Fonctions & procédures
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…
Les Algorithmes de tri.
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
Les structures de données
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Les liste.
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.
II. Chaînage, SDD séquentielles
Structures de données IFT-2000
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

Piles Premier arrivé, dernier servi: LIFO (Last In, First Out) Liste à usage restreint: Enlève et insère un élément seulement à un bout de la liste. Notation:
Structures de données IFT-10541
Structures de données IFT-2000
ALGORITHME DE TRI Le tri par insertion.
Ch. PAUL - Piles et Files à l'aide de listes chainées
LES PILES ET FILES.
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 –
LE TRAITEMENT NUMERIQUE
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Algorithmique Tableaux de données
Année Carole Blanc.  Carole Blanc :  Site WEB :
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.
Le DOM Le Document Object Model (DOM) est une interface de programmation pour les documents HTML et XML Il fournit une représentation structurée du document.
Tableaux en C Mardi 2/05.
Semaine 8 Retour sur les tableaux : fonctions et récursivité
Les Instructions Itératives (Les Boucles)
Algorithmiques Abdelbasset KABOU
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Pointeurs et langage C.
I21 Algorithmique et programmation II
Initiation à la programmation impérative et algorithmique
Pr ZEGOUR Djamel Eddine
Présentation Structure données abstraite (TDA) Rappel : File
Plan Introduction Parcours de Graphe Optimisation et Graphes
Piles.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
Containeurs & Itérateurs
Chapter 12: Structures de données
Type Concret – Type Abstrait
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap4: Structures de données élémentaires.
Calcul Scientifique Initiation à SCILB
C HAPITRE II: S TRUCTURES S ÉQUENTIELLES Université Saad Dahlab – Blida1 Faculté des Sciences Département d’Informatique Licence d’Informatique Semestre.
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Structure de données utiles
Exercices récapitulatifs
Flowchart Itération Cours 04.
Principes de programmation (suite)
Piles et files.
Tableaux Cours 06.
LISTES.
Listes Chaînées.
Structure de données Les listes.
Transcription de la présentation:

3-Pile et File Définitions Primitives de piles, exemples Primitives de files, exemples Implémentation des piles Implémentation des files

3.1-Pile et File: Définition Les piles et les files sont des containeurs dans lesquels on ne peut accéder qu'à un objet particulier. Définition 3.1. : Dans une pile, l’objet accessible est le dernier inséré (LIFO, Last-In, First-Out). Définition 3.2: Dans une file, l‘objet accessible est le plus ancien dans la file (FIFO, First-In, First-Out). On écrira pour déclarer des variables : type_pile=pile de objet; type_file=file de objet;

3.2-Primitives de pile Une pile est définie par les opérations suivantes : accès fonction valeur(val P:pile de objet):objet; fonction pileVide(val P:pile de objet):booléen; modification fonction creerPile(ref P:pile de objet):vide; fonction empiler(ref P:pile de objet; val:objet):vide; fonction depiler (ref P:pile de objet):vide; fonction detruirePile(ref P:pile de objet):vide;

3.2-Construire une listeSC inversée à partir d'une listeSC fonction listeInverse(ref L:listeSC de objet):listeSC de objet; var P:pile de objet; var LR:liste de objet; debut creerListe(LR); creerPile(P); debutListe(L); tant que !finListe(L) faire empiler(P,valeur(L)); suivant(L); fintantque insererEnTete(LR,valeur(P)) depiler(P); tant que non(pileVide(P)) faire insererApres(LR,valeur(P)); suivant(LR); fintantque; detruirePile(P) retourner(LR); fin finfonction

3.3-Primitives de File Une file est définie par les opérations suivantes : Accès : fonction valeur(val F:file de objet):objet; fonction fileVide(val F:file de objet):booléen; Modification : fonction creerFile(ref F:file de objet):vide; fonction enfiler(ref F:file de objet; val v:objet):vide; fonction defiler(ref F:file de objet):vide; fonction detruireFile(ref F:file de objet):vide;

3.3-Compter le nombre d'élément d'une file d'entiers non nuls fonction compteFile(ref F:file de entier): entier; var v,compt:entier; debut compt=0; enfiler(F,0); tant que valeur(F)!=0 faire compt=compt+1; v=valeur(F); defiler(F); enfiler(F,v); fintantque; retourner(compt); fin finfonction

3.3- Inverser une file d'entiers non nuls fonction inverserFile(ref F:file de entier):file d'entier; var P:pile d'entier; var FS:file d'entier; debut creerPile(P); creerFile(FS); enfiler(F,0); tant que valeur(F)!=0 faire v=valeur(F); defiler(F); enfiler(F,v); empiler(P,v); fintantque tant que non(pileVide(P)) faire v=valeur(P); enfiler(FS,v); depiler(P); fintantque; detruirePile(P); retourner(FS); fin finfonction

3.4- Implémentation de pile dans un tableau Chaque objet de la pile est un élément du tableau. On doit de plus avoir un champs qui permet d'accéder au sommet de pile. pile d'objet=structure taille:entier; sommet:entier; pile:tableau[1..taille] d'objets; finstructure;

3.4- Implémentation de pile dans un tableau accès fonction valeur(ref P:pile de objet):objet; debut retourner(P.pile[P.sommet]); fin finfonction fonction pileVide(ref P:pile de objet):booléen; retourner(P.sommet==0);

3.4- Implémentations de pile dans un tableau modification fonction empiler(ref P:pile de objet; x:objet):booleen; /* l'espace de stockage peut être saturé */ debut si P.sommet==P.taille alors retourner(FAUX) sinon P.sommet=P.sommet+1; P.pile[P.sommet]=x; retourner(VRAI) finsi fin finfonction

3.4- Implémentations de pile dans un tableau modification fonction depiler(ref P:pile de objet):vide; debut P.sommet=P.sommet-1; fin finfonction fonction creerPile(ref P:pile de objet):pile de objet; P.sommet=0;

3.5- Implémentations de pile avec une liste-SC Chaque objet de la pile est un objet de la listeSC. pile d'objet=listeSC de objet; accès : fonction valeurPile(ref P:pile de objet):objet; debut debutListe(P); retourner(valeurListe(P)); fin finfonction fonction pileVide(ref P:pile de objet):booléen; retourner(listeVide(P)); fin finfonction

3.5- Implémentations de pile avec une liste-SC modification fonction empiler(ref P:pile de objet; x:objet):vide; debut insérerEnTete(P,x) fin finfonction fonction depiler(ref P:pile de objet):vide; supprimerEnTete(P);

3.5- Implémentations de pile avec une liste-SC modification fonction creerPile(ref P:pile de objet):vide; debut creerListe(P); fin finfonction

3.6- Implémentations de file dans un tableau Chaque objet de la file est un élément du tableau. On utilise le tableau de manière circulaire avec un pointeur donnant le premier et un autre donnant le dernier. file d'objet=structure taille : entier; premier : entier; dernier : entier; plein : booléen; file : tableau[0..taille-1] d'objets; finstructure;

3.6- Implémentations de file dans un tableau accès fonction valeur(ref F:file de objet):objet; debut retourner(F.file[F.premier]); fin finfonction fonction fileVide(ref F:file de objet):booléen; retourner(F.premier==F.dernier & non(F.plein));

3.6- Implémentations de file dans un tableau Modification fonction enfiler(ref F:file de objet; x:objet):booleen; debut si F.plein alors retourner(FAUX) sinon F.file[F.dernier]=x; F.dernier=(F.dernier+1) mod F.taille; F.plein=F.dernier==F.premier; retourner(VRAI) finsi fin finfonction

3.6- Implémentations de file dans un tableau Modification fonction creerFile(ref F:file de objet):file de objet; debut F.premier= 0; F.dernier= 0; F.plein=FAUX; fin finfonction

3.6- Implémentations de file dans un tableau Modification fonction defiler(ref F:file de objet):vide; debut F.premier=(F.premier+1) mod F.taille; F.plein=Faux fin finfonction

3.7- Implémentations de file par une liste_DC Chaque objet de la file est un objet de la liste_DC car il faut un accès au dernier. file d'objet=liste_DC de objet; Accès : fonction fileVide(ref F:file de objet):booléen; debut retourner(listeVide(F)); fin finfonction

3.7- Implémentations de file par une liste_DC modification fonction enfiler(ref F:file de objet; x:objet):vide; debut dernier(F); insererApres(F,x); fin finfonction fonction defiler(ref F:file de objet):vide; supprimerEnTete(F);

3.7- Implémentations de file par une liste_DC modification fonction creerFile(ref F:file de objet):vide; debut creerListe(F); fin finfonction

3.8- Implémentation par une Liste avec un pointeur sur le dernier élément cellule=structure valeurElement:objet; pointeurSuivant:^cellule; finstructure; curseur=^cellule; file d'objet=structure premier:curseur; dernier:curseur finstructure

3.8- Implémentation par une Liste avec un pointeur sur le dernier élément accès fonction valeurFile(ref F:file de objet):objet; debut retourner(F.premier^.valeurElement); fin finfonction fonction fileVide(ref F:file de objet):booléen; retourner(F.premier==NIL);

3.8- Implémentation par une Liste avec un pointeur sur le dernier élément modification fonction enfiler(ref F:file de objet; x:objet):vide; var c:curseur; debut new(c); c^.valeurElement=x; c^.pointeurSuivant=NIL; si F.premier==NIL alors F.premier=c finsi F.dernier^.pointeurSuivant=c; F.dernier=c; fin finfonction

3.8- Implémentation par une Liste avec un pointeur sur le dernier élément modification fonction defiler(ref F:file de objet):vide; var c:curseur; debut c=F.premier; si F.premier=F.dernier alors F.dernier=NIL finsi F.premier=c^.pointeurSuivant; delete(c) fin finfonction

3.8- Implémentation par une Liste avec un pointeur sur le dernier élément modification fonction creerFile(ref F:file de objet):vide; debut F.premier=NIL; F.dernier=NIL; fin finfonction

3.8- Implémentation par une Liste avec un pointeur sur le dernier élément modification fonction detruireFile(ref F:file de objet):vide; debut tantque !fileVide(F) faire defiler(F) fintantque fin finfonction