00001 00004 #ifndef _QUEUE_H 00005 #define _QUEUE_H 00006 00011 #define NIL ((FredCell*)0) 00012 00013 /**************************************************************** 00014 **************************************************************** 00015 * 00016 * Gestion de files FIFO doublement chainêes circulairement 00017 * 00018 00019 ***************************************************************** 00020 *****************************************************************/ 00021 00028 typedef struct FredCell { 00029 struct FredCell *next; 00030 struct FredCell * pred; 00031 }FredCell ; 00032 00048 #define FredCELL FredCell _cell 00049 00056 typedef struct FredList 00057 { 00058 FredCell * last; 00059 }FredList ; 00060 00061 00062 00067 #define FredListEmpty(Q) (((Q)->last) == (FredCell*)0) 00068 00069 00070 /****************************************************************** 00071 * Insertion en fin de file 00072 ******************************************************************/ 00073 00074 extern void FredListPutLast(FredList *q,FredCell *b); 00075 00076 /****************************************************************** 00077 * Retrait en tête de file 00078 ******************************************************************/ 00079 extern FredCell * FredListGetFirst(FredList *q) ; 00080 00081 /****************************************************************** 00082 * init file 00083 ******************************************************************/ 00084 extern void FredListInit(FredList *q) ; 00085 00086 /****************************************************************** 00087 * Test file vide 00088 ******************************************************************/ 00089 00090 00091 00092 #endif