You are on page 1of 9

1. #include <stdio.

h>
2. #include <stdlib.h>
3. #define MAX_ELEMENT 20
4.
5. /*Dfinition de la structure File*/
6. typedef struct file
7.

8.

int Tab[MAX_ELEMENT] ; //Les lments de la file

9.

int TETE;

10.

//La tte de la file

int QUEUE;

11.

//La queue de la file

} File;

12.
13.

/*fonction d'initialisation d'une File*/

14.

void initialiser_File (File *MaFile)

15.

16.
17.

MaFile->QUEUE = MaFile->TETE = -1;


}

18.
19.

/*Transforme MaFile en file vide*/

20.

void Raz_File (File *MaFile)

21.

22.
23.

MaFile->TETE = MaFile->QUEUE = -1;


}

24.
25.

/*la taille de la file*/

26.

int Taille_File(File MaFile)

27.

28.
if((MaFile.QUEUE == -1) && (MaFile.TETE == -1)) //si la file est vide t
aille = 0
29.

return((int) 0);

30.
31.

//si la file n'est pas vide

32.

return ((int) MaFile.QUEUE - MaFile.TETE + 1 );

33.
34.

35.
36.

/*cette fonction retourn 1 si la File est vide 0 sinon*/

37.

int Vide_File(File MaFile)

38.

39.

if(Taille_File(MaFile) == 0) //la file est vide si la taille gale 0

40.

return((int) 1);

41.
42.

//la file est non vide

43.

return((int) 0);

44.

45.
46.
/*fonction qui indique si la file est sature(retourne 1) ou non(retourne
0) */
47.

int File_Saturee(File MaFile)

48.

49.

//MaFile est sature

50.

if(MaFile.QUEUE == ( MAX_ELEMENT - 1 ) )

51.
52.

return((int) 1 );

53.

//MaFile non sature

54.

return((int) 0);

55.

56.
57.

/*retourne la valeur de la tete de la file

58.

*avant d'utiliser cette fonction il faut

59.

* verifier si la file est vide ou non

60.

* */

61.

int Tete_File(File MaFile)

62.

63.
64.

return((int) MaFile.Tab[MaFile.TETE] );
}

65.
66.

/* supprime le premier lment de la file

67.

* retourne 1 si la suppression est bien passe

68.

* retourne 0 si la suppression est male passe

69.

* */

70.

int Defiler(File *MaFile)

71.

72.

if(Vide_File(*MaFile)) //Mafile est vide

73.

return ( (int) 0 ) ;

74.
75.

//MaFile est non vide

76.

MaFile->TETE++ ;

77.

return ((int) 1) ;

78.
79.

80.
81.

/*insre llment la fin de MaFile

82.

* retourne 0 si l'insrtion est male passe

83.

* retourne 1 si l'insrtion est bien passe

84.

* */

85.

int Enfiler(File *MaFile, int val)

86.

87.

//la file est sature impossible d'enfiler

88.

if(File_Saturee(*MaFile))

89.

return ((int) 0) ;

90.
91.

//La file est initialement vide

92.

if(Vide_File(*MaFile))

93.

94.
/*il se peut que la valeur de la tete et la queue soit egale MaX_E
LEMENT
95.

* donc on doit rinitialiser la file afin de la rutiliser

96.

* */

97.

initialiser_File(MaFile);

98.
99.

//enfilement

100.

MaFile->Tab[++MaFile->QUEUE] = val;

101.

MaFile->TETE++;

102.

return( (int) 1);

103.

104.
105.

//la file est non sature il est possible d'enfiler

106.

MaFile->Tab[++MaFile->QUEUE] = val ;

107.

return((int) 1) ;

108.

109.
110.

/*fonction d'affichage d'une file*/

111.

void afficher(File MaFile)

112.

113.

printf("\n\tFILE:\n");

114.

while( !Vide_File(MaFile) )

115.

116.

printf("\n\t

117.

Defiler(&MaFile);

118.
119.

%d", Tete_File(MaFile));

}
}

120.
121.
122.

/*programme principale*/

123.

int main(int argc, char **argv)

124.

125.

/*dclaration des variables*/

126.

File *MaFile =(File *) malloc(sizeof(File)); //la file

127.

initialiser_File(MaFile);

128.
129.

int choix; //le choix de l'utilisateur

130.

int valeur; //la valeur que l'utilisateur veut enfiler

131.
132.

//menu du programme

133.

printf("\t*****Manipulation des files l'aide des tableaux********\n");

134.

printf("\n\t1-Enfiler");

135.

printf("\n\t2-Defiler");

136.

printf("\n\t3-Razer la file");

137.

printf("\n\t4-Tete de la file");

138.

printf("\n\t5-afficher la file");

139.

printf("\n\t6-quitter");

140.
141.
142.

//demander un choix l'utilisateur

143.

printf("\n\n\tveuillez choisissez une opration\n");

144.

scanf("%d", &choix);

145.
146.

//tantque l'utilisateur ne veut pas quitter

147.

while(choix != 6)

148.

149.
150.

//executer l'opraton choisi

151.

switch(choix)

152.

153.

//enfilement

154.

case 1 :

155.

//demander une valeur l'utilisateur

156.

printf("\n\tveulliez inserer une valeur\n");

157.

scanf("%d", &valeur);

158.

if(Enfiler(MaFile, valeur))

159.
160.
161.

printf("\n\tl'enfilement a ete bien passer\n");


else
printf("\n\terreur d'enfilement\n");

162.

break;

163.

//defilement

164.

case 2 :

165.
166.
167.
168.
169.

if(Defiler(MaFile))
printf("\n\tLa defilement a ete bien passer\n");
else
printf("\n\terreur de defilement\n");
break;

170.
171.

//razement dela file

172.

case 3 :

173.

Raz_File(MaFile);

174.

break;

175.

//tete de la file

176.

case 4 :

177.

printf("\n\tvaleur de la TETE: %d\n", Tete_File(*MaFile));

178.

break;

179.

//affichage de la file

180.

case 5 :

181.

afficher(*MaFile);

182.

break;

183.
184.
185.

default :
printf("\n\tveulliez insrer un choix entre 1 et 6");
}//fin switch

186.
187.

//demander un choix l'utilisateur

188.

printf("\n\n\tveuillez choisissez une opration\n");

189.

scanf("%d", &choix);

190.

191.

return 0;

192.

Compte rendu
du TP
Liste, Pile et File
Ralis par :
HILALI Abderrahmane
EL HAROUGUI
Mohammed

Encadr par :
Pr. BEKHOUCHA
Abdelkrim
Fait le : Lundi
2/11/2015

You might also like