#include <search.h> | |
struct node { | |
struct node *next; | |
struct node *prev; | |
}; | |
void insque(void *element, void *pred) | |
{ | |
struct node *e = element; | |
struct node *p = pred; | |
if (!p) { | |
e->next = e->prev = 0; | |
return; | |
} | |
e->next = p->next; | |
e->prev = p; | |
p->next = e; | |
if (e->next) | |
e->next->prev = e; | |
} | |
void remque(void *element) | |
{ | |
struct node *e = element; | |
if (e->next) | |
e->next->prev = e->prev; | |
if (e->prev) | |
e->prev->next = e->next; | |
} |