

typedef struct Elist elist; 	/* i.e., 'Elist' is equivalent to 'struct elist'  */
typedef struct Llist llist;


struct Elist {
    elist *prev;
    elist *next;
    int key;
};

struct Llist {
    elist *head;
};


void print_listp(llist *L);
void print_list(llist L);
void push(llist *S, elist *x);
int stack_empty(llist *S);
elist *pop(llist *S);
elist *make_elist(int key);
void shift(llist *S, int from, int to);
