blob: e055a3e6adef54f2fb7b39386f8d1abb5f407bac [file] [log] [blame]
#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;
}