A voir également:
- Projet scolaire ... a l'aide !
- Rentrée scolaire - Guide
- Musique projet x ✓ - Forum Musique / Radio / Clip
- Filigrane projet - Guide
- Récupérer bulletin scolaire sur internet - Forum Vos droits sur internet
- Film projet x a telecharger gratuitement - Télécharger - Outils professionnels
2 réponses
anisbennaceur
Messages postés
2
Date d'inscription
mercredi 4 avril 2012
Statut
Membre
Dernière intervention
4 avril 2012
4 avril 2012 à 23:37
4 avril 2012 à 23:37
PARTIE 1
Les files d'attentes sont des structures de données dont la gestion se fait en FIFO
(First In First Out) :
* l'ajout dans une file = enfiler : se fait toujours à la fin
* la suppression dans une file = défiler : se fait toujours au début
Travail demandé
Implémenter les primitives suivantes pour les files (FILEPRIM.h) d'une manière
simplement chainée (vous pouvez profiter de l'implémentation simplement chainée
des listes)
File fileCreer(void);
void fileDetruire (File);
int estVide(File);
int estSaturee(File);
int fileTaille(File);
ELEMENT Sommet(File);
int Enfiler(File, ELEMENT);
ELEMENT Defiler(File);
void fileAfficher(File);
File fileCopier(File);
int fileComparer(File, File);
Les files d'attentes sont des structures de données dont la gestion se fait en FIFO
(First In First Out) :
* l'ajout dans une file = enfiler : se fait toujours à la fin
* la suppression dans une file = défiler : se fait toujours au début
Travail demandé
Implémenter les primitives suivantes pour les files (FILEPRIM.h) d'une manière
simplement chainée (vous pouvez profiter de l'implémentation simplement chainée
des listes)
File fileCreer(void);
void fileDetruire (File);
int estVide(File);
int estSaturee(File);
int fileTaille(File);
ELEMENT Sommet(File);
int Enfiler(File, ELEMENT);
ELEMENT Defiler(File);
void fileAfficher(File);
File fileCopier(File);
int fileComparer(File, File);
4 avril 2012 à 23:42
* Fichier : FILETAB.C
* Contenu : Définition des primitives pour une réalisation
* par tableau du TDA FILE.
**************************************************************************/
#include <stdlib.h>
#include <stdio.h>
#include "FILEPRIM.H"
NOEUD noeudCreer(ELEMENT e){
NOEUD n;
n =(NOEUD)malloc(sizeof(structNoeud));
if(!n)
printf ("\nPlus d'espace");
else
{
elementAffecter(&n->info, e);
n->suivant = NULL;
}
return n;
}
void noeudDetruire(NOEUD n){
elementDetruire(n->info);
free(n);
}
//File fileCreer(void)
File fileCreer(void)
{File f;
f = (File) malloc(sizeof(laStruct));
if(!f) {
printf(" \nProblème de mémoire") ;
}
else
{
f->debut=0;
f->fin=0;
}
return(f);
}
//void fileDetruire (File f)
void fileDetruire (File f)
{NOEUD n = f->debut;
while (n!= NULL)
{
f->debut=n->suivant;
noeudDetruire(n);
n = f->debut;
}
free(f);
}
//int estVide(File f)
int estVide(File f)
{
return (f->debut == 0);
}
//int estSaturee(File)
int estSaturee(File f)
{
NOEUD temp;
int saturee = 1; /* on suppose mémoire saturée */
temp = (NOEUD) malloc ( sizeof ( structNoeud ) );
if(temp != NULL) {
saturee = 0; /* mémoire non saturée */
free(temp);
}
return saturee;
}
//int fileTaille(File)
int filetaille(File f)
{int taille = 0;
NOEUD n;
n = f->debut;
while (n != NULL)
{ taille++;
n = n->suivant ;}
return(taille);
}
//ELEMENT Sommet(File);
ELEMENT Sommet(File f)
{return(f->debut->info);}
int Enfiler(File f, ELEMENT e)
{int succes=1;
NOEUD nouveau;
if (estSaturee(f)){
printf ("\n file saturée");
succes=0;}
else
{
nouveau=noeudCreer(e);
nouveau->suivant = f->fin;
f->fin= nouveau;
}
f->lg++;
return succes;
}
//ELEMENT Defiler(File);
//void fileAfficher(File)
void fileAfficher(File f)
{ int i;
NOEUD n;
n= f->fin;
for(i=0;i<f->lg;i++)
{elementAfficher(n->info);
}
}
//File fileCopier(File)
File fileCopier(File f)
{
File PR = fileCreer();
ELEMENT elt;
NOEUD n1, n2, n3;
n1 = f->debut;
while (n1 != NULL) {
elt=elementCreer();
elementCopier(&elt, n1->info);
n2 = noeudCreer(elt);
if (n1 == f->debut)
{PR->debut = n2;
n3 = n2;}
else
{ n3->suivant = n2;
n3 = n2;}
n1 = n1->suivant;
}
return PR;
}
//int fileComparer
int fileComparer(File f1, File f2)
{
int test= 1;
NOEUD n1 = f1->debut;
NOEUD n2 = f2->debut;
if (fileTaille(f1) != fileTaille(f2)) test= 0;
while ((n1!=NULL) && (test)) {
if (elementComparer(n1->info, n2->info)!=0)
test=0;
else
{n1 = n1->suivant;
n2 = n2->suivant;
}
}
return test;
}