SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Structures de données
1
Piles et Files
En utilisant les listes chainées
Prof. M. Khalifa MANSOURI
Université Hassan II de Casablanca
ENSET de Mohammedia
Département Mathématiques et Informatique
Structures de données
1. Les piles
2
Les piles
3
Une pile (stack en anglais) est une structure dynamique dans
laquelle l'insertion ou la suppression d'un élément s‘effectue
toujours à partir de la même extrémité de cette structure.
Cette extrémité est appelée le sommet de la pile.
Définition
Les piles
4
Une pile permet de modéliser un système régi par
le mécanisme « dernier arrivé premier sorti » :
(Lifo : last in, first out).
Principe de LIFO
• L'action pour ajouter un nouvel élément au sommet de la
pile s'appelle Empiler
• L’action pour retirer l‘élément situé au sommet de
la pile s'appelle Dépiler
Les application des piles
5
De nombreuse applications s'appuient sur l'utilisation d'une pile, on peut citer :
• Dans un navigateur web, une pile sert à mémoriser les pages Web visitées.
• L'adresse de chaque nouvelle page visitée est empilée et l'utilisateur dépile
• l'adresse de la page précédente en cliquant le bouton « Afficher la page
précédente ».
• L‘évaluation des expressions mathématiques en notation post-fixée (ou polonaise
inverse) utilise une pile.
• La fonction « Annuler la frappe » (en anglais « Undo ») d'un traitement de
texte mémorise les modifications apportées au texte dans une pile.
• Vérification de parenthèse d'une chaine de caractères ;
• La récursivité (une fonction qui fait appel a elle même) ;
• etc.…
Utilisation
Les application des piles
6
Ajouter dans cet ordre
A EB D FCA B C D E F
Pile
Exemple de Pile (1)
Les application des piles
7
A
B
C
D
E
F
Pile
Exemple de Pile (2)
Les application des piles
8
Les application des piles
9
Implémentation d’une pile
1
Représentation d'une Pile
Représentation contiguë (par tableau) :
Les éléments de la pile sont rangés dans un tableau
Un entier représente la position du sommet de la pile
Représentation chaînée (par pointeurs) :
Les éléments de la pile sont chaînés entre eux
Un pointeur sur le premier élément désigne la pile et
représente le sommet de cette pile
Une pile vide est représentée par le pointeur NULL
Implémentation d’une pile
1
On peut implémenter une pile à l’aide de la même structuration qu’une liste chainée
e1 e2 e3 e4@ @ @ NULL
*P
@
Implémentation d’une pile
1
Pile chaînée
p
Pile
10 20
50
Sommet de la pile
pointée par p
Cellule contenant la
valeur 5
Pointeur sur cellule
suivante
Pointeur
NULL
Implémentation d’une pile
1
Syntaxe pour définir la structure de la pile
//Définir la structure cellule
typedef struct Element
{
int info ; //le champ info peut avoir n'importe quel type
struct Element *suiv ; //pointeur contenant l'adresse de l’élément suivant
} Element;
Déclaration d’une pile
Element pile; // En utilisant une variable statique
Element *pile; // En utilisant une variable dynamique
Opérations sur une pile
1
Voici les primitives communément utilisées :
1. Element *PileVide() : créer une pile vide
2. int EstVide(Element *p) : renvoie vrai si la pile est vide, faux sinon ;
3. Type Sommet(Element *p) : renvoie l‘élément sommet de type Type
de la pile P ;
4. Element* Empiler(Element *p,Type v) : ajoute au sommet de la pile
P l’élément v de type Type;
5. Element* Depiler(Element *P) : supprime de la pile P le sommet.
Implémentation d’une pile
1
Element PileVide()
Element PileVide()
{
return(NULL) ;
}
Implémentation d’une pile
1
int EstVide()
int EstVide(Element *pile)
{
if(pile==NULL)
return (1) ;
else
return (0) ;
}
Dans la suite on considère que Type est entier
Implémentation d’une pile
1
sommet(P)
int sommet(Element *p)
{
if(p==NULL)
printf("pile vide!");
else
return p->info;
}
Implémentation d’une pile
1
Element empiler()
Element Empiler(Element *P,int v)
{
Element *nouv ;
nouv =(Element*)malloc(sizeof(Element)) ;
nouv ->info=v ;
nouv ->suiv=p ;
return(nouv) ;
}
Implémentation d’une pile
1
Element depiler(Element *p)
Element Depiler(Element *P)
{
Element *c = p ;
if(c==NULL)
return(NULL) ;
else
{
p = p -> suiv ;
free(c) ;
return(p) ;
}
}
Structures de données
2. Les files
2
Les Files
2
Une File (queue en anglais ) est une structure de données
dans laquelle l'insertion se fait à la fin et la suppression d'un
élément s'effectue à partir de début de cette structure.
Le fonctionnement ressemble à une file d'attente : les
premières personnes arrivées, se sont les premières
personnes à servir.
Définition
Les files
2
Une file permet de modéliser un système régi par le
mécanisme "premier arrivé premier sorti" ; on dit souvent
FIFO (First in, First out)
Principe de FIFO
•L'action pour ajouter un nouvel élément s'appelle Enfiler
•L'action pour retirer l‘élément situe au début de la File
s'appelle Défiler
Les application des files
2
Les application des files
2
Ajouter dans cet ordre
A EB D FCA B C D E F
Exemple de File (1)
Fil
e
Les application des files
2
A EB D FC
Exemple de File (2)
File
Les application des files
2
• En général, on utilise des files pour mémoriser temporairement des transactions qui
doivent attendre pour être traitées ;
• Les serveurs d'impression, qui doivent traiter les requêtes dans l'ordre dans lequel
elles arrivent, et les insèrent dans une file d'attente ( ou une queue) ;
• Certains moteurs multitâches, dans un système d'exploitation, qui doivent accorder
du temps-machine a chaque tâche, sans en privilégier aucune ;
• Un algorithme de parcours en largeur utilise une file pour mémoriser les nœuds
visités ;
• On utilise aussi des files pour créer toutes sortes de mémoires tampons (en anglais
buffers).
• etc.…
Utilisation
Les application des files
2
Les application des files
2
Les application des files
2
Représentation d'une File
Représentation contiguë (par tableau) :
Les éléments de la file sont rangés dans un tableau
Deux entiers représentent respectivement les
positions de la tête et de la queue de la file
Représentation chaînée (par pointeurs) :
Les éléments de la file sont chaînés entre eux
Un pointeur sur le premier élément désigne la file
et représente la tête de cette file
Un pointeur sur le dernier élément représente la
queue de file
Une file vide est représentée par le pointeur NULL
Implémentation d’une file
3
On peut implémenter une file à l’aide de la même structuration qu’une
liste chainée
e1 e2 e3 e4@ @ @ NULL
*premier
@
*dernier
@
Et on mémorise le premier et le dernier élément
Les application des files
3
File chaînée
tete
File
10 20
50
Tête de la file pointée par
tete
Cellule contenant la
valeur 30
Pointeur sur cellule
suivante
Pointeur
NULLqueue
Queue de file pointée
par queue
Implémentation d’une File
3
Syntaxe pour définir la structure de la File
//Définir la structure cellule
typedef struct Element
{
int info ; //le champ info peut avoir n'importe quel type
struct Element *suiv ; //pointeur contenant l'adresse de l’élément suivant
} Element;
//Définir la structure File
typedef struct File
{
Element *premier;
Element *dernier;
} File;
Implémentation d’une file
3
Déclaration d’une file
File file; // En utilisant une variable statique
File *file; // En utilisant une variable dynamique
Opérations sur une file
3
Voici les primitives communément utilisées :
1. File FileVide(File F) : créer une file vide
2. int EstVide(File F) : renvoie vrai si la file est vide, faux sinon ;
3. Type PremierElement(File F) : renvoie le premier élément de type
Type de la File F;
4. File Emfiler(File F,Type v) : ajoute à la fin de la file F l’élément v de
type Type;
5. File Defiler(File F) : supprime de la file F le premier élément.
Implémentation d’une file
3
File FileVide()
File FileVide()
{
File F ;
F.premier = NULL ; ;
F.Dernier = NULL ;
return(F) ;
}
Implémentation d’une file
3
int EstVide()
int EstVide(File F)
{
if(F.premier==NULL)
return (1) ;
else
return (0) ;
}
Dans la suite on considère que Type est entier
Implémentation d’une file
3
int premierElement(File F)
int premierElement(File F)
{
if(Estvide(F)
printf("file vide!");
else
return F.premier->info;
}
Implémentation d’une file
3
Emfiler()
File Emfiler(File F,int v)
{
Element *nouv ;
nouv =(Element*)malloc(sizeof(Element)) ;
nouv ->info=v ;
nouv ->suiv=NULL ;
If Estvide(F)
{
F.premier=nouv;
F.dernier=nouv;
}
else
{
F.dernier->suivant=nouv;
F.dernier=nouv;
}
return(F) ;
}
Implémentation d’une file
3
Element defiler(File F)
File Defiler(File F)
{
Element *c;
If estvide(F)
{
Printf("file vide!");
return(NULL) ;
}
else
{
c=F->premier ;
F->premier=F->premier->suivant;
free(c) ;
return(F) ;
}
}

Contenu connexe

Tendances

Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage CMohamed Lahby
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap IIIInes Ouaz
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
Théorie des langages - 01 - Compilation
Théorie des langages - 01 - CompilationThéorie des langages - 01 - Compilation
Théorie des langages - 01 - CompilationYann Caron
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2yassine kchiri
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 

Tendances (20)

Les listes simplement chaînées en langage C
Les listes simplement chaînées en langage CLes listes simplement chaînées en langage C
Les listes simplement chaînées en langage C
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap III
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Théorie des langages - 01 - Compilation
Théorie des langages - 01 - CompilationThéorie des langages - 01 - Compilation
Théorie des langages - 01 - Compilation
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Travaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de DonnéesTravaux Dirigés : Algorithmique et Structure de Données
Travaux Dirigés : Algorithmique et Structure de Données
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 

Similaire à Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI

Pile et file ddd dcdsfv gfbg fdgfdg fdbdgfg
Pile et file ddd dcdsfv gfbg fdgfdg fdbdgfgPile et file ddd dcdsfv gfbg fdgfdg fdbdgfg
Pile et file ddd dcdsfv gfbg fdgfdg fdbdgfgNabil Alami
 
Cours sur les files et les piles assez complet
Cours sur les files et les piles assez completCours sur les files et les piles assez complet
Cours sur les files et les piles assez completAzizGueye1
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CSana REFAI
 
Cours C Avancé chapitre 2 et chapitre.pdf
Cours C Avancé  chapitre 2 et chapitre.pdfCours C Avancé  chapitre 2 et chapitre.pdf
Cours C Avancé chapitre 2 et chapitre.pdfc79024186
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Abib Faye
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 

Similaire à Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI (15)

Pile et file ddd dcdsfv gfbg fdgfdg fdbdgfg
Pile et file ddd dcdsfv gfbg fdgfdg fdbdgfgPile et file ddd dcdsfv gfbg fdgfdg fdbdgfg
Pile et file ddd dcdsfv gfbg fdgfdg fdbdgfg
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
 
Structures donneenew
Structures donneenewStructures donneenew
Structures donneenew
 
Cours sur les files et les piles assez complet
Cours sur les files et les piles assez completCours sur les files et les piles assez complet
Cours sur les files et les piles assez complet
 
pile file.pptx
pile file.pptxpile file.pptx
pile file.pptx
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et C
 
Cours C Avancé chapitre 2 et chapitre.pdf
Cours C Avancé  chapitre 2 et chapitre.pdfCours C Avancé  chapitre 2 et chapitre.pdf
Cours C Avancé chapitre 2 et chapitre.pdf
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5Python et la persistance de données — initiation python 1.5
Python et la persistance de données — initiation python 1.5
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 

Plus de Mansouri Khalifa

Cours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURICours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURICours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURIMansouri Khalifa
 
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURIMansouri Khalifa
 
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURIMansouri Khalifa
 
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURIMansouri Khalifa
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 
UML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriUML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriMansouri Khalifa
 
UML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriUML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriMansouri Khalifa
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
UML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouriUML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouriMansouri Khalifa
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriMansouri Khalifa
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
Systèmes d'Information dans les organisations
Systèmes d'Information dans les organisationsSystèmes d'Information dans les organisations
Systèmes d'Information dans les organisationsMansouri Khalifa
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIMansouri Khalifa
 

Plus de Mansouri Khalifa (16)

Cours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURICours bases de données partie 2 Prof. Khalifa MANSOURI
Cours bases de données partie 2 Prof. Khalifa MANSOURI
 
Cours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURICours bases de données partie 1 Prof. Khalifa MANSOURI
Cours bases de données partie 1 Prof. Khalifa MANSOURI
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 3 prof. Khalifa MANSOURI
 
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 2 prof. Khalifa MANSOURI
 
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 
UML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouriUML Part 6 diagramme etat transition mansouri
UML Part 6 diagramme etat transition mansouri
 
UML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouriUML Part 5- diagramme d'activités mansouri
UML Part 5- diagramme d'activités mansouri
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
UML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouriUML Part 3- diagramme de séquences mansouri
UML Part 3- diagramme de séquences mansouri
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Systèmes d'Information dans les organisations
Systèmes d'Information dans les organisationsSystèmes d'Information dans les organisations
Systèmes d'Information dans les organisations
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURI
 

Dernier

SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 

Dernier (20)

DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 

Cours Piles et files en utilisant lesl istes chainées Prof. KHALIFA MANSOURI

  • 1. Structures de données 1 Piles et Files En utilisant les listes chainées Prof. M. Khalifa MANSOURI Université Hassan II de Casablanca ENSET de Mohammedia Département Mathématiques et Informatique
  • 3. Les piles 3 Une pile (stack en anglais) est une structure dynamique dans laquelle l'insertion ou la suppression d'un élément s‘effectue toujours à partir de la même extrémité de cette structure. Cette extrémité est appelée le sommet de la pile. Définition
  • 4. Les piles 4 Une pile permet de modéliser un système régi par le mécanisme « dernier arrivé premier sorti » : (Lifo : last in, first out). Principe de LIFO • L'action pour ajouter un nouvel élément au sommet de la pile s'appelle Empiler • L’action pour retirer l‘élément situé au sommet de la pile s'appelle Dépiler
  • 5. Les application des piles 5 De nombreuse applications s'appuient sur l'utilisation d'une pile, on peut citer : • Dans un navigateur web, une pile sert à mémoriser les pages Web visitées. • L'adresse de chaque nouvelle page visitée est empilée et l'utilisateur dépile • l'adresse de la page précédente en cliquant le bouton « Afficher la page précédente ». • L‘évaluation des expressions mathématiques en notation post-fixée (ou polonaise inverse) utilise une pile. • La fonction « Annuler la frappe » (en anglais « Undo ») d'un traitement de texte mémorise les modifications apportées au texte dans une pile. • Vérification de parenthèse d'une chaine de caractères ; • La récursivité (une fonction qui fait appel a elle même) ; • etc.… Utilisation
  • 6. Les application des piles 6 Ajouter dans cet ordre A EB D FCA B C D E F Pile Exemple de Pile (1)
  • 7. Les application des piles 7 A B C D E F Pile Exemple de Pile (2)
  • 10. Implémentation d’une pile 1 Représentation d'une Pile Représentation contiguë (par tableau) : Les éléments de la pile sont rangés dans un tableau Un entier représente la position du sommet de la pile Représentation chaînée (par pointeurs) : Les éléments de la pile sont chaînés entre eux Un pointeur sur le premier élément désigne la pile et représente le sommet de cette pile Une pile vide est représentée par le pointeur NULL
  • 11. Implémentation d’une pile 1 On peut implémenter une pile à l’aide de la même structuration qu’une liste chainée e1 e2 e3 e4@ @ @ NULL *P @
  • 12. Implémentation d’une pile 1 Pile chaînée p Pile 10 20 50 Sommet de la pile pointée par p Cellule contenant la valeur 5 Pointeur sur cellule suivante Pointeur NULL
  • 13. Implémentation d’une pile 1 Syntaxe pour définir la structure de la pile //Définir la structure cellule typedef struct Element { int info ; //le champ info peut avoir n'importe quel type struct Element *suiv ; //pointeur contenant l'adresse de l’élément suivant } Element; Déclaration d’une pile Element pile; // En utilisant une variable statique Element *pile; // En utilisant une variable dynamique
  • 14. Opérations sur une pile 1 Voici les primitives communément utilisées : 1. Element *PileVide() : créer une pile vide 2. int EstVide(Element *p) : renvoie vrai si la pile est vide, faux sinon ; 3. Type Sommet(Element *p) : renvoie l‘élément sommet de type Type de la pile P ; 4. Element* Empiler(Element *p,Type v) : ajoute au sommet de la pile P l’élément v de type Type; 5. Element* Depiler(Element *P) : supprime de la pile P le sommet.
  • 15. Implémentation d’une pile 1 Element PileVide() Element PileVide() { return(NULL) ; }
  • 16. Implémentation d’une pile 1 int EstVide() int EstVide(Element *pile) { if(pile==NULL) return (1) ; else return (0) ; } Dans la suite on considère que Type est entier
  • 17. Implémentation d’une pile 1 sommet(P) int sommet(Element *p) { if(p==NULL) printf("pile vide!"); else return p->info; }
  • 18. Implémentation d’une pile 1 Element empiler() Element Empiler(Element *P,int v) { Element *nouv ; nouv =(Element*)malloc(sizeof(Element)) ; nouv ->info=v ; nouv ->suiv=p ; return(nouv) ; }
  • 19. Implémentation d’une pile 1 Element depiler(Element *p) Element Depiler(Element *P) { Element *c = p ; if(c==NULL) return(NULL) ; else { p = p -> suiv ; free(c) ; return(p) ; } }
  • 21. Les Files 2 Une File (queue en anglais ) est une structure de données dans laquelle l'insertion se fait à la fin et la suppression d'un élément s'effectue à partir de début de cette structure. Le fonctionnement ressemble à une file d'attente : les premières personnes arrivées, se sont les premières personnes à servir. Définition
  • 22. Les files 2 Une file permet de modéliser un système régi par le mécanisme "premier arrivé premier sorti" ; on dit souvent FIFO (First in, First out) Principe de FIFO •L'action pour ajouter un nouvel élément s'appelle Enfiler •L'action pour retirer l‘élément situe au début de la File s'appelle Défiler
  • 24. Les application des files 2 Ajouter dans cet ordre A EB D FCA B C D E F Exemple de File (1) Fil e
  • 25. Les application des files 2 A EB D FC Exemple de File (2) File
  • 26. Les application des files 2 • En général, on utilise des files pour mémoriser temporairement des transactions qui doivent attendre pour être traitées ; • Les serveurs d'impression, qui doivent traiter les requêtes dans l'ordre dans lequel elles arrivent, et les insèrent dans une file d'attente ( ou une queue) ; • Certains moteurs multitâches, dans un système d'exploitation, qui doivent accorder du temps-machine a chaque tâche, sans en privilégier aucune ; • Un algorithme de parcours en largeur utilise une file pour mémoriser les nœuds visités ; • On utilise aussi des files pour créer toutes sortes de mémoires tampons (en anglais buffers). • etc.… Utilisation
  • 29. Les application des files 2 Représentation d'une File Représentation contiguë (par tableau) : Les éléments de la file sont rangés dans un tableau Deux entiers représentent respectivement les positions de la tête et de la queue de la file Représentation chaînée (par pointeurs) : Les éléments de la file sont chaînés entre eux Un pointeur sur le premier élément désigne la file et représente la tête de cette file Un pointeur sur le dernier élément représente la queue de file Une file vide est représentée par le pointeur NULL
  • 30. Implémentation d’une file 3 On peut implémenter une file à l’aide de la même structuration qu’une liste chainée e1 e2 e3 e4@ @ @ NULL *premier @ *dernier @ Et on mémorise le premier et le dernier élément
  • 31. Les application des files 3 File chaînée tete File 10 20 50 Tête de la file pointée par tete Cellule contenant la valeur 30 Pointeur sur cellule suivante Pointeur NULLqueue Queue de file pointée par queue
  • 32. Implémentation d’une File 3 Syntaxe pour définir la structure de la File //Définir la structure cellule typedef struct Element { int info ; //le champ info peut avoir n'importe quel type struct Element *suiv ; //pointeur contenant l'adresse de l’élément suivant } Element; //Définir la structure File typedef struct File { Element *premier; Element *dernier; } File;
  • 33. Implémentation d’une file 3 Déclaration d’une file File file; // En utilisant une variable statique File *file; // En utilisant une variable dynamique
  • 34. Opérations sur une file 3 Voici les primitives communément utilisées : 1. File FileVide(File F) : créer une file vide 2. int EstVide(File F) : renvoie vrai si la file est vide, faux sinon ; 3. Type PremierElement(File F) : renvoie le premier élément de type Type de la File F; 4. File Emfiler(File F,Type v) : ajoute à la fin de la file F l’élément v de type Type; 5. File Defiler(File F) : supprime de la file F le premier élément.
  • 35. Implémentation d’une file 3 File FileVide() File FileVide() { File F ; F.premier = NULL ; ; F.Dernier = NULL ; return(F) ; }
  • 36. Implémentation d’une file 3 int EstVide() int EstVide(File F) { if(F.premier==NULL) return (1) ; else return (0) ; } Dans la suite on considère que Type est entier
  • 37. Implémentation d’une file 3 int premierElement(File F) int premierElement(File F) { if(Estvide(F) printf("file vide!"); else return F.premier->info; }
  • 38. Implémentation d’une file 3 Emfiler() File Emfiler(File F,int v) { Element *nouv ; nouv =(Element*)malloc(sizeof(Element)) ; nouv ->info=v ; nouv ->suiv=NULL ; If Estvide(F) { F.premier=nouv; F.dernier=nouv; } else { F.dernier->suivant=nouv; F.dernier=nouv; } return(F) ; }
  • 39. Implémentation d’une file 3 Element defiler(File F) File Defiler(File F) { Element *c; If estvide(F) { Printf("file vide!"); return(NULL) ; } else { c=F->premier ; F->premier=F->premier->suivant; free(c) ; return(F) ; } }