0% ont trouvé ce document utile (0 vote)
32 vues4 pages

Chapitre 4

Transféré par

abdel2moha2005
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues4 pages

Chapitre 4

Transféré par

abdel2moha2005
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique et structure de données 1

2 ème informatique

Chapitre 5
Structure de données : Files
1. Définition et types

La file d’attente est une structure qui permet de stocker des éléments dans un ordre donné et
de les retirer dans le même ordre, c’est à dire selon le protocole FIFO ’first in first out’.

« On ajoute toujours un élément en queue de liste et on retire celui qui est en tête ».

Selon le type d’implémentation, on distingue deux types de files:

 File statique (contiguë): Implémentation par un tableau.


 File dynamique: Implémentation par une liste chainée

2. Files statiques

2.1. Définition de type :


La définition du type File (statique) est comme suit :

Type Structure Pile


début
Tab: Tableau[MAX] d'Éléments ;

Tête : entier ; // indice de premier de la File.


Queue: entier ; // indice de dernier élément inséré dans la File.
Fin
L’implémentation de files statiques peut être réalisée par décalage en utilisant un tableau
avec une tête fixe, toujours à 1, et une queue variable. Elle peut être aussi réalisée par flot en
utilisant un tableau circulaire où la tête et la queue sont toutes les deux variables

2.2. Implémentation par tableau (Par décalage)


Tête fixe et queue variable. Elle soufre du problème de décalage à chaque défilement.

8
- La file est vide si Queue = 0
- La file est pleine si Queue = Max

2.3. Implémentation par tableau circulaire


La file est représentée par un tableau circulaire (tête est variable et queue variable).

La file est vide si Tête = Queue


La file est pleine si (Queue + 1) mod Max = Tête

3. Files dynamiques
C’est une Liste chainée où le défilement se fait seulement à la tête et l’enfilement se fait
seulement à la queue de la liste.

9
3.1. Définition de type File dynamique
La définition du type File (dynamique) estcomme suit :

Type

Structure Maillion
Ele : typeq;
suivant: * Maillion;

fin
Type Structure File
Début
Tête : *Maillon ; // Gade l’adresse de la tête de la File.
Queue: *Maillon; // Gade l’adresse ddernier élément inséré dans la File.

Fin
Dans le langage C++, on définira le type File (dynamique) comme suit :

struct maillon {
type ele; // typeqq
maillon *suivant;
}
struct file {
maillon * tete;
maillon * queue;
}

3.2. Opérations primitives


 Est_vide: retourne vrai si la file est vide sinon retourne faux.
Fonction est_vide (F: File): booléen
Début
Retourner ([Link] ==NIL);
Fin

 Tête (F: File) : retourne l’élément existe dans l’entête de la File (Le premier élément
enfilé).

Fonction tete (F: File): entier


début
Retourne ([Link] -> ele);
Fin

10
 Enfiler : ajoute un élément en queue de la file.

Procedure enfiler (var F: File, x: typeq)


P: *maillon
Début
P  créer_maillon (x);
Si (est_vide (F)) alors
[Link]  P;
[Link]  P;
Sinon
F. Queue -> suivant = P;
[Link]  P;
Finsi
Fin
 Défiler : supprime le premier élément (la tète) de la file.
Procedure défiler (var F: File)
P: *maillon
Début
Si( ! est_vide (f))
P  F.tête;
[Link]  [Link] ->suivant;
libérer (p);
Si ([Link] =Nil) alors
[Link] Nil;
Finsi
Finsi
Fin

 La fonction taille: retourne le nombre d’éléments déjà enfilés dans la pile.


fonction Taille (File : Pile) :entier
Courant : *Maillon
n : entier ;
Début
Courant  P ; n=0 ;
Tantque (courant != NIL)

n++;
courant = courant->suivant ;
fin tantque
Retourner n ;
fin

11

Vous aimerez peut-être aussi