Université de Douala
Faculté des Sciences
Licence 3 Informatique
INF315
2024 - 2025
LES STRUCTURES DE
DONNEES LINEAIRES :LES
FILES
Realisé par : Tcheutchoua Fonguele Ryan Axel
(22S74587)
Table des matières
I. Généralités ............................................................................... 3
II. Les tableaux ............................................................................. 4
a. Declaration ............................................................................ 4
b. Méthodes .............................................................................. 4
III. Les Listes chaînées ................................................................. 5
a. Declaration ............................................................................ 5
b. Méthodes .............................................................................. 5
Realisé par : Tcheutchoua Fonguele Ryan Axel (22S74587)
1
Préface
Ce document a été conçu pour répondre au devoir donne par notre cher
professeur d’Algorithmique. Après avoir fait le cours sur les piles, il était question
de faire un cours semblable sur les files, que voici.
La structure de ce cours suit explicitement la structure du cours sur les piles
donné par notre professeur, et ceci est la preuve de son travail efficace car sans
trop exagérer, c’est un de nos meilleurs professeurs et il a une particularité dans
le sens où il se rassure toujours que ses étudiants ont bien compris son cours. Il
prend du temps pour revenir sur des aspects mal compris, est ouvert aux
questions des étudiants, explique les leçons a un très bas niveau d’abstraction et
avec des exemples pratiques, afin que nous, étudiants en Licence 3 informatique
a l’université de Douala soyons prêts à éduquer et aider nos cadets dans leurs
difficultés en n’emporte quel aspect de la notion d’Algorithmique
Ce qui suit est la réalisation de mon travail personnel pour répondre au devoir
de mon bienaimé professeur
Realisé par : Tcheutchoua Fonguele Ryan Axel (22S74587)
2
1. Généralités
Une file est une structure de données linéaire dans laquelle les éléments sont ajoutés à
une des extrémités et retirés à l’autre extrémité. Ce qui confère à cette structure une
propriété particulière est que le premier élément a retirer sera toujours le premier
entré. Cette structure suit l’algorithme FIFO (First in First out)
La figure suivante schématise une file
taille()
sommet()
estVide()
On a les méthodes suivantes
enfiler : (Pile, Element) —> Pile
défiler : (Pile) —> Pile
taile : (Pile) —> Entier
estVide : (Pile) —> Booléen
sommet : (Pile) —> Element
Nous allons implémenter une file à l’aide des tableaux d’abord puis des pointeurs
Realisé par : Tcheutchoua Fonguele Ryan Axel (22S74587)
3
2. Les tableaux
a. Declaration
const Nmax
type Elements = Tableau[1..Nmax] d’entiers
File = Enregistrement
data: Elements
head: entier
tail: entier
finEnregistrement
b. Méthodes
Procédure initialiser(var F: File) Procédure défiler(var F: File)
Debut Debut
[Link]<—0 si(estVide(F) <> Vrai) faire
[Link]<—0 F->tail <— (F->tail)mod(Nmax)
Fin finsi
Fin
Procédure enfiler(var F: File, x:
entier)
Fonction sommet(F: File)
Debut
Debut
si(taille(F) <> Nmax) faire
return F->data[F->head]
F->head <— (F->head+1)mod(Nmax)
Fin
F->data[F->head] <— x
finsi
Fonction estVide(F: File)
Fin
Debut
return F->head = F->tail
Fonction taille(F: File)
Fin
Debut
return F->head ≥ F->tail ? F->head
- F->tail : (F->head - F->tail +
Nmax)mod(Nmax)
Fin
Realisé par : Tcheutchoua Fonguele Ryan Axel (22S74587)
4
3. Les Listes chaînées
a. Declaration
Noeud = Enregistrement File = Enregistrement
value:entier head: ^Noeud
target: ^Noeud tail: ^Noeud
finEnregistrement finEnregistrement
b. Méthodes
Procedure initialiser(var F: File) Fonction sommet(F: File): entier
Debut Debut
F->head <— NULL return F->head->value
F->tail <— [Link] Fin
Fin
Fonction taille(F: File)
Procédure enfiler(var F: File, x: Debut
entier)
var i = 0
Debut
tantque (F->tail <> NULL) faire
var y = malloc(sizeOf(Noeud))
i++
y->value <— x
F->tail <— F->tail->target
y->target <— NULL
ftque
F->head <— y
return i
if(F->tail = NULL)F->tail <—
F->head Fin
Fin
Fonction estVide(F: File)
Procédure défiler(var F: File) Debut
Debut return F->tail = NULL
F->tail <— F->tail->target Fin
Fin
Realisé par : Tcheutchoua Fonguele Ryan Axel (22S74587)