Vous êtes sur la page 1sur 48

n 9 Structures de vue densemble Leon n.

1 Introduction etdonnes linaires : les files dattente

Structures de donnes

STRUCTURES DE DONNES
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

STRUCTURES DE DONNES LINAIRES:


FILES DATTENTE

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Plan de la leon
TDA files d'attente Oprations sur une file Les files circulaires

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente


Pourquoi
Mettre en attente des informations pour excution

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente


Comment
Stratgie FIFO: First In First Out La premire information tre rcupre est celle qui a t mise en attente en premier
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente


Domaine d'utilisation
Les problmes qui suivent une stratgie FIFO peuvent tre rsolus en utilisant une structure de donnes File
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente


Domaine d'utilisation
Accs un dispositif priphrique
Gestions des fichiers imprimer

Gestion des processus/multitche


Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente


Dfinition
Ensemble d'lments de mme type Insertion par une extrmit et suppression par une autre
File Insertion
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

Suppression

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

TDA files d'attente


Oprations sur une file
Initialiser une file dattente vide Indiquer si la file dattente est vide Ajouter un nouvel lment en queue de la file Rcuprer l'lment en tte de la file
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Reprsentation squentielle
#define Max 100 #define element int struct fileAttente { element t[100]; } q;
nbC-1
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

int nbC;

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Initialiser une file dattente vide

void raz() { q.nbC = 0; return; }

nbC==0
t

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Indiquer si la file dattente est vide
int vide() { return ( q.nbC != 0); }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Ajouter un lment en queue
t

nbC-1 x
Prof. A. EL FAKER

Insertion
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Ajouter un lment en queue
t vec

x x
Prof. A. EL FAKER

nbC-1 nbE-1

Insertion
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Ajouter un lment en queue
t vec x nbC-1 nbE-1 x
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

Insertion

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Ajouter un lment en queue
t

x
nbC-1 0

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Ajouter un lment en queue boolean ajouter(int noCl) { if( q.nbC >= Max) return false; q.t[nbC] =noCl; q.nbC++; return true; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Rcuprer l'lment en tte
nbC-1 0 t

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Rcuprer l'lment en tte
nbC-1 nbE-1 0 t vec

x
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Rcuprer l'lment en tte
nbE-1 nbC-1 0 t vec

x
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Rcuprer l'lment en tte void servir(void) { Servir un client if( ! vide() ) { printf("Je sert le client %d\n", q.t[0]); for(i=1; i<q.nbC; i++) q.t[i-1] = q.t[i]; q.nbC --;} }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Amlioration Ne rien dplacer

fin

debut

Prochain client ajouter


Prof. A. EL FAKER

Prochain client servir

ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Servir un client
void servir(void) { if( ! vide() ) { printf("Je sert le client %d\n", q.t[q.debut]); q.debut++; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Oprations sur une file


Problme
On risque de dpasser la capacit alors quil reste encore de la place

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


out in Emplacement Libre pour le prochain lment
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

Llment de tte

vec

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Dclaration
#define Max 100 #define element int struct fileCirculaire { element t[Max]; int in, out; bool plein; } q;
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Initialiser une file vide
void raz() { q.in = 0; q.out = 0; q.plein = false; return; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

q.t

in=out=0

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Indiquer si la file est vide
boolean vide() { return ( (q. in == q.out ) && (q.plein == false) ); }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

q.t

out=in=0

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Ajouter un nouvel lment
boolean ajouter(int noCl) { if( q.plein) return false; q.t[q.in] = noCl; q.in=(q.in +1)% Max; q.plein=(q.in== q.out); return true; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

in

out

q.t

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Rcuprer l'lment en tte
void servir(void) { if( ! vide() ) { printf("Je sert %d\n", q.t[q.out]); q.out=(q.out +1)%Max; q.plein = false; }
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

in

out

q.t

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Affichage des lments de la file
void printFileCirculaire(void) { int i=q.out; do { printf("%d\t",q.t[i]); i=(i+1)%Max; }while(i != q.in ); return; } Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


Exercice
Dcrire les oprations suivantes sur une file dattente
insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

in out plein== false


Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

0
out in

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

0
out

1
in

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

0
out

3
in

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

2
out

3
in

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

2
out

4
in

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

4
out

in

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

0
in

4
out

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Les files circulaires


insere(0);insere(1);insere(2);insere(3); ote(); ote(); insere(4);ote();ote();insere(5);insere(6);

1
in

4
out

plein== false
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Discussion
Priorit
Clients qui arrivent dans la file mais avec une priorit. On doit servir ... le 10

Rorganiser les autres pour prparer le client suivant


Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Discussion
Priorit

3 10 1 6 8 9

2 0

Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

Discussion
Cest comme cela que sont grs
Les impressions en Unix Lordonnanceur du systme
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI

n 9 Structures de vue densemble Leon n. 1 Introduction etdonnes linaires : les files dattente

Structures de donnes

STRUCTURES DE DONNES
Prof. A. EL FAKER
ENSIAS - UNIVERSITE MOHAMMED V SOUISSI