ref: f8978196906ee7a57ebedf6c5a7d09ae1bba89a6
dir: /asif.h/
typedef struct VArray VArray; typedef struct String String; struct String{ char *s; int n; }; struct VArray{ int nelem; int elsize; int vsize; int bufsize; void *p; }; void* erealloc(void*, ulong, ulong); void* emalloc(ulong); void vfree(VArray*); VArray* vinsert(VArray*, char*); VArray* valloc(ulong, int); #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) VArray* naivestrfind(String, String); typedef struct Pairheap Pairheap; struct Pairheap{ double n; void *aux; Pairheap *parent; Pairheap *left; Pairheap *right; }; void nukequeue(Pairheap**); Pairheap* popqueue(Pairheap**); void decreasekey(Pairheap*, double, Pairheap**); void pushqueue(double, void*, Pairheap**);