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