SlideShare une entreprise Scribd logo
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

Fiche TD sur les systèmes informatiques
Fiche TD sur les systèmes informatiquesFiche TD sur les systèmes informatiques
Fiche TD sur les systèmes informatiques
ATPENSC-Group
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac
Amri Ossama
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
Lilia Sfaxi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
Amir Souissi
 
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
Anass41
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
Yassine Badri
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
Amir Souissi
 
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
Ines Ouaz
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2yassine kchiri
 
Programme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire auProgramme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire auHanfi Akram
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
wafawafa52
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
AmineMouhout1
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
Shellmates
 

Tendances (20)

Fiche TD sur les systèmes informatiques
Fiche TD sur les systèmes informatiquesFiche TD sur les systèmes informatiques
Fiche TD sur les systèmes informatiques
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours complet Base de donne Bac
Cours complet Base de donne Bac Cours complet Base de donne Bac
Cours complet Base de donne Bac
 
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
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
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
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
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
 
Correction de td poo n2
Correction de td poo n2Correction de td poo n2
Correction de td poo n2
 
Programme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire auProgramme d’informatique pour la 2ème année secondaire au
Programme d’informatique pour la 2ème année secondaire au
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 

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

Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
Sana REFAI
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
Sana REFAI
 
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
Nabil Alami
 
Structures donneenew
Structures donneenewStructures donneenew
Structures donneenew
Rachid Lajouad
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
Rachid Lajouad
 
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
AzizGueye1
 
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
Sana 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.pdf
c79024186
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
Abdoulaye Dieng
 
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 java
Amir 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 2
Mathieu 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
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
Jaouad Rachek
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
Fatima Zahra Fagroud
 

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

Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
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 donneenew
Structures donneenewStructures donneenew
Structures donneenew
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
 
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
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
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 MANSOURI
Mansouri 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 MANSOURI
Mansouri 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 MANSOURI
Mansouri 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 MANSOURI
Mansouri 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 MANSOURI
Mansouri 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 MANSOURI
Mansouri 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 MANSOURI
Mansouri 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 mansouri
Mansouri 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 mansouri
Mansouri 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 mansouri
Mansouri 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 mansouri
Mansouri 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_mansouri
Mansouri Khalifa
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
Mansouri 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 organisations
Mansouri Khalifa
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURI
Mansouri 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

Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
elfangourabdelouahab
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
MedBechir
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
schneiderbeatrice78
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
Txaruka
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
LamoussaPaulOuattara1
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
bibliogard
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
Txaruka
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 

Dernier (16)

Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 

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) ; } }