/*  Tietorakenteet ja algoritmit 1999
    Esimerkki 2-21 : Pinon toteuttaminen listan päälle.
    Tässä ratkaisussa ei tarvita yhtään koodiriviä, vaan
    pino voidaan sisällyttää header(.h)-tiedostona ohjelmaan.
    9.9.1999 MM
*/

#define STACK LIST
                             
#define STACK_CREATE(S, D) LIST_CREATE((LIST)S, D)
#define STACK_PUSH(S, x) LIST_INSERT((LIST)S, LIST_FIRST(S), x)
#define STACK_POP(S) LIST_DELETE((LIST)S, LIST_FIRST((LIST)S))
#define STACK_TOP(S) LIST_RETRIEVE((LIST)S, LIST_FIRST((LIST)S))
#define STACK_EMPTY(S) (int)((LIST_POSITION) \
        LIST_FIRST((LIST)S)==(LIST_POSITION)LIST_EOL((LIST)S)?1:0)
