Académique Documents
Professionnel Documents
Culture Documents
#define TABFILE_H_INCLUDED
#define m 4
/ Puisque le nombre des catégories est connu d’avance ,on le déclare dans la partie
interface pour être visible à l’utilisateur/
struct element{
int cle;
};
struct file{
};
void cree_tab (struct file* []); / opération de création d’une tableau des adresses des files/
void ajout(struct file*[],int, unsigned); / opération d’adjonction d’un entier à la file de catégorie
donnéé /
#endif // TABFILE_H_INCLUDED
TabFile.c : implementation
#include<malloc.h>
#include<assert.h>
#include"Tabfile.h"
#include<stdio.h>
f->tete=NULL;
f->queue=NULL;
return((f.tete==NULL)&&(f.queue==NULL));
static int premier(struct file f) / retourne le 1er entier enfilé dans la file/
{
assert(!vide_f(f));
return(f.tete->cle);
static void enfiler(int x,struct file *f) / adjunction d’un entire à la file/
{
q->cle=x;
q->suivant=NULL;
if(vide_f(*f))
f->tete=q;
else
f->queue->suivant=q;
f->queue=q;
assert(!vide_f(*f));
q=f->tete;
f->tete=f->tete->suivant;
if (f->tete==NULL)
f->queue=NULL;
free(q);
void cree_tab(struct file* f[]) / struct file* f[] : un tableau d’adresses des files/
{
unsigned i;
for(i=0;i<m;i++)
unsigned vide(struct file* f[]) / parcourir tout le tableau et consulter chaque file est ce qu’elle est
vide ou non /
unsigned i=0;
while(i<m)
if (!vide_f(*f[i]))
return 0;
i++;
}
return 1;
void ajout(struct file* f[],int a,unsigned c) / adjonction d'un entier a au ensemble classé en catégorie
c donnée /
enfiler(a,f[c]);
void supprime(struct file* f[],unsigned c)/ suppression de premier entier de l'ensemble classé en
catégorie c donnée /
defiler(f[c]);