#include <stdlib.h> static struct node { int key; struct node *next; }; static struct node *heada, *za, *ta; static struct node *headb, *zb, *tb; void stackpairinit_(); void stackpairinit(); void stackpairinit_() {stackpairinit();} void stackpairinit () { heada = (struct node *) malloc(sizeof *heada); za = (struct node *) malloc(sizeof *za); heada->next = za; heada->key=0; za->next = za; za->key = 0; headb = (struct node *) malloc(sizeof *headb); zb = (struct node *) malloc(sizeof *zb); headb->next = zb; headb->key=0; zb->next = zb; zb->key = 0; } void stackpairflush_(); void stackpairflush(); void stackpairflush_() {stackpairflush();} void stackpairflush () { free(heada); free(headb); free(za); free(zb); } void pushpair_(); void pushpair(); void pushpair_(pa, pb) int *pa; int *pb; {pushpair(pa, pb);} void pushpair (pa, pb) int *pa; int *pb; { int va; int vb; va = *pa; ta = (struct node *) malloc(sizeof *ta); ta->key = va; ta->next = heada->next; heada->next =ta; vb = *pb; tb = (struct node *) malloc(sizeof *tb); tb->key = vb; tb->next = headb->next; headb->next =tb; } void poppair_(); void poppair(); void poppair_(xa,xb) int *xa; int *xb; {poppair(xa,xb);} void poppair (xa,xb) int *xa; int *xb; { ta = heada->next; heada->next = ta->next; *xa = ta->key; free(ta); tb = headb->next; headb->next = tb->next; *xb = tb->key; free(tb); } void stackpairempty_(); void stackpairempty(); void stackpairempty_(i) int *i; {stackpairempty(i);} void stackpairempty (i) int *i; { *i = 0; if(heada->next == za) *i = 1; }