44 lines
700 B
C
44 lines
700 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include "file.h"
|
||
|
|
||
|
int file_empty(file f) {
|
||
|
return (f[DEBUT] == NULL);
|
||
|
}
|
||
|
|
||
|
void file_push(file f, char *s) {
|
||
|
liste l = (liste) malloc(sizeof(struct maillon));
|
||
|
l->nom = s;
|
||
|
l->suivant = NULL;
|
||
|
if (f[FIN] == NULL)
|
||
|
f[DEBUT] = l;
|
||
|
else
|
||
|
f[FIN]->suivant = l;
|
||
|
f[FIN] = l;
|
||
|
}
|
||
|
|
||
|
char *file_top(file f) {
|
||
|
return f[DEBUT]->nom;
|
||
|
}
|
||
|
|
||
|
char *file_pop(file f) {
|
||
|
struct maillon m = *(f[DEBUT]);
|
||
|
free(f[DEBUT]);
|
||
|
f[DEBUT]=m.suivant;
|
||
|
if (f[DEBUT] == NULL)
|
||
|
f[FIN] = NULL;
|
||
|
return m.nom;
|
||
|
}
|
||
|
|
||
|
void file_clear(file f) {
|
||
|
liste tmp,l = f[DEBUT];
|
||
|
|
||
|
while(l != NULL) {
|
||
|
tmp = l->suivant;
|
||
|
free(l->nom);
|
||
|
free(l);
|
||
|
l = tmp;
|
||
|
}
|
||
|
f[DEBUT] = f[FIN] = NULL;
|
||
|
}
|