Sie sind auf Seite 1von 17

Etudier les structures de donnes linaires

Piles, Files

Objectifs

tude des structures de donnes linaires : piles, files


Une structure linaire est un arrangement linaire d'lments lis par la relation successeur Exemple : Un tableau (la relation successeur est implicite). Pour chaque structure, on prsente :

une dfinition abstraite ; les diffrentes reprsentations en mmoire ; une implmentation en langage C ; quelques applications.

Les Piles (Stacks)

Notion de Pile (Stack)

Les piles sont trs utilises en informatique Notion intuitive :

pile d'assiettes, pile de dossiers traiter,

Une pile est une structure linaire permettant de stocker et de restaurer des donnes selon un ordre LIFO (Last In, First Out ou dernier entr, premier sorti ) Dans une pile :

Les insertions (empilements) et les suppressions (dpilements) sont restreintes une extrmit appele sommet de la pile.

Empiler B Empiler A

Exemple de Pile
Empiler E Empiler C Empiler D Dpiler D

sommet D sommet C sommet E sommet A sommet B

A B

E A B

C sommet C E E A A B B

Exemple de Pile (1)

Ajouter dans cet ordre

Pile

Exemple de Pile (2)

F E D

C B
A

Pile

Oprations sur une Pile

pile_vide : Pile opration d'initialisation ; la pile cre est vide est_vide : Pile Boolen teste si pile vide ou non sommet : Pile Elment permet de consulter l'lment situ au sommet ; n'a pas de sens si pile vide empiler : Pile x Elment Pile ajoute un lment dans la pile dpiler : Pile Pile enlve l'lment situ au sommet de la pile ; n'a pas de sens si pile vide

Reprsentation d'une Pile

Reprsentation contigu (par tableau) :

Les lments de la pile sont rangs dans un tableau Un entier reprsente la position du sommet de la pile

Reprsentation chane (par pointeurs) :


Les lments de la pile sont chans entre eux Un pointeur sur le premier lment dsigne la pile et reprsente le sommet de cette pile Une pile vide est reprsente par le pointeur NULL

Pile Contigu
Pil e

6 5 4 10 20 5 3 2 1

/* Pile contigu en C */ // taille maximale pile #define MAX_PILE 7 // type des lments typedef int Element; // type Pile typedef struct { Element elements[MAX_PILE]; int sommet; } Pile;

3
sommet

50 0 Tableau de taille maximale 7 elements

Les Files (Queues)

Notion de File (Queue)


Les files sont trs utilises en informatique Notion intuitive :

File d'attente un guichet, file de documents imprimer,

Une file est une structure linaire permettant de stocker et de restaurer des donnes selon un ordre FIFO (First In, First Out ou premier entr, premier sorti ) Dans une file :

Les insertions (enfilements) se font une extrmit appele queue de la file et les suppressions (dfilements) se font l'autre extrmit appele tte de la file

Enfiler B Enfiler A

Exemple de File
Enfiler E Enfiler C Enfiler D Dfiler B

queue queue queue queue queue tte B

A tte B

E A tte B

C E A tte B

D queue C D E C A E tte B tte A

Exemple de File (1)

Ajouter dans cet ordre

File

Exemple de File (2)

File

Oprations sur une File

file_vide : File opration d'initialisation ; la file cre est vide est_vide : File Boolen teste si file vide ou non tte : File Elment permet de consulter l'lment situ en tte de file ; n'a pas de sens si file vide enfiler : File x Elment File ajoute un lment dans la file dfiler : File File enlve l'lment situ en tte de file ; n'a pas de sens si file vide

Reprsentation d'une File

Reprsentation contigu (par tableau) :

Les lments de la file sont rangs dans un tableau Deux entiers reprsentent respectivement les positions de la tte et de la queue de la file

Reprsentation chane (par pointeurs) :


Les lments de la file sont chans entre eux Un pointeur sur le premier lment dsigne la file et reprsente la tte de cette file Un pointeur sur le dernier lment reprsente la queue de file Une file vide est reprsente par le pointeur NULL

Das könnte Ihnen auch gefallen