#ifndef ILES_H_INCLUDED
#define ILES_H_INCLUDED

#include "list.h"

/** structure de file réalisée avec une liste simplement chaînée dont la tête est l'entrée **/
typedef struct lQueue {
    list head;
    list queue;
    int length;
} lQueue;

/** structure de pile réalisée avec une liste simplement chaînée dont la tête est le sommet **/
typedef struct lStack {
    list top;
    int depth;
} lStack;

lQueue *newEmptyQueue();
lStack *newEmptyStack();

int isEmptyQueue(lQueue *p_q);
int isEmptyStack(lStack *p_s);

void sPush(void *pe, lStack *p_s);
int sPop(void **ppe, lStack* p_s);

void qPush(void *pe, lQueue *p_q);
int qPop(void **ppe, lQueue* p_q);

#endif // ILES_H_INCLUDED
