1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| /*
* MODULE file : file.h
*
* Description
* le file.h est un module presentant des files chainées
*en utilisant des listes chainées.
*
*
* Type file
* La structure contient deux pointeurs : le premier pointe sur
* le premier element de la file, le dernier pointe sur le dernier.
* On represente chaque element de la file par une structure
* Cela facilite les ajouts. Chaque element de la file est represente
* par une structure cellule comportant deux champs : la valeur de
* l'element obj et un pointeur sur l'element suivant.
*/
#include<stdio.h>
#include<stdlib.h>
#ifndef FILE_H
#define FILE_H
typedef int element;
typedef struct cellule
{
element valeur;
struct cellule *suivant;
} cellule;
typedef struct {
cellule *tete;
cellule *queue;
} file;
void file_vide(file *f);
int file_est_vide(file *f);
file enfiler(file *f, element e);
file defiler(file *f);
element sommet(file *f);
void AfficherFile(file *f);
void Detruire(file *f);
/* PROCEDURE : file_vide()
* PARAMETRES :
* DESCRIPTION
* On fait vider la file de son contenu.
* Les champs premier(tete) et dernier(queue) sont initialise
* a NULL
* PRECONDITIONS
*/
/* PROCEDURE : creer
* PARAMATRE :
* DESCRIPTIF
* Dans le cas de la liste chaine on se contente de faire appel
* a la fonction initialser.
void Initialiser(TFile *file);
*/
#define creer(f) file_vide()
/* PROCEDURE : file_est_vide.
* PARAMATRE :
* 1) resultat file f.
* DESCRIPTIF :
* On fait un test. On teste si la file
* est vide, si oui on return 1(vrai), sinon
* on retourne 0 (faux).
*PRECONDTION
*/
int file_est_vide(file *f);
/* PROCEDURE : enfiler
* PARAMETRE : file f, element e
* DESCRIPTIF :
* On ajoute a la file courante un nouveau
* element. On l'ajoute en tete de la file.
* PRECONDITION
* Il est necessaire de faire un teste pour
* verifier la validite de la file: c'est a dire
* si on a de la memoire ou pas.
*/
file enfiler(file *f, element e);
/* PROCEDURE : defiler
* PARAMETRES :
* 1) resultat file f;
* 2) resultat cellule e.
* DESCRIPTION
* La valeur de l'element en debut de liste
* est place dans le parametre p. le premier
* element est supprime
* et la liste mise a jour
* PRECONDITION
* file doit correspondre a une file valide
* et non vide
*
*/
file defiler(file *f);
/* PROCEDURE : Afficher
* PARAMETRES :
* 1) resultat file *f
* DESCRIPTION
* Affiche a l'ecran le contenu de la file
* PRECONDITIONS
* la file doit etre valide
*/
void AfficherFile(file *f);
/* FONCTION : Sommet
* PARAMETRES :
* 1) resultat file *f
* RETOUR : element
* DESCRIPTION
* retourne la valeur du premier reel de la
* liste.
* La liste n'est pas modifiee
* PRECONDITIONS
* file doit etre valide et non vide
*/
element sommet(file *f);
/* PROCEDURE : Detruire
* PARAMETRES :
* 1) resultat file *f
* DESCRIPTION
* Detruit la file fournie en parametre.
* La memoire occupee par les elements de
* la liste est recuperee
* On remit a niveau la file.
* PRECONDITIONS
* la file doit etre valide
*/
void Detruire(file *f);
#endif |
Partager