Algo_Structures de données(Piles)

16
Algorithme/ Structure de données : Piles Université Mohamed I École Supérieure de Technologie Département d’Informatique Oujda Présenté par: BRAZI Kawtar, BENAISSA Safae et EL ABBASSI Soufyane Année universitaire: 2010/ 2011

Transcript of Algo_Structures de données(Piles)

Page 1: Algo_Structures de données(Piles)

Algorithme/ Structure de

données : Piles

Université Mohamed I

École Supérieure de Technologie

Département d’Informatique

Oujda

Présenté par:

BRAZI Kawtar, BENAISSA Safae

et EL ABBASSI Soufyane

Année universitaire: 2010/ 2011

Page 2: Algo_Structures de données(Piles)

Comprendre la notion d’algorithme

Savoir le représenter et comprendre sa structure

Comprendre la notion des piles en informatique

Comprendre l’algorithme des piles

Objectifs :

Page 3: Algo_Structures de données(Piles)

Première partie: Algorithme

1. Origine du mot « Algorithme ».

2. Définition d’un algorithme.

3. Structure d’un algorithme.

4. Représentation d’un algorithme. (Algorithme d’Euclide)

Deuxième partie: Structures de données : les piles

1. Définition d’une pile.

2. Primitives de manipulation d’une pile.

3. Algorithme d’une pile.

4. Exemple d’utilisation.

5. Les piles en langages de programmation .

Plan :

Page 4: Algo_Structures de données(Piles)

Algorithme Première partie :

Page 5: Algo_Structures de données(Piles)

Le mot algorithme

vient du nom du

mathématicien perse

du 9ième siècle Al

Khawarizmi (latinisé au

Moyen Âge en

Algoritmi).

1. Origine du mot « Algorithme »

Page 6: Algo_Structures de données(Piles)

Définition courante: Un ensemble d'instructions pour

résoudre un problème.

Un algorithme est souvent exprimé avec une notation

indépendante de tout langage de programmation.

Un algorithme doit toujours se terminer avec un résultat.

Un algorithme est donc une méthode pour résoudre un

problème particulier dont on est sûr qu'elle trouve

toujours une réponse en un temps fini.

2. Définition d’un algorithme

Page 7: Algo_Structures de données(Piles)

Un algorithme a à peu près toujours la même organisation générale. Trois grandes parties se distinguent :

Le nom de l’algorithme. Partie déclaration: déclaration des variables

et des constantes. Partie traitement : actions, conditions…

regroupées dans des sections « DEBUT… FIN ».

3. Structure d’un algorithme

Page 8: Algo_Structures de données(Piles)

Pour représenter un algorithme, on peut utiliser deux méthodes :

En organigramme de programmation : une

représentation graphique d’un algorithme, utilisée pour analyser un problème. Cet organigramme utilise des symboles normalisés.

En pseudo-code : permet souvent de bien prendre toute la mesure de la difficulté de la mise en œuvre de l'algorithme. Son aspect descriptif permet de décrire avec en détail l'algorithme.

4. Représentation d’un

algorithme

Page 9: Algo_Structures de données(Piles)

L’organigramme de programmation de la solution

Le pseudo-code de la solution

4. Représentation d’un

algorithme (Exemple)

Page 10: Algo_Structures de données(Piles)

Structures de données:

Les piles

Deuxième partie :

Page 11: Algo_Structures de données(Piles)

En informatique, une pile

(en anglais stack) est une

structure de données

fondée sur le principe

« dernier arrivé, premier

sorti » (ou LIFO pour Last In,

First Out), ce qui veut dire

que les derniers éléments

ajoutés à la pile seront les

premiers à être récupérés.

1. Définition d’une pile

Page 12: Algo_Structures de données(Piles)

Voici les primitives communément utilisées pour manipuler des piles. Il

n'existe pas de normalisation pour les primitives de manipulation de pile.

« Empiler » : ajoute un élément sur la pile. Terme anglais

correspondant : « Push ».

« Dépiler » : enlève un élément de la pile et le renvoie.

Terme anglais correspondant : « Pop ».

« La pile est-elle vide ? » : renvoie vrai si la pile est vide,

faux sinon.

« Nombre d'éléments de la pile » : renvoie le nombre

d'éléments dans la pile.

2. Primitives de manipulation

d’une pile

Page 13: Algo_Structures de données(Piles)

Procédure PUSH (objet : element)

Début

Si sommet < max Alors

sommet <- sommet + 1

pile[sommet] <- element

Sinon

Afficher "Pile pleine"

Fin Si

Fin

3. Algorithme d’une pile

Fonction POP () : objet

objet : element

Début

Si non vide() Alors

element <- pile[sommet]

Sommet <- Sommet - 1

Sinon

Afficher "Pile vide"

Fin Si

Retourner element

Fin

Ajouter un élément sur la pile Enlever un élément de la pile

Page 14: Algo_Structures de données(Piles)

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 utilise une pile.

La fonction « Annuler la frappe » d'un traitement de texte

mémorise les modifications apportées au texte dans une

pile.

4. Exemples d’utilisation

Page 16: Algo_Structures de données(Piles)

Merci pour votre attention !