#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; | |
} |