#include <stdio.h>
#include <stdlib.h>
#include "chaine.h"

void push(char nouv, maillon** debut){
    maillon* m = (maillon*) malloc (sizeof(maillon));
    m->valeur = nouv;
    if (debut == NULL)
        m->suivant = NULL;
    else
        m->suivant = *debut;
    *debut = m;
}

double pop(maillon** debut){
    maillon m = **debut;
    free(*debut);
    if (m.suivant == NULL)
        *debut = NULL;
    else
        *debut = m.suivant;
    return m.valeur;
}

int empty(const maillon* debut){
    return debut == NULL;
}

double top (const maillon* debut){
    return debut->valeur;
}

void clear (maillon** debut){
    while (empty(*debut)){
        pop(debut);
    }
}